coreproc / paynamics-sdk-laravel
v1.1.0
2023-01-19 03:06 UTC
Requires
- php: ^7.0|^8.0
- ext-json: *
This package is auto-updated.
Last update: 2024-09-11 05:23:45 UTC
README
安装
composer require CoreProc/paynamics-sdk-laravel
php artisan vendor:publish --provider="Coreproc\PaynamicsSdk\Providers\ServiceProvider"
使用方法
环境变量
PAYNAMICS_MERCHANT_ID=<your paynamics merchant ID> PAYNAMICS_MERCHANT_KEY=<your paynamics merchant KEY> PAYNAMICS_ENVIRONMENT=<sandbox || production> PAYNAMICS_SANDBOX_ENDPOINT=<paynamcis sandabox endpoint> PAYNAMICS_PRODUCTION_ENDPOINT=<your production endpoint> HSBC_MERCHANT_ID=<your HSBC merchant ID > HSBC_MERCHANT_NAME=<your HSBC merchant name> HSBC_MERCHANT_KEY=<your HSBC merchant KEY>
生成支付请求
use Coreproc\PaynamicsSdk\Requests\PaymentRequest; use Coreproc\PaynamicsSdk\Requests\ItemRequest; $itemRequest = ItemRequest::make() ->setItemName(<name of item>) ->setAmount(<item amount or price>) ->setQuantity(<qunatity>); $paymentRequest = PaymentRequest::make() ->setIpAddress(<server ip address>) ->setNotificationUrl() ->setResponseUrl() ->setCancelUrl() ->setFname(<customer first name>) ->setLname(<customer last name>) ->setAddress1(<customer address line 1>) ->setCity(<customer city>) ->setState(<customer state>) ->setEmail(<customer email>) ->setMobile(<customer mobile>) ->setClientIp(<client request ip>) ->setAmount(<total amount request>) ->setCurrency(<currency>) ->setTrxtype('sale') ->setPmethod(<payment method used>) ->setCountry(<country name>) ->addItem($itemRequest);
您可以在支付请求中添加多个项目。总金额应等于请求中添加的所有项目的总和。
添加折扣
您可以通过在请求中添加新的项目并使用负值来添加折扣。 注意:请求的总值必须等于包括折扣在内的所有添加的项目总值。
示例
/** Item name can be anything you want for exmaple ('Coupon Discount') or etc**/ $itemRequest = ItemRequest::make() ->setItemName('Discount') ->setAmount(-5000) ->setQuantity(1); $paymentRequest->addItem($itemRequest);
生成 paynamics 表单请求
use Coreproc\PaynamicsSdk\Services\PaynamicsServiceManager; /** Currently supports "payment" request only */ $paymentService = PaynamicsServiceManager::make('payment'); return $paymentService->setPaymentType('default') ->setRequest($paymentRequest) ->generate();
这将基于您在 PaymentRequest
中提供的支付详情生成一个签名 html 表单。
支付类型
- hsbc - 如果您的支付方式是 "bpiinstall" 或 "hsbcinstall",则将支付类型设置为 "hsbc"。
- 默认 - 除了 "bpiinstall" 和 "hsbcinstall" 之外的所有支付方式
使用分期付款生成支付请求
当使用 "bpiinstall" 和 "hsbcinstall" 这样的分期付款时,您应该在您的 PaymentRequest
中设置 MetaData2 和 Secure3d,并且在与 setCountry() 传递国家名称相反的情况下,应该传递国家 ISO 代码。
示例
$paymentRequest->setMetaData2(<[bank]:[mode]:[term]>) ->setSecure3d('try3d') ->setCountry('PH')
Metadata2 模式
“1” - 绝对 0%
“2” – 正常分期付款
“3” – 即买即付,绝对 0%
“4” - 即买即付,正常分期付款
“5” – 减息分期付款促销
对于 HSBC,模式是 1。 对于 BPI,在测试环境中,可用的模式是 2。