다음 명령을 실행하십시오.
composer require gjae/laravel-mercadopago
config/app.php
파일에 다음 줄을 추가하세요(LARAVEL 버전 <= 5.4에만 해당):
서비스 공급자 배열( 공급자 ):
Gjae MercadoPago MPServiceProvider::class,
별칭 목록에 다음 Facade를 추가하세요(LARAVEL 버전 <= 5.4에만 해당):
' MercadoPago ' => Gjae MercadoPago Facade::class,
마지막으로 다음 명령을 실행하십시오.
php artisan vendor:publish -- provider ="Gjae MercadoPago MPServiceProvider "
마지막으로 마이그레이션을 실행합니다.
php artisan migrate
이제 config/mercadopago.php
파일로 이동하여 구성을 추가하면 파일은 다음과 유사하게 보입니다.
<?php
return [
/**
* Si es verdadero entonces no se validan las credenciales
* en mercadopago
*/
' local_debug ' => true ,
/**
* Especifica el modo en el que se estara usando
* el mercado pago, : sandbox, production
*/
' mode ' => ' sandbox ' ,
/**
* Credenciales para el caso en que la aplicacion este en modo
* produccion (especificado en la clave mode)
*/
' production ' => [
' access_token ' => env ( ' MP_ACCESS_TOKEN ' , '' ),
' public_key ' => env ( ' MP_PUBLIC_KEY ' , '' ),
],
/**
* Credenciales para el modo sandbox
* especificado el uso en la clave "mode"
*/
' sandbox ' => [
' access_token ' => env ( ' MP_SANDBOX_ACCESS_TOKEN ' , '' ),
' public_key ' => env ( ' MP_SANDBOX_PUBLIC_KEY ' , '' )
],
/**
* Tipo de identificacion usada para los pagos
*/
' identification_type ' => ' DNI ' ,
/**
* Codigo de area telefonico
*/
' area_code ' => '' ,
/**
* Especifica las URL de retorno para el smartcheckout
*/
' back_urls ' => [
' success ' => '' ,
' failure ' => '' ,
' pending ' => '' ,
],
// Indica en que caso de respuesta del pago se ejecutara una autorecarga
// Por defecto: approved (el usuario pagador volvera automaticamente en caso de que el pago haya sido completado y aprobado)
' auto_return ' => ' approved ' ,
];
라이브러리 사용을 시작하려면 MercadoPago 파사드(또는 config.php
파일의 별칭 배열에서 이름을 지정한 모든 항목)만 호출하면 됩니다. 트랜잭션 자체를 수신할 콜백 함수를 매개변수로 갖는 시작 메소드를 호출하면 됩니다. 매개변수로 예:
MercadoPago:: begin ( function ( $ mp ){
// agrega un item al procesamiento
$ mp -> addItem ([
' title ' => ' Prueba ' , // Titulo del item
' qtty ' => 1 , // Cantidad del item
' price ' => 150.0 , // Precio unitario
' currency ' => ' USD ' , // MONEDA USADA PARA PAGAR
' id ' => " MYAWESOMEPRODUCTID " // ID DEL PRODUCTO (PARA CONTROL INTERNO DE SU APLICACIÓN)
]);
// OPCIONAL: el metodo backUrlAddQS agregara parametros adicionales a la URL de pago, dichos parametros seran devueltos al completar la transaccipon
// usado para control interno de su propia aplicación, si desea agregar un token o ID de seguridad a su proceso
$ mp -> backUrlAddQS ([ ' foo ' => " bar " ]);
});
addItem 메소드는 결제에 청구해야 하는 항목을 추가하는 데 필요하다고 생각되는 횟수만큼 호출할 수 있습니다. 마지막으로 응답 보기에서
MercadoPago 파사드의 initPoint 메소드를 사용할 수 있습니다(뷰 코드 예):
<!DOCTYPE html >
< html lang =" en " >
< head >
< meta charset =" UTF-8 " >
< meta name =" viewport " content =" width=device-width, initial-scale=1.0 " >
< meta http-equiv =" X-UA-Compatible " content =" ie=edge " >
< title > Redirigiendo a MercadoPago para procesar su compra </ title >
</ head >
< body >
< input type =" hidden " name =" redirect-mp " id =" mp " value =" {{ MercadoPago::initPoint() }} " >
< script >
window . location = document . getElementById ( 'mp' ) . value
</ script >
</ body >
</ html >
결제 게이트웨이에서 반환된 응답은 해당 경로에서 제어되고 구성 파일( config/mercadopago.php
)에 추가되어야 합니다.
응답과 관련된 경로(구성 파일에 구성됨)에서 MPResponse 클래스를 호출하고 종속성 주입을 사용하여 응답을 처리합니다. 예:
<?php
. . .
use Gjae MercadoPago Contracts MPResponse ;
class MercadoPagoController extends Controller
{
public function successResponse ( MPResponse $ request )
{
. . .
}
}
주입된 MPResponse 개체는 응답 데이터를 자동으로 저장합니다.
또한 모델을 트랜잭션과 연결할 수 있습니다. 이를 위해서는 Eloquent 모델 클래스로 이동하여 패키지에 포함된 HasTransaction 인터페이스와 HasTransactions 특성을 구현해야 합니다.
namespace App ;
. . .
use Illuminate Database Eloquent Model ;
use Gjae MercadoPago Contracts HasTransaction ;
use Gjae MercadoPago Traits HasTransactions ;
class MyAwesomeModel extends Model implements HasTransaction{
use HasTransactions;
. . .
}
이 작업을 완료하면 HasTransaction 인터페이스를 구현하는 모든 클래스의 객체(또는 객체 배열)인 시작 함수에 두 번째 매개변수로 전달할 수 있습니다.
MercadoPago:: begin ( function ( $ mp ){
. . .
}, [ $ HasTransactionObjects ]);
HasTransaction
인터페이스와 HasTransactions
특성을 구현하는 개체에는 해당 개체와 관련된 트랜잭션 컬렉션을 반환하는 트랜잭션 확장이 있습니다.
$ user = App User:: first ();
$ user -> transactions ;
컨트롤러에 주입된 MPResponse 객체에는 수신된 트랜잭션의 데이터를 반환하는 getTransaction 메서드가 있습니다.
public function successResponse ( MPResponse $ request )
{
$ transaction = $ request -> getTransaction ();
}
구성 파일에 "local_debug" 옵션이 true로 설정된 경우; Mercadopago URL에는 init_point가 발급되지 않습니다. 이는 사용자가 게이트웨이 내에서 수행되지 않는 트랜잭션을 생성하지 않고, 필요할 때 Mercadopago 서버의 응답을 기다리지 않고 차분하게 작업을 테스트할 수 있도록 하기 위함입니다. 프로덕션 또는 샌드박스 모드에서 전체 작업을 테스트할 준비가 되었습니다. 이 옵션을 false로 변경하세요.