coreproc/paynamics-sdk-laravel

v1.1.0 2023-01-19 03:06 UTC

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。

致谢