behzadbabaei / omnipay-thawani
为Omnipay支付处理库提供的Thawani(阿曼支付)驱动程序
v1.1.0
2021-11-22 14:50 UTC
Requires
- php: ^7.2|^8
- ext-json: *
- omnipay/common: ^3
Requires (Dev)
- omnipay/tests: ^3
This package is auto-updated.
Last update: 2024-09-22 21:03:34 UTC
README
Thawani网关用于Omnipay支付处理库。本软件包已实现Thawani支付系统的Checkout API。更多信息请访问以下链接:开发者文档
安装
Omnipay通过Composer安装。要安装,只需将其添加到您的composer.json
文件中
{ "require": { "behzadbabaei/omnipay-thawani": "dev-master" } }
然后运行composer以更新您的依赖项
composer update
或者您可以简单地运行
composer require behzadbabaei/omnipay-thawani
基本用法
- 使用Omnipay网关类
use Omnipay\Omnipay;
- 初始化Thawani网关
$gateway = Omnipay::create('Thawani'); $gateway->setPublishKey('publish-key'); $gateway->setSecretKey('secret-key'); $gateway->setTestMode(true-false);
创建会话
调用购买,它将返回包括进一步处理所需session_id的响应。有关更多信息,请参阅开发者文档。
$purchase = $gateway->purchase(); $purchase->setAmount(12000); $purchase->setQuantity(1); $purchase->setProductName("product name test1"); //Product name is required $purchase->setTransactionId($data['transactionId']); //TransactionId is required $purchase->setCustomerId(''); $purchase->setReturnUrl('https://www.example.com/thawani/success'); //The success url is required $purchase->setCancelUrl('https://www.example.com/thawani/cancel'); //The cancel url is required $purchase->setSaveCardOnSuccess(false); $purchase->setPlanId(''); // The metadata about the customer is required, like name, email $purchase->setMetadata([ 'orderId' => $data['transactionId'], 'customerId' => $data['customerId'] ?? null, 'customerEmail' => $data['customerEmail'] ?? null, 'customerName' => $data['customerName'] ?? null,// user full name ]); $result = $purchase->send(); $response = $result->getData(); $redirectUrl = $result->getRedirectUrl();
或者
$result = $gateway->purchase([ 'amount' => 12000, 'quantity' => 1, 'productName' => 'product name test2', 'transactionId' => $data['transactionId'], 'customerId' => '', 'returnUrl' => 'https://www.example.com/thawani/success', 'cancelUrl' => 'https://www.example.com/thawani/cancel', 'saveCardOnSuccess' => false, 'planId' => '', 'metadata' => [ 'orderId' => $data['transactionId'], 'customerId' => $data['customerId'] ?? null, 'customerEmail' => $data['customerEmail'] ?? null, 'customerName' => $data['customerName'] ?? null,// user full name ] ])->send(); $response = $result->getData(); $redirectUrl = $result->getRedirectUrl();
检索订单
有关更多信息,请参阅开发者文档。
$fetch = $gateway->fetchTransaction(); $fetch->setOrderId($orderId); $result = $fetch->send()->getData();
或者
$fetch = $gateway->fetchTransaction( [ 'orderId' => $orderId ] ); $result = $fetch->send()->getData();
有关一般使用说明,请参阅主要的Omnipay仓库。
支持
如果您在使用Omnipay时遇到一般问题,我们建议您在Stack Overflow上发布帖子。请确保添加omnipay标签,以便可以轻松找到。
如果您想了解发布公告、讨论项目的想法或提出更详细的问题,还有一个您可以订阅的邮件列表。
如果您认为您已经发现了一个错误,请使用GitHub问题跟踪器报告它,或者更好的是,分支库并提交一个pull request。