maib-ecomm/maib-sdk-php

maib电商API的PHP SDK

v1.1.0 2024-04-08 18:13 UTC

This package is auto-updated.

Last update: 2024-09-24 06:57:03 UTC


README

N|Solid

maib电商API的PHP SDK

maib电商API文档: https://docs.maibmerchants.md

需求

PHP >= 5.6

以下PHP扩展是必需的

  • curl
  • json

安装

Composer

通过Composer安装

composer require maib-ecomm/maib-sdk-php

要使用此包,请使用Composer的自动加载功能

require_once 'vendor/autoload.php';

手动安装

下载最新版本并将在您的项目中包含config.php文件。

require_once('/path/to/examples/config.php');

使用Composer入门

添加SDK类

<?php 
require_once 'vendor/autoload.php';

use MaibEcomm\MaibSdk\MaibAuthRequest;
use MaibEcomm\MaibSdk\MaibApiRequest;

添加项目配置

define('PROJECT_ID', 'YOUR_PROJECT_ID');
define('PROJECT_SECRET', 'YOUR_PROJECT_SECRET');
define('SIGNATURE_KEY', 'YOUR_SIGNATURE_SECRET');

项目激活后,将提供项目密钥和签名密钥。

签名密钥用于在回调URL上验证通知签名(/examples/callbackUrl.php)。

SDK使用示例

使用项目ID和项目密钥获取访问令牌

$auth = MaibAuthRequest::create()->generateToken(PROJECT_ID, PROJECT_SECRET);

// Save received data in your DB
$token = $auth->accessToken;
$tokenExpiresAt = time() + $auth->expiresIn;
$refreshToken = $auth->refreshToken;
$refreshExpiresAt = time() + $auth->refreshExpiresIn;

使用刷新令牌获取访问令牌

$auth = MaibAuthRequest::create()->generateToken($refreshToken);

// Save received data in your DB
$token = $auth->accessToken;
$tokenExpiresAt = time() + $auth->expiresIn;
$refreshToken = $auth->refreshToken;
$refreshExpiresAt = time() + $auth->refreshExpiresIn;

直接支付

// Set up payment required parameters
$data = array(
    'amount' => 10.25,
    'currency' => 'EUR',
    'clientIp' => '135.250.245.121'
);

// Initiate Direct Payment
$pay = MaibApiRequest::create()->pay($data, $token);

// Save payment ID in your DB
$payUrl = $pay->payUrl;
$payId = $pay->payId;

// Redirect Client to the maib checkout page
header("Location: " . $payUrl);
die;

在回调URL上收到的支付状态和数据。

两步支付。支付授权(挂起)

// Set up payment required parameters
$data = array(
    'amount' => 10.25,
    'currency' => 'EUR',
    'clientIp' => '135.250.245.121'
);

// Initiate Payment Authorization
$hold = MaibApiRequest::create()->hold($data, $token);

// Save payment ID in your DB
$payUrl = $hold->payUrl;
$payId = $hold->payId;

// Redirect Client to the maib checkout page
header("Location: " . $payUrl);
die;

在回调URL上收到的支付状态和数据。

两步支付。支付捕获(完成)

// Payment ID is required parameter
$data = array(
   'payId' => 'f16a9006-128a-46bc-8e2a-77a6ee99df75'
);

// Complete 2-Step Payment
$complete = MaibApiRequest::create()->complete($data, $token);

// Display request response
$jsonData = json_encode($complete);
echo $jsonData;

// Receive Payment status and data 
$payId = $complete->payId;
$cardNumber = $complete->cardNumber;
$status = $complete->status;
$statusMessage= $complete->statusMessage;
$confirmAmount = $complete->confirmAmount;

退款支付

// Payment ID is required parameter
$data = array(
   'payId' => 'f16a9006-128a-46bc-8e2a-77a6ee99df75'
);

// Initiate Refund Payment
$refund = MaibApiRequest::create()->refund($data, $token);

// Display request response
$jsonData = json_encode($refund);
echo $jsonData;

// Receive Refund status
$payId = $refund->payId;
$status = $refund->status;
$statusMessage= $refund->statusMessage;
$refundAmount = $refund->refundAmount;

支付信息

// Payment ID
$id = 'f16a9006-128a-46bc-8e2a-77a6ee99df75';

// Initiate Payment Info
$payInfo = MaibApiRequest::create()->payInfo($id, $token);

// Display request response
$jsonData = json_encode($payInfo);
echo $jsonData;

// Receive Payment status and data 
$payId = $payInfo->payId;
$status = $payInfo->status;
$statusMessage = $payInfo->statusMessage;
$amount = $payInfo->amount;
$currency = $payInfo->currency;
$cardNumber = $payInfo->cardNumber;
$rrn = $payInfo->rrn;
$approval = $payInfo->approval;

周期性支付。卡注册

// Set up required parameters
$data = array(
    'email' => 'customer@example.com',
    'billerExpiry' => '1230',
    'currency' => 'EUR',
    'clientIp' => '135.250.245.121'
);

// Initiate Card Registration for Recurring Payments
$saveRecurring = MaibApiRequest::create()->saveRecurring($data, $token);

// Save payId in your system
$payUrl = $saveRecurring->payUrl;
$payId = $saveRecurring->payId;

// Redirect Client to the maib checkout page
header("Location: " . $payUrl);
die;

在回调URL上收到的周期性支付数据(billerId/billerExpiry)。

周期性支付。执行周期性支付

// Set up required parameters
$data = array(
    'billerId' => 't78i8006-458a-46bc-9e0a-89a6ee11df68',
    'amount' => 6.25,
    'currency' => 'EUR'
);

// Execute Recurring Payment
$executeRecurring = MaibApiRequest::create()->executeRecurring($data, $token);

// Display request response
$jsonData = json_encode($executeRecurring);
echo $jsonData;

// Save payment status and data in your system
$billerId = $executeRecurring->billerId;
$payId = $executeRecurring->payId;
$orderId = $executeRecurring->orderId;
$status = $executeRecurring->status;
$statusMessage= $executeRecurring->statusMessage;
$amount = $executeRecurring->amount;
$currency = $executeRecurring->currency;
$cardNumber = $executeRecurring->cardNumber;
$rrn = $executeRecurring->rrn;
$approval = $executeRecurring->approval;

一键支付。卡注册

// Set up required parameters
$data = array(
    'email' => 'customer@example.com',
    'billerExpiry' => '1230',
    'currency' => 'EUR',
    'clientIp' => '135.250.245.121'
);

// Initiate Card Registration for One-Click Payments
$saveOneclick = MaibApiRequest::create()->saveOneclick($data, $token);

// Save payId in your system
$payUrl = $saveOneclick->payUrl;
$payId = $saveOneclick->payId;

// Redirect Client to maib checkout page
header("Location: " . $payUrl);
die;

在回调URL上收到的支付数据(billerId/billerExpiry)。

一键支付。执行一键支付

// Set up required parameters
$data = array(
    'billerId' => 't78i8006-458a-46bc-9e0a-89a6ee11df68',
    'amount' => 6.25,
    'currency' => 'EUR',
    'clientIp' => '135.250.245.121'
);

// Execute One-Click Payment
$executeOneclick = MaibApiRequest::create()->executeOneclick($data, $token);

// Save payment ID in your DB
$payUrl = $executeOneclick->payUrl;
$payId = $executeOneclick->payId;

// Redirect Client to the maib checkout page for 3D-Secure authentication
header("Location: " . $payUrl);
die;

在回调URL上收到的支付状态和数据。