dpsoft/saderat

此包最新版本(v4.0.1)没有可用的许可证信息。

萨达拉特银行支付

v4.0.1 2021-11-21 06:08 UTC

This package is auto-updated.

Last update: 2024-09-21 12:23:48 UTC


README

License: GPL v2

Mabna Cart Aria 是一家伊朗公司,专注于银行支付,并允许您使用伊朗支付网关(萨达拉特银行)在您的网站上处理结账。

为什么每年都要推出新版本?!

萨达拉特银行每年都会推出新版本的软件,这有点令人难以置信。

安装

composer require dpsoft/saderat

实现

注意:萨达拉特银行提供的 Web 服务仅限通过萨达拉特银行允许的 IP 地址访问(与 Mabna Cart 公司签订的合同)。

使用 PHP 语言集成萨达拉特银行 - Mabna Cart

将带有参数的客户重定向到萨达拉特网关

<?php use Dpsoft\Saderat\Saderat;

try{
    /**
    * @param int $terminalId The Saderat cart terminal id assign to you 
    */
    $request = new Saderat($terminalId);
	
    /**
     * @param string $callbackUrl The url that customer redirect to after payment
     * @param int $amount The amount that customer must pay
     * @param string $payload Optional addition data
	 *
	 * @method payRequest Return invoice id and you can save in your DB
	 *
     */
    $invoiceId = $request->request($callbackUrl, $amount, $payload);
	
    echo $request->getRedirectScript();
   
}catch (\Throwable $exception){
    echo $exception->getMessage();
}

在特定条件下验证交易或可能回滚交易

客户将被重定向到回调 URL,并包含所有交易数据,您必须验证或回滚交易。
如果您不调用 verify(),系统将在 30 分钟后自动回滚交易。

verify

<?php
use Dpsoft\Saderat\Saderat;

try{
    /**
      * @var int $terminalId
      */
    $response = new Saderat($terminalId);
	
        /**
          * @method $verify return class of all response value and you can convert to array by toArray() method
          */
        $verifyData = $response->verify();
        /**
          * Check your amount with response amount
          */
        echo "Successful payment ...";
       
}catch (\Throwable $exception){
    echo $exception->getMessage();
}

回滚交易

需要通过 Mabna Cart 公司访问回滚支付

<?php
use Dpsoft\Saderat\Saderat;

try{
    /**
      * @var int $terminalId
      */
    $response = new Saderat($terminalId);
	
    $response->rollbackPayment($digitalReceipt);
    	
    echo "Successful rollback transaction ...";
       
}catch (\Throwable $exception){
    echo $exception->getMessage();
}
交易数据或响应包含
  • respcode: 交易结果的代码,如果此代码等于 0,则交易成功,我们可以发送验证或回滚请求;如果此代码等于 -1,则客户已取消支付
  • amount: 顾客卡片上划出的金额(出于安全原因,您必须比较此金额与您的金额)
  • invoiceid: 交易发票号
  • payload: 我们与顾客一起发送到 Mabna Cart 网关的附加数据
  • terminalid: 终端号
  • tracenumber: 交易的跟踪号
  • rrn: 银行文件号,由网关生成,如果需要跟踪,必须保存此号
  • datepaid: 交易时间
  • digitalreceipt: 验证或回滚支付的数字收据
  • issuerbank(string): 顾客卡片的银行名称
  • cardnumber: 顾客卡号
  • respmsg: 交易消息

  • 您可以通过返回类的 get 方法访问响应数据,如果想要通过数组访问参数,可以调用 toArray() 方法。
    通过类对象获取值

    $digitalReceipt = $verifyData->getDigitalReceipt();

    通过数组获取值

    $verifyDataArray = $verifyData->toArray();
    $digitalReceipt = $verifyDataArray['digitalreceipt'];