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.
$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.
$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.
$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.
$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.
$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.
$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.
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.