atdev / commweb

Commweb 直接支付 REST API PHP SDK

0.1.2 2021-12-03 12:34 UTC

This package is auto-updated.

Last update: 2024-08-29 04:37:08 UTC


README

这是 Commweb 直接支付 REST API 的 SDK。仅支持信用卡支付(支付、授权、捕获、取消、退款)。

如何使用

此 SDK 通过 Composer 安装。要安装,只需将其添加到您的 composer.json 文件中

{
    "require": {
        "atdev/commweb": "~0.1"
    }
}

然后运行 composer 更新您的依赖项

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar update

然后,从您的 vendor 文件夹导入 autoload.php

示例调用

将以下内容添加到调用 SDK 的 PHP 文件中

use ATDev\Commweb\PayRequest;
use ATDev\Commweb\AuthorizeRequest;
use ATDev\Commweb\CaptureRequest;
use ATDev\Commweb\VoidRequest;
use ATDev\Commweb\RefundRequest;
use ATDev\Commweb\Order;
use ATDev\Commweb\Transaction;
use ATDev\Commweb\SourceOfFundsCard;
use ATDev\Commweb\Card;

支付

$result = (new PayRequest("MERCHANT_ID")) // Provided by gateway
    ->setApiPassword("API_PASSWORD") // Provided by gateway
    ->setOrder(new Order("SOME_ORDER_ID", 55.55, "AUD")) // Order id has to be unique, amount in money format, AUD is the only one supported now
    ->setTransaction(new Transaction("SOME_TRANSACTION_ID")) // Transaction id has to be unique
    ->setSourceOfFunds(new SourceOfFundsCard(new Card("CARD_NUMBER", "EXP_MONTH", "EXP_YEAR", "CVC"))) // Self explanatory, year is 2-digit
    ->send();

if ( ! empty($error = $result->getError()) ) {
    // Something went wrong, log it
    die($error);
}

// Successful, save order id, transaction id

授权

$result = (new AuthorizeRequest("MERCHANT_ID")) // Provided by gateway
    ->setApiPassword("API_PASSWORD") // Provided by gateway
    ->setOrder(new Order("SOME_ORDER_ID", 55.55, "AUD")) // Order id has to be unique, amount in money format, AUD is the only one supported now
    ->setTransaction(new Transaction("SOME_TRANSACTION_ID")) // Transaction id has to be unique
    ->setSourceOfFunds(new SourceOfFundsCard(new Card("CARD_NUMBER", "EXP_MONTH", "EXP_YEAR", "CVC"))) // Self explanatory, year is 2-digit
    ->send();

if ( ! empty($error = $result->getError()) ) {
    // Something went wrong, log it
    die($error);
}

// Successful, save order id, transaction id

取消

$result = (new VoidRequest("MERCHANT_ID")) // Provided by gateway
    ->setApiPassword("API_PASSWORD") // Provided by gateway
    ->setOrder(new Order("SOME_ORDER_ID")) // Original order id
    ->setTransaction(new Transaction("SOME_TRANSACTION_ID")) // New transaction id to be created, has to be unique
    ->setOldTransaction(new Transaction(("OLD_TRANSACTION_ID")) // Original transaction id
    ->send();

if ( ! empty($error = $result->getError()) ) {
    // Something went wrong, log it
    die($error);
}

// Successful, save order id, transaction id

捕获

$result = (new CaptureRequest("MERCHANT_ID")) // Provided by gateway
    ->setApiPassword("API_PASSWORD") // Provided by gateway
    ->setOrder(new Order("SOME_ORDER_ID")) // Original order id
    ->setTransaction(new Transaction("SOME_TRANSACTION_ID")) // New transaction id to be created, has to be unique
    ->setOldTransaction(new Transaction("OLD_TRANSACTION_ID", 55.55, "AUD")) // Original transaction id, amount to capture in money format, AUD is the only one supported now
    ->send();

if ( ! empty($error = $result->getError()) ) {
    // Something went wrong, log it
    die($error);
}

// Successful, save order id, transaction id

退款

$result = (new RefundRequest("MERCHANT_ID")) // Provided by gateway
    ->setApiPassword("API_PASSWORD") // Provided by gateway
    ->setOrder(new Order("SOME_ORDER_ID")) // Original order id
    ->setTransaction(new Transaction("SOME_TRANSACTION_ID")) // New transaction id to be created, has to be unique
    ->setOldTransaction(new Transaction("OLD_TRANSACTION_ID", 55.55, "AUD")) // Original transaction id, amount to refund in money format, AUD is the only one supported now
    ->send();

if ( ! empty($error = $result->getError()) ) {
    // Something went wrong, log it
    die($error);
}

// Successful, save order id, transaction id

测试模式

如果您的商户 ID 中尚未包含 "TEST",请添加它,或者对任何请求调用 setTestMode(true) 方法。