Skip to content

Latest commit

 

History

History
127 lines (91 loc) · 3.64 KB

VNPay.md

File metadata and controls

127 lines (91 loc) · 3.64 KB

Omnipay: VNPay

Package này cung cấp cho bạn facade VNPay để tương tác với cổng thanh toán.

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

$response = \VNPay::purchase([
    'vnp_TxnRef' => time(),
    'vnp_OrderType' => 100000,
    'vnp_OrderInfo' => time(),
    'vnp_IpAddr' => '127.0.0.1',
    'vnp_Amount' => 1000000,
    'vnp_ReturnUrl' => 'https://github.com/phpviet',
])->send();

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

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

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

$response = \VNPay::completePurchase()->send();

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

    print $response->getMessage();
}

Hoặc bạn có thể sử dụng PHPViet\Laravel\Omnipay\Middleware\CompletePurchaseMiddleware để giảm bớt nghiệp vụ xử lý kiểm tra tính hợp lệ của request, xem thêm tại đây.

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

Kiểm tra thông tin IPN do VNPay gửi sang:

$response = \VNPay::notification()->send();

if ($response->isSuccessful()) {
    // TODO: xử lý kết quả.
    print $response->vnp_Amount;
    print $response->vnp_TxnRef;
    
    var_dump($response->getData()); // toàn bộ data do VNPay gửi sang.
    
} else {

    print $response->getMessage();
}

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

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

$response = \VNPay::queryTransaction([
    'vnp_TransDate' => 20190705151126,
    'vnp_TxnRef' => 1562314234,
    'vnp_OrderInfo' => time(),
    'vnp_IpAddr' => '127.0.0.1',
    'vnp_TransactionNo' => 496558,
])->send();

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

    print $response->getMessage();
}

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

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

$response = \VNPay::refund([
    'vnp_Amount' => 10000,
    'vnp_TransactionType' => '03',
    'vnp_TransDate' => 20190705151126,
    'vnp_TxnRef' => 32321,
    'vnp_OrderInfo' => time(),
    'vnp_IpAddr' => '127.0.0.1',
    'vnp_TransactionNo' => 496558,
])->send();

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

    print $response->getMessage();
}

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