feat(api): 添加交易类型常量接口并优化API请求参数
将交易类型字符串统一为常量接口,避免硬编码错误 优化API请求参数,明确处理布尔值和添加国家代码
This commit is contained in:
parent
4727881e05
commit
5d449721ef
|
|
@ -91,7 +91,8 @@ class Yoone_Moneris_API implements Yoone_Moneris_API_Interface {
|
|||
$num = isset($card['number']) ? preg_replace('/\D+/', '', (string) $card['number']) : '';
|
||||
$masked = $num ? str_repeat('*', max(strlen($num) - 4, 0)) . substr($num, -4) : '';
|
||||
error_log('【Yoone Moneris API】tokenize_card 请求:last4=' . ($num ? substr($num, -4) : '') . ' len=' . strlen($num) . ' expdate=' . $payload['expdate'] . ' cryptType=' . $payload['cryptType']);
|
||||
$res = $this->send_moneris_xml( 'res_add_cc', $payload );
|
||||
// 使用集中加载的交易类型常量接口
|
||||
$res = $this->send_moneris_xml( Yoone_Moneris_Txn_Types::RES_ADD_CC, $payload );
|
||||
error_log('$res11111111'. print_r($res, true));
|
||||
if ( $res['ok'] ) {
|
||||
return array(
|
||||
|
|
@ -126,7 +127,8 @@ class Yoone_Moneris_API implements Yoone_Moneris_API_Interface {
|
|||
require_once __DIR__ . '/utils/orderid.php';
|
||||
}
|
||||
$unique_order_id = yoone_moneris_unique_order_id( $order_id );
|
||||
$type = $capture ? 'res_purchase_cc' : 'res_preauth_cc';
|
||||
// 使用集中加载的交易类型常量接口
|
||||
$type = $capture ? Yoone_Moneris_Txn_Types::RES_PURCHASE_CC : Yoone_Moneris_Txn_Types::RES_PREAUTH_CC;
|
||||
$payload = array(
|
||||
'dataKey' => (string) $token,
|
||||
'orderId' => (string) $unique_order_id,
|
||||
|
|
@ -185,7 +187,8 @@ class Yoone_Moneris_API implements Yoone_Moneris_API_Interface {
|
|||
'amount' => $this->format_amount( $amount ),
|
||||
'cryptType' => $this->crypt_type,
|
||||
);
|
||||
$res = $this->send_moneris_xml( 'refund', $payload );
|
||||
// 使用集中加载的交易类型常量接口
|
||||
$res = $this->send_moneris_xml( Yoone_Moneris_Txn_Types::REFUND, $payload );
|
||||
if ( $res['ok'] ) {
|
||||
return array( 'success' => true );
|
||||
}
|
||||
|
|
@ -216,7 +219,12 @@ class Yoone_Moneris_API implements Yoone_Moneris_API_Interface {
|
|||
$body = array(
|
||||
'storeId' => $this->store_id,
|
||||
'apiToken' => $this->api_token,
|
||||
'statusCheck'=> (bool) $this->status_check,
|
||||
// 明确发送字符串 true/false,避免 boolean false 被序列化为空字符串
|
||||
'statusCheck' => $this->status_check ? 'true' : 'false',
|
||||
// 添加处理国家代码(CA/US),与端点匹配
|
||||
'processingCountryCode' => strtoupper($this->country_code),
|
||||
// 在沙箱环境显式声明 test=true(与官方示例一致)
|
||||
'test' => $this->is_test_mode() ? 'true' : 'false',
|
||||
);
|
||||
|
||||
// 风险查询特殊结构(暂不支持;如需支持可扩展)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
if (! defined('ABSPATH')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易类型常量枚举(避免字符串写错)
|
||||
* 将常用的交易类型统一到接口常量中,供 API 层调用。
|
||||
*/
|
||||
interface Yoone_Moneris_Txn_Types
|
||||
{
|
||||
// Vault(存储卡片)相关
|
||||
public const RES_ADD_CC = 'res_add_cc';
|
||||
public const RES_UPDATE_CC = 'res_update_cc';
|
||||
public const RES_DELETE = 'res_delete';
|
||||
|
||||
// Vault 令牌交易
|
||||
public const RES_PURCHASE_CC = 'res_purchase_cc';
|
||||
public const RES_PREAUTH_CC = 'res_preauth_cc';
|
||||
|
||||
// 通用交易
|
||||
public const REFUND = 'refund';
|
||||
}
|
||||
|
|
@ -40,6 +40,8 @@ function yoone_moneris_payments_init() {
|
|||
// __DIR__ 是当前文件所在目录,拼接 includes 路径以找到类定义文件。
|
||||
require_once __DIR__ . '/includes/constants/moneris.php';
|
||||
require_once __DIR__ . '/includes/interfaces/class-yoone-moneris-api-interface.php';
|
||||
// 加载交易类型常量接口,统一交易类型字符串,避免在使用处多次 require
|
||||
require_once __DIR__ . '/includes/interfaces/class-yoone-moneris-txn-types.php';
|
||||
require_once __DIR__ . '/includes/utils/logger.php';
|
||||
require_once __DIR__ . '/includes/class-yoone-moneris-api.php';
|
||||
require_once __DIR__ . '/includes/class-yoone-gateway-moneris.php';
|
||||
|
|
|
|||
Loading…
Reference in New Issue