kientv / omnipay-vnpay
Thư viện hổ trợ tích hợp cổng thanh toán VNPay.
Requires
- php: ^7.1
- omnipay/common: ^3.0
Requires (Dev)
- omnipay/tests: ^3.0
- scrutinizer/ocular: ^1.5
This package is auto-updated.
Last update: 2024-11-17 01:04:58 UTC
README
Omnipay: VNPay
Thông tin
Thư viện hổ trợ tích cổng thanh toán VNPay phát triển trên nền tảng Omnipay League.
Để nắm sơ lược về khái niệm và cách sử dụng các Omnipay gateways bạn hãy truy cập vào đây để kham khảo.
Cài đặt
Cài đặt Omnipay VNPay thông qua Composer:
composer require kientv/omnipay-vnpay
Cách sử dụng
Tích hợp sẵn trên các framework phổ biến hiện tại
hoặc nếu bạn muốn sử dụng không dựa trên framework thì tiếp tục xem tiếp.
Khởi tạo gateway:
use Omnipay\Omnipay; $gateway = Omnipay::create('VNPay'); $gateway->initialize([ 'vnp_TmnCode' => 'Do VNPay cấp', 'vnp_HashSecret' => 'Do VNPay cấp', ]);
Gateway khởi tạo ở trên dùng để tạo các yêu cầu xử lý đến VNPay hoặc dùng để nhận yêu cầu do VNPay gửi đến.
Tạo yêu cầu thanh toán:
$response = $gateway->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 = $gateway->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(); }
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 = $gateway->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 = $gateway->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 = $gateway->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.
Dành cho nhà phát triển
Nếu như bạn cảm thấy thư viện chúng tôi còn thiếu sót hoặc sai sót và bạn muốn đóng góp để phát triển chung,
chúng tôi rất hoan nghênh! Hãy tạo các issue
để đóng góp ý tưởng cho phiên bản kế tiếp hoặc tạo PR
để đóng góp phần thiếu sót hoặc sai sót. Riêng đối với các lỗi liên quan đến bảo mật thì phiền bạn gửi email đến
vuongxuongminh@gmail.com thay vì tạo issue. Cảm ơn!