tobelyan / omnipay-arca
ACBA、ASHIB、INECO和其他arca.am合作伙伴银行的ARCA支付网关[Laravel]带CardBinding
dev-master
2021-10-18 08:42 UTC
Requires
- omnipay/common: ^3
Requires (Dev)
- omnipay/tests: ^3
This package is auto-updated.
Last update: 2024-09-14 15:47:42 UTC
README
用于Omnipay Laravel支付处理库的ARCA驱动器
Omnipay是一个框架无关的多网关支付处理库,适用于PHP 5.5+。本包实现了Omnipay对ARCA的支持,支持CardBinding。
安装
Omnipay通过Composer安装。要安装,只需将其添加到您的composer.json
文件中
{ "require": { "tobelyan/omnipay-arca": "dev-master" } }
然后运行Composer来更新您的依赖项
composer update
或者您可以直接运行
composer require tobelyan/omnipay-arca
基本用法
- 使用Omnipay网关类
use Omnipay\Omnipay;
- 初始化ARCA网关
$gateway = Omnipay::create('Arca'); $gateway->setUserName(env('username')); $gateway->setPassword(env('password')); $gateway->setParameter('language',\App::getLocale()); // Language $gateway->setParameter('amount',10); // Amount to charge $gateway->setParameter('TransactionId',XXXX); // Transaction ID from your system
- 调用购买,将自动跳转到ARCA的主页页面
$purchase = $gateway->purchase()->send(); $purchase->redirect();
- 这里我们应该获取回调URL以检查状态,例如
public function checkStatus(Request $request) { $orderId = $request->orderId; //then make a request $gateway = Omnipay::create('Arca'); $gateway->setUserName(env('username')); $gateway->setPassword(env('password')); $purchase = $gateway->getOrderStatus(['transactionId' => $request->orderId])->send(); if($purchase->isSuccessful()) { //your logic } }
卡绑定
将这些方法添加到您的逻辑中
$gateway->setParameter('clientId', auth()->user()->id); $gateway->setParameter('bindingPayment',true); $gateway->setParameter('bindingId',$card->bindingId); //Send Binding info using these methods $gateway->setParameter('mdOrder',$orderId); $purchase = $gateway->makeBindingPayment()->send(); //then send Redirection if ($purchase->isRedirect()) { $purchase->redirect(); }
支付后您将获得的数据
$purchaseData = [ 'user_id'=>auth()->user()->id, 'expiration'=>$purchase->getData()['cardAuthInfo']['expiration'], 'cardholderName'=>$purchase->getData()['cardAuthInfo']['cardholderName'], 'approvalCode'=>$purchase->getData()['cardAuthInfo']['approvalCode'], 'pan'=>$purchase->getData()['cardAuthInfo']['pan'], 'clientId'=>$purchase->getData()['bindingInfo']['clientId'], 'bindingId'=>$purchase->getData()['bindingInfo']['bindingId'], 'secure_hash'=>md5($purchase->getData()['cardAuthInfo']['pan']) ];
有关一般使用说明,请参阅主Omnipay存储库。
由DINEURON开发
支持
如果您在使用Omnipay时遇到一般问题,我们建议在Stack Overflow上发布。请确保添加omnipay标签,以便易于查找。
如果您想了解发布公告、讨论项目想法或提出更详细的问题,还可以订阅邮件列表。
如果您认为您已找到错误,请使用GitHub问题跟踪器报告,或者更好的方法是分支库并提交一个拉取请求。