rak / simplify
Rak Simplify Laravel 扩展包
dev-master
2021-05-10 17:57 UTC
Requires
- php: >=7.2.0
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 ]; }