tobelyan/omnipay-arca

ACBA、ASHIB、INECO和其他arca.am合作伙伴银行的ARCA支付网关[Laravel]带CardBinding

dev-master 2021-10-18 08:42 UTC

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

基本用法

  1. 使用Omnipay网关类
    use Omnipay\Omnipay;
  1. 初始化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
  1. 调用购买,将自动跳转到ARCA的主页页面
    $purchase = $gateway->purchase()->send();

    $purchase->redirect();
  1. 这里我们应该获取回调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问题跟踪器报告,或者更好的方法是分支库并提交一个拉取请求。