arm092 / omnipay-ameriabank
AmeriaBank网关用于Omnipay支付处理库
1.0.2
2023-02-20 17:51 UTC
Requires
- php: ^7.4|8.*
- ext-json: *
- omnipay/common: ^3
Requires (Dev)
- omnipay/tests: ^v4.0.0
This package is auto-updated.
Last update: 2024-09-20 21:55:43 UTC
README
AmeriaBank网关用于Omnipay Laravel支付处理库
Omnipay 是一个适用于PHP 5.5+的框架无关的多网关支付处理库。此包实现了Omnipay对Arca的支持。
安装
Omnipay通过Composer安装。要安装,只需将其添加到您的composer.json
文件中
{ "require": { "arm092/omnipay-ameriabank": "^1" } }
然后运行composer更新您的依赖项
composer update
或者您可以直接运行
composer require arm092/omnipay-ameriabank
基本用法
- 使用Omnipay网关类
use Omnipay\Omnipay;
- 初始化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
- 调用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(); }
- 创建一个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。