behzadbabaei/omnipay-thawani

为Omnipay支付处理库提供的Thawani(阿曼支付)驱动程序

v1.1.0 2021-11-22 14:50 UTC

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

基本用法

  1. 使用Omnipay网关类
    use Omnipay\Omnipay;
  1. 初始化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。