arm092 / omnipay-ameriabank

AmeriaBank网关用于Omnipay支付处理库

1.0.2 2023-02-20 17:51 UTC

This package is auto-updated.

Last update: 2024-09-20 21:55:43 UTC


README

AmeriaBank网关用于Omnipay Laravel支付处理库

Latest Stable Version Total Downloads

Omnipay 是一个适用于PHP 5.5+的框架无关的多网关支付处理库。此包实现了Omnipay对Arca的支持。

安装

Omnipay通过Composer安装。要安装,只需将其添加到您的composer.json文件中

{
    "require": {
        "arm092/omnipay-ameriabank": "^1"
    }
}

然后运行composer更新您的依赖项

composer update

或者您可以直接运行

composer require arm092/omnipay-ameriabank

基本用法

  1. 使用Omnipay网关类
    use Omnipay\Omnipay;
  1. 初始化Ameria网关
    $gateway = Omnipay::create('Ameria');
    $gateway->setClientId(env('AMERIA_CLIENT_ID')); // Merchant ID - Provided by bank
    $gateway->setUsername(env('AMERIA_USERNAME')); // Username - Provided by bank
    $gateway->setPassword(env('AMERIA_PASSWORD')); // Password - Provided by bank
    $purchase = $gateway->purchase(); // Creating purchase request
    $purchase->setReturnUrl(env('AMERIA_RETURN_URL')); // Return url, that should be point to your arca webhook route
    $purchase->setAmount(10); // Amount to charge - should be decimal - use only 10 AMD if you are in test mode
    $purchase->setTransactionId(XXXX); // Transaction ID from your system
    $purchase->setTestMode(true); // For enabling test mode
    $purchase->setOpaque(json_encode(['email' => 'user@example.com'])); // Is not mandatory field and used as additional information during information exchange 
  1. 调用send,检查请求是否成功,然后重定向到AmeriaBank的托管页面
    $purchaseResponse = $purchase->send();
    if ($purchaseResponse->isSuccessfull()) {
        $purchaseResponse->setLanguage(\App::getLocale()); // Interface language ('am', 'ru', 'en')
        $purchaseResponse->setTestMode(true); // For enabling test mode
        $purchaseResponse->redirect();
    }
  1. 创建一个webhook控制器来处理在您的AMERIA_RETURN_URL上的回跳URL请求,并按如下方式捕获webhook
    $gateway = Omnipay::create('Ameria');
    $gateway->setClientId(env('AMERIA_CLIENT_ID'));
    $gateway->setUsername(env('AMERIA_USERNAME'));
    $gateway->setPassword(env('AMERIA_PASSWORD'));
    
    $purchaseCompleteRequest = $gateway->completePurchase();
    $purchaseCompleteRequest->setTransactionId(request()->get('paymentID'));
    $purchaseCompleteResponse = $purchaseCompleteRequest->send();
    
    // Do the rest with $purchase and response with 'OK'
    if ($purchaseCompleteResponse->isSuccessful()) {
        
        // Your logic
        
    }
    
    return new Response('OK');

有关通用使用说明,请参阅主要的 Omnipay 仓库。

支持

如果您在使用Omnipay时遇到一般问题,我们建议您在Stack Overflow上发帖。请确保添加omnipay标签,以便容易找到。

如果您想保持对发布公告的更新,讨论项目的想法或提出更详细的问题,还可以订阅一个邮件列表

如果您认为您已找到bug,请使用GitHub问题跟踪器报告,或者更好的方法是fork库并提交pull request。