transact-pro / gate
TransactPRO php 集成
v1.2.3
2023-12-19 10:57 UTC
Requires (Dev)
- phpunit/phpunit: 3.7.*
- satooshi/php-coveralls: dev-master
- dev-master
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-add_missing_parameters_to_InitDataBuilder
- dev-add_fields
- dev-add_fields_for_3d_v2
- dev-A2A_transactions_added_to_lib
- dev-uLow-patch-2
- dev-uLow-patch-1
- dev-phpci
- dev-uLow-patch-6
- dev-pashira-patch-1
- dev-uLow-patch-5
- dev-revert-19-tests-to-100
This package is auto-updated.
Last update: 2024-09-19 12:36:16 UTC
README
库提供了向 TransactPRO 网关 API 发送请求的能力。
库由我维护,而不是由 TransactPRO。因此,请直接在此(GitHub)提交所有请求、问题和疑问。库按原样提供。
您必须自己将库集成到项目中,我只提供基本的功能来发送请求。
安装
Composer
推荐的安装方式是通过 Composer。
运行命令行命令 composer require transact-pro/gate
或将其添加到您的 composer.json 文件中
"require": { "transact-pro/gate": "^v1.1" }
然后进行安装
$ composer.phar install
手动
您可以手动下载库并使用自动加载器。
require_once 'lib/autoloader.php'
用法
创建网关客户端
基本客户端
use TransactPRO\Gate\GateClient; $gateClient = new GateClient(array( 'apiUrl' => 'https://www.payment-api.com', 'guid' => 'AAAA-AAAA-AAAA-AAAA', 'pwd' => '111' ));
禁用 SSL 检查的客户端
use TransactPRO\Gate\GateClient; $gateClient = new GateClient(array( 'apiUrl' => 'https://www.payment-api.com', 'guid' => 'AAAA-AAAA-AAAA-AAAA', 'pwd' => '111', 'verifySSL' => false ));
操作
GateClient 实例提供多种操作,如 'charge' 或 'status_request'。所有传递给操作的数据都将进行验证,如果缺少必填字段,则将引发异常。请检查集成手册,以获取有关每个操作的所需数据的更多信息。
初始化
$response = $gateClient->init(array( 'rs' => 'AAAA', 'merchant_transaction_id' => '1', 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com' ));
收费
$response = $gateClient->charge(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'cc' => '5111111111111111', 'cvv' => '111', 'expire' => '01/20', 'browser_accept_header' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 'browser_java_enabled' => true, 'browser_javascript_enabled' => true, 'browser_language' => "en-US", 'browser_color_depth' => "24", 'browser_screen_height' => "1080", 'browser_screen_width' => "1920", 'browser_tz' => "-180" , 'browser_user_agent' => "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0", ));
初始化 DMS
$response = $gateClient->initDms(array( 'rs' => 'AAAA', 'merchant_transaction_id' => microtime(true), 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com' ));
挂起
$response = $gateClient->makeHold(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'cc' => '5111111111111111', 'cvv' => '111', 'expire' => '01/20' ));
收费挂起
$response = $gateClient->chargeHold(array( 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg' ));
取消 DMS
$response = $gateClient->cancelDms(array( 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'amount_to_refund' => '100' ));
取消请求
$response = $gateClient->cancelRequest(array( 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg' ));
退款
$response = $gateClient->refund(array( 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'amount_to_refund' => '100' ));
状态请求
$response = $gateClient->statusRequest(array( 'request_type' => 'transaction_status', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'f_extended' => '5' ));
初始化 P2P 交易
$response = $gateClient->initP2P(array( 'rs' => 'AAAA', 'merchant_transaction_id' => microtime(true), 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com', 'save_card' => '1', 'cardname' => 'John Doe', 'recipient_name' => 'Jane Doe', 'client_birth_date' => '06291988', ));
执行 P2P 交易
$response = $gateClient->doP2P(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'cc_2' => '5111111111111111', ));
初始化 B2P 交易
$response = $gateClient->initB2P(array( 'rs' => 'AAAA', 'merchant_transaction_id' => microtime(true), 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '10', 'currency' => 'RUB', 'name_on_card' => 'John Doe 1', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'noemail@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'client_birth_date' => '15101970', 'merchant_site_url' => 'http://www.example.com', ));
执行 B2P 交易
$response = $gateClient->chargeB2P(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'cc_2' => '5111111111111111', 'expire2' => '11/22', ));
初始化信用交易
$response = $gateClient->initCredit(array( 'rs' => 'AAAA', 'merchant_transaction_id' => microtime(true), 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com', ));
执行信用交易
$response = $gateClient->doCredit(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'cc' => '5111111111111111', 'cvv' => '111', 'expire' => '01/20', 'merchant_referring_url' => 'http://www.payment.example.com/id=example_referring_id', ));
初始化 A2A 交易
$response = $gateClient->initA2A(array( 'rs' => 'AAAA', 'merchant_transaction_id' => microtime(true), 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com', 'save_card' => '1', 'cardname' => 'John Doe', 'client_birth_date' => '29061988', ));
执行 A2A 交易
$response = $gateClient->doA2A(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'cc_2' => '5111111111111111', ));
初始化用于无卡 SMS 交易的存储卡
$response = $gateClient->initStoreCardSms(array( 'rs' => 'AAAA', 'merchant_transaction_id' => '1', 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com' ));
初始化用于无卡信用交易的存储卡
$response = $gateClient->initStoreCardCredit(array( 'rs' => 'AAAA', 'merchant_transaction_id' => microtime(true), 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com', ));
初始化用于无卡 P2P 交易的存储卡
$response = $gateClient->initStoreCardP2P(array( 'rs' => 'AAAA', 'merchant_transaction_id' => microtime(true), 'user_ip' => '127.0.0.1', 'description' => 'Test description', 'amount' => '100', 'currency' => 'LVL', 'name_on_card' => 'Vasyly Pupkin', 'street' => 'Main street 1', 'zip' => 'LV-0000', 'city' => 'Riga', 'country' => 'LV', 'state' => 'NA', 'email' => 'email@example.lv', 'phone' => '+371 11111111', 'card_bin' => '511111', 'bin_name' => 'BANK', 'bin_phone' => '+371 11111111', 'merchant_site_url' => 'http://www.example.com', 'save_card' => '1', 'cardname' => 'John Doe', 'recipient_name' => 'Jane Doe', 'client_birth_date' => '06291988', ));
用于无卡交易的存储卡
$response = $gateClient->storeCard(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'cc' => '5111111111111111', 'expire' => '01/20' ));
初始循环交易(常规、P2P、信用)
对于常规循环使用
- initRecurrent
对于 P2P 循环使用
- initRecurrentCredit
对于信用循环使用
- initRecurrentP2P
对于信用循环使用
- initRecurrentA2A
这些请求中的字段相同,请阅读文档以获取详细信息。
示例
$response = $gateClient->initRecurrent(array( 'rs' => 'AAAA', 'original_init_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', 'merchant_transaction_id' => microtime(true), 'amount' => '100', 'description' => 'Test description', ));
收费循环交易
对于常规循环使用
- chargeRecurrent
对于 P2P 循环使用
- doRecurrentCredit
对于信用循环使用
- doRecurrentP2P
对于 A2A 循环使用
- doRecurrentA2A
示例
$response = $gateClient->chargeRecurrent(array( 'f_extended' => '5', 'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg', ));
响应
响应实例作为操作结果返回。
isSuccess
要检查 curl 请求是否成功,您可以使用 isSuccessful
方法;
$response->isSuccessful(); // Return bool.
getResponseContent
要获取原始响应,您可以使用 getResponseContent
。
如果请求成功,则 API 响应将被返回。如果不成功,则返回 curl_error。
$response->getResponseContent(); // Return string. $response->getParsedResponse(); // Parsed response content.
测试
如果您想运行测试,您需要安装开发依赖项
$ composer.phar install --dev
然后使用以下命令运行它们
$ vendor/bin/phpunit