rahulreghunath/nttdatapay

nttdatapay 支付网关集成在 Laravel 中

1.1.0-beta 2022-09-28 11:32 UTC

This package is not auto-updated.

Last update: 2024-09-25 21:32:45 UTC


README

Laravel 对 NTT DATA PAY 支付网关的集成。

安装

使用 composer install 安装该包。

composer require rahulreghunath/nttdatapay

运行命令以发布配置文件。

php artisan vendor:publish --provider="Rahulreghunath\Nttdatapay\ServiceProvider"

配置

config/nttdatapay.php 文件中设置凭证和配置。

请注意,配置将因测试和生产环境而异,并由 NTT DATA 提供。

使用方法

创建令牌 ID

使用 createTokenId($data) 方法创建令牌 ID 以发起支付请求。

示例数据

$data = [
    "payInstrument" => [
        "headDetails" => [
            "version" => "OTSv1.1",
            "api" => "AUTH",
            "platform" => "FLASH"
        ],
        "merchDetails" => [
            "merchTxnId" => "Test123450",
            "merchTxnDate" => "2021-09-04 20:46:00"
        ],
        "payDetails" => [
            "amount" => "1",
            "product" => "PRODUCT", // optional value
            "custAccNo" => "ACC NO", // optional value
            "txnCurrency" => "INR"
        ],
        "custDetails" => [
            "custEmail" => "user@email.com",
            "custMobile" => "0000000000"
        ],
        "extras" => [
            "udf1" => "", // optional value
            "udf2" => "", // optional value
            "udf3" => "", // optional value
            "udf4" => "", // optional value
            "udf5" => "" // optional value
        ]
    ]
];
$payment = new Atom();

$atomTokenId = $payment->createTokenId($data);

调用 JavaScript API

使用 Atom 令牌 ID 调用 JavaScript API

<button onclick="pay()">Pay</button>

<script src="CDN provided by NTT DATA"></script>

<script> 
    const pay=()=>{
        const options = {
            atomTokenId: "atomTokenId ", // token id get from atom
            merchId: "000000", // merchant id
            custEmail: "customer-email",
            custMobile: "customer-mobile",
            returnUrl: "your-response-url"
        }
        const atom = new AtomPaynetz(options,'uat');
    }
</script>

必填的 JavaScript CDN 链接将由 NTT DATA 提供,并且生产环境和测试环境不同。

检查交易状态

使用 transactionStatus($merTxn,$amt,$date) 方法检查支付状态。

$payment = new Atom();

$response = $payment->transactionStatus($merchantTransactionId,$amount,$date);

解密响应

使用 decrypt($data) 解密来自 Atom 的响应消息。

$payment = new Atom();

$jsonData = $payment->decrypt($encryptedData,$digest_algo="sha512");

默认使用的散列算法是 sha512,可以根据 NTT DATA 的规范使用不同的算法。