digihust/paymentgateway

一个用于管理多个支付网关的laravel包

dev-main 2023-12-27 21:40 UTC

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

支持的支付网关列表

  1. Paytm
  2. PayPal
  3. Stripe
  4. Midtrans
  5. Razorpay
  6. Mollie
  7. FlutterwaveRave
  8. Paystack
  9. Payfast
  10. Cashfree
  11. Instamojo
  12. Mercado pago
  13. Squareup
  14. Cinetpay
  15. PayTabs
  16. BillPlz
  17. Zitopay
  18. Toyyibpay
  19. Pagali
  20. Autorize.Net
  21. SitesWay
  22. TransactionCloud
  23. WiPay
  24. KineticPay
  25. Senangpay
  26. 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

查看 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

查看 Flutterwave 设置文档

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 的测试凭据

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 的测试凭据

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 设置文档

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设置文档

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

查看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支持的货币列表

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支持的货币列表

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设置文档

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设置文档

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设置文档

>> 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设置文档

>> 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.nnt设置文档

>>  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设置文档

>>  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文档

>>  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 错误修复和次要贡献者