bawes/myfatoorah-php

MyFatoorah PHP 库

1.0.0 2018-11-01 09:37 UTC

This package is auto-updated.

Last update: 2024-09-29 04:49:03 UTC


README

Latest Version Software License Total Downloads

安装

安装此库的首选方式是通过composer

运行以下命令之一

$ composer require bawes/myfatoorah-php

或将以下内容添加到您的应用composer.json文件的require部分。

"bawes/myfatoorah-php": "^1.0"

使用方法

首先,我们需要确定我们想要使用哪个环境

步骤 1: 根据环境初始化

测试环境

<?php
use bawes/myfatoorah/MyFatoorah;

$my = MyFatoorah::test();

实时环境

<?php
use bawes/myfatoorah/MyFatoorah;

$merchantCode = "[Your merchant code here]";
$username = "[Your merchant username here]";
$password = "[Your merchant password here]";
$my = MyFatoorah::live($merchantCode, $username, $password);

步骤 2: 请求支付链接并重定向到它

<?php
use bawes/myfatoorah/MyFatoorah;

$merchantCode = "[Your merchant code here]";
$username = "[Your merchant username here]";
$password = "[Your merchant password here]";
$my = MyFatoorah::live($merchantCode, $username, $password);

$my->setPaymentMode(MyFatoorah::GATEWAY_ALL)
->setReturnUrl("https://google.com")
->setErrorReturnUrl("https://google.com")
->setCustomer("Khalid", "customer@email.com", "97738271")
->setReferenceId() //Pass unique order number or leave empty to use time()
->addProduct("iPhone", 5.350, 3)
->addProduct("Samsung", 12.000, 1)
->getPaymentLinkAndReference();

$paymentUrl = $my['paymentUrl'];
$myfatoorahRefId = $my['paymentRef']; //good idea to store this for later status checks

// Redirect to payment url
header("Location: $paymentUrl");
die();

步骤 3: 请求订单状态以确认支付状态

使用MyFatoorah::getOrderStatus($referenceId)来获取支付状态的更新。最佳调用时机是在从MyFatoorah的returnUrl或errorReturnUrl收到回调之后。您也可以在本地存储参考ID后手动调用此函数。

示例订单状态请求

<?php
use bawes/myfatoorah/MyFatoorah;

// Example Ref ID
$myfatoorahRefId = $_GET['id'];

// Order status on Test environment
$orderStatus = MyFatoorah::test()
    ->getOrderStatus($myfatoorahRefId);

// Order status on Live environment
$merchantCode = "[Your merchant code here]";
$username = "[Your merchant username here]";
$password = "[Your merchant password here]";
$orderStatus = MyFatoorah::live($merchantCode, $username, $password)
    ->getOrderStatus($myfatoorahRefId);

订单状态响应(成功)

<?php
$orderStatus = [
    'responseCode' => '0', //MyFatoorah::REQUEST_SUCCESSFUL
    'responseMessage' => 'SUCCESS',
    'result' => 'CAPTURED',

    // Successful payment fields
    'payMode' => 'KNET',
    'orderId' => '1085183',
    'payTransactionId' => '673386261283050',
    'grossAmountPaid' => '32.500',
    'netAmountToBeDeposited' => '32.300',

    // User defined fields
    'udf1' => '',
    'udf2' => '',
    'udf3' => '',
    'udf4' => '',
    'udf5' => ''
]

订单状态响应(失败)

<?php
$orderStatus = [
    'responseCode' => '2009',
    'responseMessage' => 'Transaction Failed Messages',
    'result' => 'Payment Server detected an error',

    // User defined fields
    'udf1' => '',
    'udf2' => '',
    'udf3' => '',
    'udf4' => '',
    'udf5' => ''
]

支付网关

通过将MyFatoorah类上可用的GATEWAY常量传递给MyFatoorah::setPaymentMode来配置您希望使用的网关。

  • MyFatoorah::GATEWAY_ALL - 生成的链接将发送到包含所有支付方式的MyFatoorah页面
  • MyFatoorah::GATEWAY_KNET - 生成的链接将用户直接发送到KNET门户
  • MyFatoorah::GATEWAY_VISA_MASTERCARD - 生成的链接将用户直接发送到VISA/MASTER门户
  • MyFatoorah::GATEWAY_SAUDI_SADAD - 生成的链接将用户直接发送到Sadad Saudi门户
  • MyFatoorah::GATEWAY_BAHRAIN_BENEFIT - 生成的链接将用户直接发送到BENEFIT BAHRAIN门户
  • MyFatoorah::GATEWAY_QATAR_QPAY - 生成的链接将用户直接发送到Qpay Qatar门户
  • MyFatoorah::GATEWAY_UAECC - 生成的链接将用户直接发送到UAE借记卡门户

使用示例

<?php
use bawes/myfatoorah/MyFatoorah;

$my = MyFatoorah::live($merchantCode, $username, $password);
$my->setPaymentMode(MyFatoorah::GATEWAY_ALL)

测试卡

这些卡只有在使用MyFatoorah::test()环境初始化时才会工作。

KNET

优点

Visa

Mastercard

Amex

Sadad