rak/simplify

Rak Simplify Laravel 扩展包

dev-master 2021-05-10 17:57 UTC

This package is auto-updated.

Last update: 2024-09-11 01:16:08 UTC


README

简化支付网关 - Laravel 扩展包

当然,Dillinger 本身也是开源的,在 GitHub 上有一个 [公共仓库][dill]。

安装

composer require rak/simplify

使用方法

支付授权/捕获

授权与支付非常相似,除了你不是立即在您和您的客户之间交换货币,而是暂时冻结客户的账户,然后您可以稍后捕获一个小于或等于授权金额的金额,并将差额退还给客户。如果客户购买商品但付款信息的接受与商品发货之间存在延迟,则创建授权可能很重要。

授权支付

在这里,我们将展示如何使用与您在教程中生成的类似的卡令牌授权卡支付。否则,点击此处 了解生成卡令牌的方法。要授权支付,您需要使用带有 RAKBANK Simplify 授权 SDK 的卡令牌来创建授权。

在您的类中使用已安装的包的命名空间

use Rak\Simplify\Simplify;

获取卡令牌后,请使用以下代码创建 auth

Simplify::$publicKey = 'Your Public Key';
Simplify::$privateKey = 'Your Private Key';

try {  
    $rakAuthCheck = Simplify::authorization(array(
        'reference' => 'IO-4521458', // Order reference
        'amount' => 1000, // 10 AED multiplied by 100
        'description' => 'payment description',
        'currency' => 'AED',
        'token' => 'cXsdf', // Card token you received
        'order' => [
            'source' => 'WEB',
            'customerEmail' => 'ebrahim@email.com',
            'customerName' => 'Ebrahim Nayakkan',
        ]
    ));
    
    if($rakAuthCheck){
        //Success call
        Log::info(print_r($rakAuthCheck, true)); // Printing reponse to your log file.
        return $rakAuthCheck;
    }
} catch(Exception $e) {
    // Failed call
    return [
        'auth_message' => $e->getMessage()
    ];
}

如果打印成功响应,它将看起来像这样

(
    [card] => stdClass Object
        (
            [id] => XxR8XEz6z
            [name] => Ebrahim
            [type] => MASTERCARD
            [last4] => 8877
            [addressLine1] => 
            [addressCity] => 
            [addressState] => 
            [addressZip] => 
            [addressCountry] => AE
            [expMonth] => 5
            [expYear] => 21
            [dateCreated] => 1620273359426
            [cardEntryMode] => E_COMMERCE
            [indicator] => UNKNOWN
            [indicatorSource] => UNKNOWN
        )

    [amount] => 1000
    [amountRemaining] => 1000
    [currency] => AED
    [description] => payment description
    [captured] => 
    [reversed] => 
    [avsZipMatch] => 1
    [avsCvcMatch] => 1
    [avsAddressMatch] => 1
    [transactionData] => stdClass Object
        (
            [amount] => 1000
            [currency] => AED
            [description] => payment description
            [date] => 2021-05-06T03:56:04Z
            [order] => stdClass Object
                (
                    [reference] => 
                    [commodityCode] => 
                    [customer] => stdClass Object
                        (
                            [reference] => 
                        )
                )
        )
    [reference] => IO-4521458
    [authCode] => psBbAT
    [paymentStatus] => APPROVED
    [dateCreated] => 1620273364428
    [paymentDate] => 1620273364382
    [id] => a7R8aboL8
    [source] => HOSTED_PAYMENTS
    [expirationDate] => 1620878164237
    [expired] => 
    [capturedAmount] => 0
    [reversedAmount] => 0
)
捕获授权

大多数情况下,创建授权最终将伴随捕获支付。要捕获支付,请使用您通常创建支付时使用的相同命令,但不要指定卡令牌或卡信息,而是引用授权 ID。请确保捕获货币与授权货币相同,并且捕获的金额等于或小于授权金额。

Simplify::$publicKey = 'Your Public Key';
Simplify::$privateKey = 'Your Private Key';

try {
    $payment = Simplify::createPayment(array(
        'authorization' => 'a7R8aboL8', //Authorization ID you received in Authorizing
        'reference' => 'IO-4521458',
        'amount' => 1000, // 10 AED multiplied by 100
        'description' => 'payment description',
        'currency' => 'AED',
        'order' => [
            'source' => 'WEB',
            'status' => 'INCOMPLETE',
            'customerEmail' => 'ebrahim@email.com',
            'customerName' => 'Ebrahim Nayakkan',
        ]
    ));
    if ($payment->paymentStatus == 'APPROVED') {
        Log::info(print_r($payment, true)); // Printing reponse to your log file.
        return $payment;
    }
} catch (Exception $e) {
    return [
        'auth_message' => $e->getMessage(), // Capture Failed
    ];
}