digihust / paymentgateway
一个用于管理多个支付网关的laravel包
Requires
- php: ^8.0
- anandsiddharth/laravel-paytm-wallet: ^2.0.0
- authorizenet/authorizenet: ^2.0
- cinetpay/cinetpay-php: ^1.9
- jomweb/billplz-laravel: ^v3.0.0
- laravel/framework: ^9.0
- mercadopago/dx-php: ^2.4.4
- midtrans/midtrans-php: ^2.5
- mollie/laravel-mollie: ^2.0
- paytabscom/laravel_paytabs: dev-master
- php-http/message: ^1.16
- php-http/message-factory: ^1.1
- razorpay/razorpay: 2.*
- sharifur/payfast: ^v1.0.0
- square/square: 18.0.0.20220420
- srmklive/paypal: ~3.0
- stripe/stripe-php: ^7.103
- tzsk/payu: ^6.0.0
- unicodeveloper/laravel-paystack: 1.0.*
Requires (Dev)
- orchestra/testbench: ^7.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-27 23:12:04 UTC
README
有关此包的一般信息。
laravel 9x 的安装
配置您的 composer.json 文件以安装此包
将以下代码添加到您的 composer.json
文件中
"repositories": [ { "type": "vcs", "url": "https://github.com/Sharifur/paymentgateway.git" } ],
运行以下命令从命令提示符或终端安装此包
composer require digihust/paymentgateway
如果此支付包要求您提供用户名和密码,请在此处查看或生成自己的令牌。
有关此包安装过程的信息。
使用 3.x 版本为 laravel 9,所有支付网关现在均支持 v2/v3
支持的支付网关列表
- Paytm
- PayPal
- Stripe
- Midtrans
- Razorpay
- Mollie
- FlutterwaveRave
- Paystack
- Payfast
- Cashfree
- Instamojo
- Mercado pago
- Squareup
- Cinetpay
- PayTabs
- BillPlz
- Zitopay
- Toyyibpay
- Pagali
- Autorize.Net
- SitesWay
- TransactionCloud
- WiPay
- KineticPay
- Senangpay
- SaltPay
- PayU (即将推出)
- PerfectMoney (即将推出)
- payumoney (即将推出)
- Paytr (即将推出)
- Pagseguro (即将推出)
Paytm 的 2.0 设置
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$paytm = XgPaymentGateway::paytm(); $paytm->setMerchantId('Digita57697814558795'); $paytm->setMerchantKey('dv0XtmsPYpewNag&'); $paytm->setMerchantWebsite('WEBSTAGING'); $paytm->setChannel('WEB'); $paytm->setIndustryType('Retail'); $paytm->setCurrency("EUR"); $paytm->setEnv(true); // this must be type of boolean , string will not work $paytm->setExchangeRate(74); // if INR not set as currency $response = $paytm->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.paytm.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$paytm = XgPaymentGateway::paytm(); $paytm->setMerchantId('Digita57697814558795'); $paytm->setMerchantKey('dv0XtmsPYpewNag&'); $paytm->setMerchantWebsite('WEBSTAGING'); $paytm->setChannel('WEB'); $paytm->setIndustryType('Retail'); $paytm->setEnv(true); //env must set as boolean, string will not work dd($paytm->ipn_response());
CinetPay
Paytm ipn 路由示例
Route::post('/cinetpay-ipn', [\App\Http\Controllers\PaymentLogController::class,'cinetpay_ipn'] )->name('payment.cinetpay.ipn');
您必须从 csrf token 验证中排除 cinetpay ipn 路由,请转到 app/Http/Middleware
VerifyCsrfToken
中间件,在 $except
数组中添加您的路由路径。
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'cinetpay-ipn' ]; }
Cinetpay 的 2.0 设置
Cinetpay 支付网关仅支持在版本 > v2.x 中
charge_customer 方法示例
$cinetpay = XgPaymentGateway::cinetpay(); $cinetpay->setAppKey('LE9C12TNM5HAS'); $cinetpay->setSiteId('EAAAEOuLQObrVwJvCvoio3H13b8Ssqz1ighmTBKZvIENW9qxirHGHkqsGcPBC1uN'); $cinetpay->setCurrency("USD"); $cinetpay->setEnv(true); $cinetpay->setExchangeRate(74); // if ['XOF', 'XAF', 'CDF', 'GNF', 'USD'] not set as currency $response = $paytm->charge_customer([ 'amount' => 10, // minimum 100 amount is required to process payment if usd not set as currency 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.cinetpay.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$cinetpay = XgPaymentGateway::cinetpay(); $cinetpay->setAppKey('LE9C12TNM5HAS'); $cinetpay->setSiteId('EAAAEOuLQObrVwJvCvoio3H13b8Ssqz1ighmTBKZvIENW9qxirHGHkqsGcPBC1uN'); $cinetpay->setEnv(true); //env must set as boolean, string will not work dd($cinetpay->ipn_response());
CinetPay 测试凭据
apiKey = "12912847765bc0db748fdd44.40081707"; site_id = "445160";
PayPal 的 2.0 设置
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$paypal = XgPaymentGateway::paypal(); $paypal->setClientId('client_id'); // provide sandbox id if payment env set to true, otherwise provide live credentials $paypal->setClientSecret('client_secret'); // provide sandbox id if payment env set to true, otherwise provide live credentials $paypal->setAppId('app_id'); // provide sandbox id if payment env set to true, otherwise provide live credentials $paypal->setCurrency("EUR"); $paypal->setEnv(true); //env must set as boolean, string will not work $paypal->setExchangeRate(74); // if INR not set as currency $response = $paypal->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$paypal = XgPaymentGateway::paypal(); $paypal->setClientId('AUP7AuZMwJbkee-2OmsSZrU-ID1XUJYE-YB-2JOrxeKV-q9ZJZYmsr-UoKuJn4kwyCv5ak26lrZyb-gb'); $paypal->setClientSecret('EEIxCuVnbgING9EyzcF2q-gpacLneVbngQtJ1mbx-42Lbq-6Uf6PEjgzF7HEayNsI4IFmB9_CZkECc3y'); $paypal->setEnv(true); //env must set as boolean, string will not work $paypal->setAppId('641651651958'); dd($paypal->ipn_response());
Stripe 的 2.0 设置
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$stripe = XgPaymentGateway::stripe(); $stripe->setSecretKey('sk_test_51GwS1SEmGOuJLTMs2vhSliTwAGkOt4fKJMBrxzTXeCJoLrRu8HFf4I0C5QuyE3l3bQHBJm3c0qFmeVjd0V9nFb6Z00VrWDJ9Uw'); $stripe->setPublicKey('pk_test_51GwS1SEmGOuJLTMsIeYKFtfAT3o3Fc6IOC7wyFmmxA2FIFQ3ZigJ2z1s4ZOweKQKlhaQr1blTH9y6HR2PMjtq1Rx00vqE8LO0x'); $stripe->setCurrency("EUR"); $stripe->setEnv(true); //env must set as boolean, string will not work $stripe->setExchangeRate(74); // if INR not set as currency $response = $stripe->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$stripe = XgPaymentGateway::stripe(); $stripe->setSecretKey('sk_test_51GwS1SEmGOuJLTMs2vhSliTwAGkOt4fKJMBrxzTXeCJoLrRu8HFf4I0C5QuyE3l3bQHBJm3c0qFmeVjd0V9nFb6Z00VrWDJ9Uw'); $stripe->setPublicKey('pk_test_51GwS1SEmGOuJLTMsIeYKFtfAT3o3Fc6IOC7wyFmmxA2FIFQ3ZigJ2z1s4ZOweKQKlhaQr1blTH9y6HR2PMjtq1Rx00vqE8LO0x'); $stripe->setEnv(true); //env must set as boolean, string will not work dd($stripe->ipn_response());
Midtrans 的 2.0 设置
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$midtrans = XgPaymentGateway::midtrans(); $midtrans->setClientKey('SB-Mid-client-iDuy-jKdZHkLjL_I'); $midtrans->setServerKey('SB-Mid-server-9z5jztsHyYxEdSs7DgkNg2on'); $midtrans->setCurrency("IDR"); $midtrans->setEnv(true); //true mean sandbox mode , false means live mode $midtrans->setExchangeRate(74); // if IDR not set as currency $response = $midtrans->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$midtrans->setClientKey('client_key'); $midtrans->setServerKey('server_key'); $midtrans->setEnv(true); //true mean sandbox mode , false means live mode dd($midtrans->ipn_response());
Midtrans ipn 路由示例
Route::get('/midtrans-ipn', [\App\Http\Controllers\PaymentLogController::class,'midtrans_ipn'] )->name('payment.midtrans.ipn');
Midtrans 测试卡
VISA Description
4811 1111 1111 1114 3DS Enabled
4911 1111 1111 1113 3DS Enabled. Transaction Denied by Bank
4411 1111 1111 1118 3DS Disabled
4511 1111 1111 1117 3DS Disabled. Challenged by Fraud Detection
4611 1111 1111 1116 3DS Disabled. Denied by Fraud Detection
4711 1111 1111 1115 3DS Disabled. Transaction Denied by Bank
MASTERCARD Description
5211 1111 1111 1117 3DS Enabled
5111 1111 1111 1118 3DS Enabled. Transaction Denied by Bank
5410 1111 1111 1116 3DS Disabled
5510 1111 1111 1115 3DS Disabled. Challenged by Fraud Detection
5411 1111 1111 1115 3DS Disabled. Denied by Fraud Detection
5511 1111 1111 1114 3DS Disabled. Transaction Denied by Bank
Razorpay 的 2.0 设置
查看 Razorpay 设置文档 路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$razorpay = XgPaymentGateway::razorpay(); $razorpay->setApiKey('rzp_test_SXk7LZqsBPpAkj'); $razorpay->setApiSecret('Nenvq0aYArtYBDOGgmMH7JNv'); $razorpay->setCurrency("EUR"); $razorpay->setEnv(true); //env must set as boolean, string will not work $razorpay->setExchangeRate(74); // if INR not set as currency $response = $razorpay->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$razorpay = XgPaymentGateway::razorpay(); $razorpay->setApiKey('rzp_test_SXk7LZqsBPpAkj'); $razorpay->setApiSecret('Nenvq0aYArtYBDOGgmMH7JNv'); $razorpay->setEnv(true); //env must set as boolean, string will not work dd($razorpay->ipn_response());
Mollie 的 2.0 设置
查看 Mollie 设置文档 路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
Mollie ipn 路由示例
Route::get('/mollie-ipn', [\App\Http\Controllers\PaymentLogController::class,'mollie_ipn'] )->name('payment.razorpay.ipn');
charge_customer 方法示例
$mollie = XgPaymentGateway::mollie(); $mollie->setApiKey('api_key'); $mollie->setCurrency("EUR"); $mollie->setEnv(true); //env must set as boolean, string will not work $mollie->setExchangeRate(74); // if INR not set as currency $response = $mollie->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.mollie.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$mollie = XgPaymentGateway::mollie(); $mollie->setApiKey('api_key'); $mollie->setCurrency("EUR"); $mollie->setEnv(true); //env must set as boolean, string will not work $mollie->setExchangeRate(74); // if INR not set as currency dd($mollie->ipn_response());
FlutterwaveRave
FlutterwaveRave ipn 路由示例
Route::get('/flutterwave-ipn', [\App\Http\Controllers\PaymentLogController::class,'flutterwave_ipn'] )->name('payment.flutterwave.ipn');
测试卡
Test MasterCard PIN authentication Card number: 5531 8866 5214 2950 cvv: 564 Expiry: 09/32 Pin: 3310 OTP: 12345 Card number: 4556052704172643 cvv: 899 Expiry: 09/32 Pin: 3310 OTP: 12345
Flutterwave 的 2.0 设置
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$flutterwave = XgPaymentGateway::flutterwave(); $flutterwave->setPublicKey('FLWPUBK_TEST-86cce2ec43c63e09a517290a8347fcab-X'); $flutterwave->setSecretKey('FLWSECK_TEST-d37a42d8917db84f1b2f47c125252d0a-X'); $flutterwave->setCurrency("USD"); $flutterwave->setEnv(true); //env must set as boolean, string will not work $flutterwave->setExchangeRate(74); // if NGN not set as currency $response = $flutterwave->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$flutterwave = XgPaymentGateway::flutterwave(); $flutterwave->setPublicKey('FLWPUBK_TEST-86cce2ec43c63e09a517290a8347fcab-X'); $flutterwave->setSecretKey('FLWSECK_TEST-d37a42d8917db84f1b2f47c125252d0a-X'); $flutterwave->setCurrency("USD"); $flutterwave->setEnv(true); //env must set as boolean, string will not work dd($flutterwave->ipn_response());
Paystack
以下是 Paystack 的测试凭据
Paystack ipn 路由示例
Route::get('/paystack-ipn', [\App\Http\Controllers\PaymentLogController::class,'paystack_ipn'] )->name('payment.paystack.ipn');
注意:paystack 不支持多个 ipn 路由,它只支持一个可以在 paystack 控制台中添加的 webhook。您可以使用 $arg['payment_type'] 数据来检查处理了哪种类型的支付。
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$paystack = XgPaymentGateway::paystack(); $paystack->setPublicKey('pk_test_a7e58f850adce9a73750e61668d4f492f67abcd9'); $paystack->setSecretKey('sk_test_2a458001d806c878aba51955b962b3c8ed78f04b'); $paystack->setMerchantEmail('sopnilsohan03@gmail.com'); $paystack->setCurrency("EUR"); $paystack->setEnv(true); //env must set as boolean, string will not work $paystack->setExchangeRate(74); // if NGN not set as currency $response = $paystack->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$paystack = XgPaymentGateway::paystack(); $paystack->setPublicKey('pk_test_a7e58f850adce9a73750e61668d4f492f67abcd9'); $paystack->setSecretKey('sk_test_2a458001d806c878aba51955b962b3c8ed78f04b'); $paystack->setMerchantEmail('sopnilsohan03@gmail.com'); $paystack->setEnv(true); //env must set as boolean, string will not work dd($paystack->ipn_response());
Payfast
以下是 Payfast 的测试凭据
Payfast ipn 路由示例
Route::post('/payfast-ipn', [\App\Http\Controllers\PaymentLogController::class,'payfast_ipn'] )->name('payment.payfast.ipn');
您必须从 csrf token 验证中排除 Payfast ipn 路由,请转到 app/Http/Middleware
VerifyCsrfToken
中间件,在 $except
数组中添加您的路由路径。
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'payfast-ipn' ]; }
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$payfast = XgPaymentGateway::payfast(); $payfast->setMerchantId('10024000'); $payfast->setMerchantKey('77jcu5v4ufdod'); $payfast->setPassphrase('testpayfastsohan'); $payfast->setCurrency("ZAR"); $payfast->setEnv(true); //env must set as boolean, string will not work $payfast->setExchangeRate(74); // if INR not set as currency $response = $payfast->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$payfast = XgPaymentGateway::payfast(); $payfast->setMerchantId('10024000'); $payfast->setMerchantKey('77jcu5v4ufdod'); $payfast->setPassphrase('testpayfastsohan'); $payfast->setCurrency("ZAR"); $payfast->setEnv(true); //env must set as boolean, string will not work dd($payfast->ipn_response());
Cashfree
Cashfree ipn 路由示例
Route::post('/cashfree-ipn', [\App\Http\Controllers\PaymentLogController::class,'cashfree_ipn'] )->name('payment.cashfree.ipn');
您必须排除Cashfree ipn路由从CSRF令牌验证中,前往 app/Http/Middleware
下的 VerifyCsrfToken
中间件,在此处添加您的路由路径到 $except
数组中。
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'cashfree-ipn' ]; }
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$cashfree = XgPaymentGateway::cashfree(); $cashfree->setAppId('app_id'); $cashfree->setSecretKey('secret_key'); $cashfree->setCurrency("USD"); $cashfree->setEnv(true); //true means sandbox, false means live , //env must set as boolean, string will not work $cashfree->setExchangeRate(74); // if INR not set as currency $response = $cashfree->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.cashfree.ipn'), 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$cashfree = XgPaymentGateway::cashfree(); $cashfree->setAppId('app_id'); $cashfree->setSecretKey('secret_key'); $cashfree->setEnv(true); //true means sandbox, false means live //env must set as boolean, string will not work dd($cashfree->ipn_response());
Instamojo
Instamojo Pago仅支持INR货币
Instamojo ipn路由示例
Route::get('/instamojo-ipn', [\App\Http\Controllers\PaymentLogController::class,'instamojo_ipn'] )->name('payment.instamojo.ipn');
Instamojo测试凭证
mobile number 919090213229
For payments use the following card details:
Number: 4242 4242 4242 4242
Date: Any valid future date
CVV: 111
Name: abc
3D-secure password: 1221
2.0版本Instamojo设置
路由和中间件代码将与版本 ^1.0 相同,版本 ^2.0 只会更改 customer_charge 和 ipn_response 方法
charge_customer 方法示例
$instamojo = XgPaymentGateway::instamojo(); $instamojo->setClientId('client_id'); $instamojo->setSecretKey('secret_key'); $instamojo->setCurrency("INR"); $instamojo->setEnv(true); //true mean sandbox mode , false means live mode //env must set as boolean, string will not work $instamojo->setExchangeRate(74); // if INR not set as currency $response = $instamojo->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$instamojo = XgPaymentGateway::instamojo(); $instamojo->setClientId('client_id'); $instamojo->setSecretKey('secret_key'); $instamojo->setEnv(true); //env must set as boolean, string will not work dd($instamojo->ipn_response());
Mercadopago
Mercado Pago仅支持BRL货币
Mercado ipn路由示例
Route::get('/mercadopago-ipn', [\App\Http\Controllers\PaymentLogController::class,'mercadopago_ipn'] )->name('payment.mercadopago.ipn');
Mercadopago测试凭证
For payments use the following card details:
Number: 5031 4332 1540 6351
Date: 11/25
CVV: 123
Name: abc
2.0版本Instamojo设置
路由和中间件代码将与版本^1.0和版本^2.0相同,版本^2.0将仅更改customer_charge和ipn_response方法
charge_customer 方法示例
$marcadopago = XgPaymentGateway::marcadopago(); $marcadopago->setClientId('client_id'); $marcadopago->setClientSecret('client_secret'); $marcadopago->setCurrency("USD"); $marcadopago->setExchangeRate(82); // if BRL not set as currency, you must have to provide exchange rate for it $marcadopago->setEnv(true); ////true mean sandbox mode , false means live mode $response = $marcadopago->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.instamojo.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$marcadopago = XgPaymentGateway::marcadopago(); $marcadopago->setClientId('client_id'); $marcadopago->setClientSecret('client_secret'); $marcadopago->setEnv(true); dd($marcadopago->ipn_response());
Squareup
以下是Squareup的测试凭证
Squareup支持的货币列表
Squareup ipn路由示例
Route::get('/Squareup-ipn', [\App\Http\Controllers\PaymentLogController::class,'Squareup_ipn'] )->name('payment.mercadopago.ipn');
Squareup的API凭证
access_token = 'EAAAEOuLQObrVwJvCvoio3H13b8Ssqz1ighmTBKZvIENW9qxirHGHkqsGcPBC1uN' location_id = 'LE9C12TNM5HAS'
Squareup的测试凭证
Mastercard 5105 1051 0510 5100
CVC: 111
Date: any future date
Discover
6011 0000 0000 0004
CVC: 111
Date: any future date
Diners Club 3000 000000 0004
CVC: 111
Date: any future date
JCB 3569 9900 1009 5841
CVC: 111
Date: any future date
Name: Test
Email: test@gmail.com
2.0版本Squareup设置
charge_customer 方法示例
$squareup = XgPaymentGateway::squareup(); $squareup->setLocationId('location_id'); $squareup->setAccessToken('access_token'); $squareup->setApplicationId(''); $squareup->setCurrency("USD"); $squareup->setEnv(true); $squareup->setExchangeRate(74); // if INR not set as currency $response = $squareup->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.get.ipn'), 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
ipn_response 方法示例
$squareup = XgPaymentGateway::squareup(); $squareup->setLocationId('location_id'); $squareup->setAccessToken('access_token'); $squareup->setApplicationId(''); $squareup->setCurrency("USD"); $squareup->setEnv(true); dd($squareup->ipn_response());
PayTabs
以下是PayTabs的测试凭证
PayTabs支持的货币列表
PayTabs ipn路由示例
Route::post('/paytabs-ipn', [\App\Http\Controllers\PaymentLogController::class,'paytabs_ipn'] )->name('payment.mercadopago.ipn');
将此类添加到config/app.php(这是必需的)
\Paytabscom\Laravel_paytabs\PaypageServiceProvider::class
PayTabs的API凭证
[
'currency' => 'USD', //['AED','EGP','SAR','OMR','JOD','USD']
'profile_id' => '96698',
'region' => 'GLOBAL', // ['ARE','EGY','SAU','OMN','JOR','GLOBAL']
'server_key' => 'SKJNDNRHM2-JDKTZDDH2N-H9HLMJNJ2L'
]
PayTabs的测试凭证
Number Scheme CVV 3D enrolled
4000000000000002 Visa 123 Yes
4111111111111111 Visa 123 No
4012001036983332 Visa 530 Yes
5498383801606532 MasterCard 977 Yes
5200000000000007 MasterCard 977 Yes
5200000000000114 MasterCard 977 No
2.0版本PayTabs设置
charge_customer 方法示例
$paytabs = XgPaymentGateway::paytabs(); $paytabs->setProfileId('96698'); $paytabs->setRegion('GLOBAL'); $paytabs->setServerKey('SKJNDNRHM2-JDKTZDDH2N-H9HLMJNJ2L'); $paytabs->setCurrency("USD"); $paytabs->setEnv(true); $paytabs->setExchangeRate(74); // if ['AED','EGP','SAR','OMR','JOD','USD'] not set as currency $response = $paytabs->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.post.ipn'), 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
PayTabs ipn_response方法示例
$paytabs = XgPaymentGateway::paytabs(); $paytabs->setProfileId('96698'); $paytabs->setRegion('GLOBAL'); $paytabs->setServerKey('SKJNDNRHM2-JDKTZDDH2N-H9HLMJNJ2L'); $paytabs->setCurrency("USD"); dd($paytabs->ipn_response());
2.0版本BillPlz设置
Billplz支持的货币列表 ['MYR']
Billplz ipn路由示例
Route::post('/billplz-ipn', [\App\Http\Controllers\PaymentLogController::class,'billplz_ipn'] )->name('payment.billplz.ipn');
Billplz的API凭证
[
'key' => 'b2ead199-e6f3-4420-ae5c-c94f1b1e8ed6',
'version' => 'v4',
'x_signature' => 'S-HDXHxRJB-J7rNtoktZkKJg',
'collection_name' => 'kjj5ya006'
]
charge_customer 方法示例
$billplz = XgPaymentGateway::billplz(); $billplz->setKey('b2ead199-e6f3-4420-ae5c-c94f1b1e8ed6'); $billplz->setVersion('v4'); $billplz->setXsignature('S-HDXHxRJB-J7rNtoktZkKJg'); $billplz->setCollectionName('kjj5ya006'); $billplz->setCurrency("MYR"); $billplz->setEnv(true); $billplz->setExchangeRate(50); // if ['MYR'] not set as currency $response = $billplz->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('payment.post.ipn'), 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
Billplz ipn_response方法示例
$billplz = XgPaymentGateway::billplz(); $billplz->setKey('b2ead199-e6f3-4420-ae5c-c94f1b1e8ed6'); $billplz->setVersion('v4'); $billplz->setXsignature('S-HDXHxRJB-J7rNtoktZkKJg'); $billplz->setCollectionName('kjj5ya006'); $billplz->setCurrency("MYR"); $billplz->setEnv(true); dd($billplz->ipn_response());
2.0版本Zitopay设置
Zitopay支持的货币列表 ["USD", "EUR", "GBP", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "FJD", "GEL", "GHS", "GMD", "GNF", "GTQ", "GYD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MRO", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SCR", "SDG", "SEK", "SGD", "SLL", "SOS", "SRD", "STD", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XCD", "XOF", "YER", "ZAR", "ZMW", "ZWD", "XAF", ]
Zitopay ipn路由示例
Route::post('/zitopay-ipn', [\App\Http\Controllers\PaymentLogController::class,'zitopay_ipn'] )->name('payment.zitopay.ipn'); //need to exclude from csrf token varification
您必须排除Zitopay ipn路由从CSRF令牌验证中,前往 app/Http/Middleware
下的 VerifyCsrfToken
中间件,在此处添加您的路由路径到 $except
数组中。
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'zitopay-ipn' ]; }
charge_customer 方法示例
$zitopay = XgPaymentGateway::zitopay(); $zitopay->setUsername('dvrobin4'); $zitopay->setCurrency("USD"); $zitopay->setEnv(true); $zitopay->setExchangeRate(50); // if INR not set as currency $args = [ 'amount' => 250, 'title' => 'this is test title', 'description' => 'description', 'ipn_url' => route('payment.post.ipn'), 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'email@mgil.com', 'name' => 'sharifur', 'payment_type' => 'order', ]; $response = $zitopay->charge_customer($args); return $response;
Zitopay ipn_response方法示例
$zitopay = XgPaymentGateway::zitopay(); $zitopay->setUsername('dvrobin4'); $zitopay->setCurrency("USD"); $zitopay->setEnv(true); $zitopay->setExchangeRate(50); // if INR not set as currency dd($zitopay->ipn_response());
3.0版本Toyyibpay设置
>> Toyyibpay supported currency list ["MYR"]
Toyyibpay ipn路由示例
Route::post('/toyyibpay-ipn', [\App\Http\Controllers\PaymentLogController::class,'toyyibpay_ipn'] )->name('payment.toyyibpay.ipn'); //need to exclude from csrf token varification
您必须排除Toyyibpay ipn路由从CSRF令牌验证中,前往 app/Http/Middleware
下的 VerifyCsrfToken
中间件,在此处添加您的路由路径到 $except
数组中。
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'toyyibpay-ipn' ]; }
charge_customer 方法示例
$toyyibpay = XgPaymentGateway::toyyibpay(); $toyyibpay->setUserSecretKey('wnbtrqle-9t9l-m02j-e2bz-iaj2tkp52sfo'); $toyyibpay->setCategoryCode('0m0j9yc4'); $toyyibpay->setEnv(true); $toyyibpay->setCurrency("MYR"); $toyyibpay->setExchangeRate(74); //only support MYR Currency return $toyyibpay->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('post.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', 'phone' => 12345678 ]);
Toyyibpay ipn_response方法示例
$toyyibpay = XgPaymentGateway::toyyibpay(); $toyyibpay->setUserSecretKey('wnbtrqle-9t9l-m02j-e2bz-iaj2tkp52sfo'); $toyyibpay->setCategoryCode('0m0j9yc4'); $toyyibpay->setEnv(true); $toyyibpay->ipn_response();
Pagali设置
>> Pagali supported currency list ['MYR','USD','EUR','CVE']
Pagali ipn路由示例
Route::post('/pagali-ipn', [\App\Http\Controllers\PaymentLogController::class,'pagali_ipn'] )->name('payment.pagali.ipn'); //need to exclude from csrf token varification
您必须排除Pagali ipn路由从CSRF令牌验证中,前往 app/Http/Middleware
下的 VerifyCsrfToken
中间件,在此处添加您的路由路径到 $except
数组中。
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'pagali-ipn' ]; }
charge_customer 方法示例
$pagali = XgPaymentGateway::pagalipay(); $pagali->setPageId(''); $pagali->setEntityId(''); $pagali->setCurrency("MYR"); $pagali->setEnv(true); // this must be type of boolean , string will not work $pagali->setExchangeRate(74); // if INR not set as currency $response = $pagali->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('post.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]);
Pagali ipn_response方法示例
$pagali = XgPaymentGateway::pagalipay(); $pagali->setPageId(''); $pagali->setEntityId(''); $pagali->setCurrency("MYR"); $pagali->setEnv(true); // this must be type of boolean , string will not work dd($pagali->ipn_response());
Authorize.Net设置
>> Authorize.Net supported currency list ['AUD', 'CAD', 'CHF', 'DKK', 'EUR', 'GBP', 'JPY', 'NOK', 'NZD', 'SEK', 'USD', 'ZAR'];
Authorize.Net ipn路由示例
Route::get('/authorize-ipn', [\App\Http\Controllers\PaymentLogController::class,'authorize_ipn'] )->name('payment.authorize.ipn'); //need to exclude from csrf token varification
charge_customer 方法示例
$authorize = XgPaymentGateway::authorizenet(); $authorize->setMerchantLoginId('2e8yjNL89kV2'); $authorize->setMerchantTransactionId('65968Gb3DU2ntX2v'); $authorize->setCurrency("USD"); $authorize->setEnv(true); // this must be type of boolean , string will not work $authorize->setExchangeRate(74); // if INR not set as currency $response = $authorize->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('get.ipn'), //get route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]);
ipn_response 方法示例
$authorizenet = XgPaymentGateway::authorizenet(); $authorizenet->setMerchantLoginId('2e8yjNL89kV2'); $authorizenet->setMerchantTransactionId('65968Gb3DU2ntX2v'); $authorizenet->setEnv(true); // this must be type of boolean , string will not work dd($authorizenet->ipn_response());
SitesWay设置
没有可用的文档
>> it support all currency
SitesWay ipn路由示例
Route::post('/siteways-ipn', [\App\Http\Controllers\PaymentLogController::class,'siteways_ipn'] )->name('payment.siteways.ipn'); //need to exclude from csrf token verification
您必须排除SitesWay ipn路由从CSRF令牌验证中,前往 app/Http/Middleware
下的 VerifyCsrfToken
中间件,在此处添加您的路由路径到 $except
数组中。
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'siteways-ipn' ]; }
charge_customer 方法示例
$sitesway = XgPaymentGateway::sitesway(); $sitesway->setBrandId("-enter-brand-id-"); $sitesway->setApiKey("--enter-api-key--"); $sitesway->setCurrency("USD"); $sitesway->setEnv(true); // this must be type of boolean , string will not work $response = $sitesway->charge_customer([ 'amount' => 10, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('post.siteways.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rhamna', 'payment_type' => 'order', ]); return $response;
为Siteways的ipn_response方法示例
$sitesway = XgPaymentGateway::sitesway(); $sitesway->setBrandId("-enter-brand-id-"); $sitesway->setApiKey("--enter-api-key--"); $sitesway->setCurrency("USD"); $payment_data = $sitesway->ipn_response();
WiPay设置
>> Wipay supported currency list ['JMD', 'TTD', 'USD']
Wipay ipn路由示例
Route::get('/wipay-ipn', [\App\Http\Controllers\PaymentLogController::class,'wipay_ipn'] )->name('payment.wipay.ipn');
charge_customer 方法示例
$wipay = XgPaymentGateway::wipay(); $wipay->setAccountNumber("1234567890"); $wipay->setAccountApi("123"); $wipay->setFeeStructure("customer_pay"); $wipay->setCountryCode("TT"); $wipay->setCurrency("USD"); $wipay->setEnv(true); // this must be type of boolean , string will not work $wipay->setExchangeRate(74); // if INR not set as currency $response = $wipay->charge_customer([ 'amount' => 10.5, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('get.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rahman', 'payment_type' => 'order', ]); return $response;
为WiPay的ipn_response方法示例
$wipay = XgPaymentGateway::wipay(); $wipay->setAccountNumber("1234567890"); $wipay->setAccountApi("123"); $wipay->setFeeStructure("customer_pay"); $wipay->setCountryCode("TT"); $wipay->setCurrency("USD"); $wipay->setEnv(true); // this must be type of boolean , string will not work $wipay->setExchangeRate(74); // if INR not set as currency $payment_data = $wipay->ipn_response(); dd($payment_data);
为TransactionCloud设置
>> TransactionCloud supported currency list ['USD','EUR','PLN','INR','CAD','CNY','AUD','JPY','NOK','GBP','CHF','SGD','BRL','RUB','BGN','CZK','DKK','HUF','RON','SEK','GEL']
TransactionCloud ipn路由示例
Route::get('/transactioncloud-ipn', [\App\Http\Controllers\PaymentLogController::class,'siteways_ipn'] )->name('payment.transactioncloud.ipn');
请注意,TransactionCloud将所有ipn响应发送到单个路由,该路由需要在TransactionCloud商家面板中配置为产品返回URL。您必须从单个路由管理所有支付成功过程,您将获得一个product_type参数,以了解这是哪种产品的支付ipn响应
charge_customer 方法示例
$transactionclud = XgPaymentGateway::transactionclud(); $transactionclud->setApiLogin("API_QWGW6TO2N1I5A2L40W"); $transactionclud->setApiPassword("EPKUZU6L7HR8BU5WHH"); $transactionclud->setProductID("TC-PR_APo7g7R"); $transactionclud->setCurrency("USD"); $transactionclud->setEnv(true); // this must be type of boolean , string will not work $transactionclud->setExchangeRate(74); // if INR not set as currency $response = $transactionclud->charge_customer([ 'amount' => 10.5, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('get.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rahman', 'payment_type' => 'order', ]); return $response;
为TransactionCloud的ipn_response方法示例
$transactionclud = XgPaymentGateway::transactionclud(); $transactionclud->setApiLogin("API_QWGW6TO2N1I5A2L40W"); $transactionclud->setApiPassword("EPKUZU6L7HR8BU5WHH"); $transactionclud->setProductID("TC-PR_APo7g7R"); $transactionclud->setEnv(true); // this must be type of boolean , string will not work $transactionclud->ipn_response();
为KineticPay设置
>> KineticPay supported currency list ['MYR']
KineticPay ipn路由示例
Route::post('/kineticpay-ipn', [\App\Http\Controllers\PaymentLogController::class,'KineticPay_ipn'] )->name('payment.KineticPay.ipn');
您必须排除KineticPay ipn路由的csrf token验证,前往app/Http/Middleware
VerifyCsrfToken
中间件,在$except
数组中添加您的路由路径
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'kineticpay-ipn' ]; }
charge_customer 方法示例
$kineticpay = XgPaymentGateway::kineticpay(); $kineticpay->setMerchantKey("ede1c5e9f81c9d12bf418629f56a7870"); $kineticpay->setBank("ABMB0212"); $kineticpay->setCurrency("MYR"); $kineticpay->setEnv(true); // this must be type of boolean , string will not work $kineticpay->setExchangeRate(74); // if INR not set as currency $response = $kineticpay->charge_customer([ 'amount' => 10.5, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('post.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rahman', 'payment_type' => 'order', ]); return $response;
为KineticPay的ipn_response方法示例
$kineticpay = XgPaymentGateway::kineticpay(); $kineticpay->setMerchantKey("ede1c5e9f81c9d12bf418629f56a7870"); $kineticpay->setCurrency("MYR"); $kineticpay->setEnv(true); // this must be type of boolean , string will not work $kineticpay->setExchangeRate(74); // if INR not set as currency $payment_data = $kineticpay->ipn_response();
为Senangpay设置
>> Senangpay supported currency list ['MYR']
Senangpay ipn路由示例
Route::get('/senangpay-ipn', [\App\Http\Controllers\PaymentLogController::class,'senangpay_ipn'] )->name('payment.senangpay.ipn');
您必须将此URL添加到Senangpay商家面板作为返回URL,您只能使用一个ipn,因为Senangpay不支持返回URL或ipn URL,您可以通过传递payment_type来管理多个支付,然后在单个ipn路由中进行过滤和管理。
charge_customer 方法示例
$senangpay = XgPaymentGateway::senangpay(); $senangpay->setMerchantId(''); $senangpay->setSecretKey(''); $senangpay->setEnv(true); $senangpay->setHashMethod('sha256'); $senangpay->setCurrency('MYR'); $response = $senangpay->charge_customer([ 'amount' => 10.5, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('get.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rahman', 'payment_type' => 'order', ]); return $response;
为Senangpay的ipn_response方法示例
$senangpay = XgPaymentGateway::senangpay(); $senangpay->setMerchantId(''); $senangpay->setSecretKey(''); $senangpay->setEnv(true); $senangpay->setHashMethod('sha256'); $senangpay->setCurrency('MYR'); $payment_data = $senangpay->ipn_response(); dd($payment_data);
charge_customer_recurring方法示例
$senangpay = XgPaymentGateway::senangpay(); $senangpay->setMerchantId(''); $senangpay->setSecretKey(''); $senangpay->setRecurringId('169217592513'); //need to create product first in senangpay merchant panel and have to enable customer amount change option $senangpay->setEnv(true); $senangpay->setHashMethod('sha256'); $senangpay->setCurrency('MYR'); $response = $senangpay->charge_customer_recurring([ 'amount' => 10.5, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('get.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rahman', 'payment_type' => 'order', ]); return $response;
为Senangpay的ipn_response_recurring方法示例
$senangpay = XgPaymentGateway::senangpay(); $senangpay->setMerchantId(''); $senangpay->setSecretKey(''); $senangpay->setEnv(true); $senangpay->setHashMethod('sha256'); //need to set hash method in senangpay merchant panel $senangpay->setCurrency('MYR'); $payment_data = $senangpay->ipn_response_recurring(); dd($payment_data);
Senangpay测试卡
Number: 5111111111111118
Expiry Month: May
Expiry Year: 2025
CVV: 100
Card Name: anything
为SaltPay设置
>> Salt supported currency list ['ISK', 'USD', 'EUR', 'GBP', 'DKK', 'NOK', 'SEK', 'CHF', 'JPY', 'CAD', 'HUF']
Salt ipn路由示例
Route::post('/salt-ipn', [\App\Http\Controllers\PaymentLogController::class,'salt_ipn'] )->name('payment.saltpay.ipn');
您必须排除Salt ipn路由的csrf token验证,前往app/Http/Middleware
VerifyCsrfToken
中间件,在$except
数组中添加您的路由路径
namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'salt-ipn' ]; }
charge_customer 方法示例
$saltpay = XgPaymentGateway::saltpay(); $saltpay->setMerchantId(''); $saltpay->setSecretKey(''); $saltpay->setPaymentGatewayId(16); $saltpay->setEnv(true); $saltpay->setCurrency('USD'); $response = $saltpay->charge_customer([ 'amount' => 5, 'title' => 'this is test title', 'description' => 'this is test description', 'ipn_url' => route('post.ipn'), //post route 'order_id' => 56, 'track' => 'asdfasdfsdf', 'cancel_url' => route('payment.failed'), 'success_url' => route('payment.success'), 'email' => 'dvrobin4@gmail.com', 'name' => 'sharifur rahman', 'payment_type' => 'order', ]); return $response;
为Saltpay的ipn_response方法示例
$saltpay = XgPaymentGateway::saltpay(); $saltpay->setMerchantId(''); $saltpay->setSecretKey(''); $saltpay->setPaymentGatewayId(16); $saltpay->setEnv(true); $saltpay->setCurrency('USD'); $payment_data = $saltpay->ipn_response(); dd($payment_data);
使用此包
有关使用此包的信息
贡献
有关为此包贡献的信息。包所有者 @sharifur 错误修复和次要贡献者