Skip to content

Latest commit

 

History

History
159 lines (111 loc) · 4.42 KB

AllInOne.md

File metadata and controls

159 lines (111 loc) · 4.42 KB

All In One Gateway

Khởi tạo gateway:

use Omnipay\Omnipay;

$gateway = Omnipay::create('MoMo_AllInOne');
$gateway->initialize([
    'accessKey' => 'Do MoMo cấp',
    'partnerCode' => 'Do MoMo cấp',
    'secretKey' => 'Do MoMo cấp',
]);

Gateway khởi tạo ở trên dùng để tạo các yêu cầu xử lý đến MoMo hoặc dùng để nhận yêu cầu do MoMo gửi đến.

Tạo yêu cầu thanh toán:

$response = $gateway->purchase([
    'amount' => 20000,
    'returnUrl' => 'http://domaincuaban.com/thanh-toan-thanh-cong/',
    'notifyUrl' => 'http://domaincuaban.com/ipn/',
    'orderId' => 'Mã đơn hàng',
    'requestId' => 'Mã request id, gợi ý nên xài uuid4',
])->send();

if ($response->isRedirect()) {
    $redirectUrl = $response->getRedirectUrl();
    
    // TODO: chuyển khách sang trang MoMo để thanh toán
}

Kham khảo thêm các tham trị khi tạo yêu cầu và MoMo trả về tại đây.

Kiểm tra thông tin returnUrl khi khách được MoMo redirect về:

$response = $gateway->completePurchase()->send();

if ($response->isSuccessful()) {
    // TODO: xử lý kết quả và hiển thị.
    print $response->amount;
    print $response->orderId;
    
    var_dump($response->getData()); // toàn bộ data do MoMo gửi sang.
    
} else {

    print $response->getMessage();
}

Kham khảo thêm các tham trị khi MoMo trả về tại đây.

Kiểm tra thông tin notifyUrl do MoMo gửi sang:

$response = $gateway->notification()->send();

if ($response->isSuccessful()) {
    // TODO: xử lý kết quả và hiển thị.
    print $response->amount;
    print $response->orderId;
    
    var_dump($response->getData()); // toàn bộ data do MoMo gửi sang.
    
} else {

    print $response->getMessage();
}

Kham khảo thêm các tham trị khi MoMo gửi sang tại đây.

Kiểm tra trạng thái giao dịch:

$response = $gateway->queryTransaction([
       'orderId' => '123',
       'requestId' => '456',
])->send();

if ($response->isSuccessful()) {
    // TODO: xử lý kết quả và hiển thị.
    print $response->amount;
    print $response->orderId;
    
    var_dump($response->getData()); // toàn bộ data do MoMo gửi về.
    
} else {

    print $response->getMessage();
}

Kham khảo thêm các tham trị khi tạo yêu cầu và MoMo trả về tại đây.

Yêu cầu hoàn tiền:

$response = $gateway->refund([
    'orderId' => '123',
    'requestId' => '999',
    'transId' => 321,
    'amount' => 50000,
])->send();

if ($response->isSuccessful()) {
    // TODO: xử lý kết quả và hiển thị.
    print $response->amount;
    print $response->orderId;
    
    var_dump($response->getData()); // toàn bộ data do MoMo gửi về.
    
} else {

    print $response->getMessage();
}

Kham khảo thêm các tham trị khi tạo yêu cầu và MoMo trả về tại đây.

Kiểm tra trạng thái hoàn tiền:

$response = $gateway->queryRefund([
     'orderId' => '123',
     'requestId' => '321',
])->send();

if ($response->isSuccessful()) {
    // TODO: xử lý kết quả và hiển thị.
    print $response->amount;
    print $response->orderId;
    
    var_dump($response->getData()); // toàn bộ data do MoMo gửi về.
    
} else {

    print $response->getMessage();
}

Kham khảo thêm các tham trị khi tạo yêu cầu và MoMo trả về tại đây.

Phương thức hổ trợ debug:

Một số phương thức chung hổ trợ debug khi isSuccessful() trả về FALSE:

    print $response->getCode(); // mã báo lỗi do MoMo gửi sang.
    print $response->getMessage(); // câu thông báo lỗi do MoMo gửi sang.

Kham khảo bảng báo lỗi getCode() chi tiết tại đây.