如何使用Omnipay-NAB Transact处理退款

时间:2019-09-04 03:56:18

标签: php laravel payment-gateway omnipay

我正在尝试进行退款过程,它已连接到nab测试模式服务器,但未处理退款交易。

我昨天进行了一笔交易,想退还部分款项,但是没有通过,并显示错误的信用卡详细信息不可用(错误代码133)。

我正在使用TransactionID和TransactionReference以及要扣除但无法使用的金额发送请求。

我的代码:-

public function pay()
    {
      $gateway = Omnipay::create('NABTransact_SecureXML');
    $gateway->setMerchantId('XYZ0010');
    $gateway->setTransactionPassword('abcd1234');
    $gateway->setTestMode(true);

    $card = new CreditCard([
            'firstName' => 'ABC',
            'lastName' => 'DEF',
            'number'      => '4444333322221111',
            'expiryMonth' => '05',
            'expiryYear'  => '2025',
            'cvv'         => '123',
        ]
    );

    $transaction = $gateway->purchase([
            'amount'        => '5000.00',
            'currency'      => 'AUD',
            'transactionId' => '100321', // (My order ID)
            'card'          => $card,
        ]
    );

    $response = $transaction->send();


    }
  

我在这里获得的transactionID为: 706256

请在NAB中查看上述交易的屏幕截图: enter image description here

    public function refund()
        {
          $gateway = Omnipay::create('NABTransact_SecureXML');
          $gateway->setMerchantId('XYZ0010');
          $gateway->setTransactionPassword('abcd1234');
          $gateway->setTestMode(true);

          $card = ([
                 'firstName' => 'ABC',
                 'lastName' => 'DEF',
                 'number'      => '4444333322221111',
                 'expiryMonth' => '05',
                 'expiryYear'  => '2025',
                 'cvv'         => '123',
             ]
         );

           $refund = $gateway->refund([
                           'transactionReference' => "706256",
                           'amount' => "5.00",
                           'currency' => "AUD",
                           'transactionId' => "100321",
                           'messageID' => '4',
                           'card' => $card,
                            ]);


             $refund->send();


        }
  

请在以下情况下在NAB中查看上述交易的屏幕截图:   尝试退款:

enter image description here

1 个答案:

答案 0 :(得分:0)

是的,我已经解决了。

这是我的代码示例:

$gateway = Omnipay::create('NABTransact_SecureXML');
gateway->setMerchantId('_ID_');
$gateway->setTransactionPassword('_PASSWORD_');
$gateway->setTestMode(false); 

$refund = $gateway->refund([
            'transactionReference' => "12345",
            'amount' => "500",
            'transactionId' => 765897, (hope u must have saved this number in DB)
      ]);

  $response = $refund->send();
  $message = $response->getMessage();
  if ($response->isSuccessful()) {

   return "I m Happy"

    } else {
              return back()->with('amountError', $message);
           }
                    
       

让我知道如何进行:)

相关问题