You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Authorize.net API时支付档案收费遇transactionSettings无效错误

Authorize.net API支付档案收费时transactionSettings报错问题解决

问题场景

  • 直接使用信用卡信息发起authCaptureTransaction交易时,包含transactionSettings的代码可正常运行:
$authnet_info = array(
        'createTransactionRequest' => array(
            'merchantAuthentication' => array(
                'name' => ######,
                'transactionKey' => #######
            ),
            
            'refId' => $data['reference_id'],
            'transactionRequest' => array(
                'transactionType' => 'authCaptureTransaction',
                'amount' => $data['charge_amount'],
                'payment' => array(
                    'creditCard' => array(
                        'cardNumber' => $data['cc_number'],
                        'expirationDate' => $data['cc_expiration'],
                        "cardCode" =>  $data['cvc']
                    )
                ),
                'customer' => array(
                    'type' => 'business',
                    'id' => $data['id_company']
                ),
                'billTo' => array(
                    "firstName" => $data['first_name'],
                    "lastName" => $data['last_name'],
                    'company' => $data['company_name'],
                    "address" => $data['address'],
                    "city" => $data['city'],
                    "state" => $data['state'],
                    "zip" => $data['zipcode']
                ),
                "transactionSettings" => array (
                    "setting" => array (
                        array(
                            "settingName" => "duplicateWindow",
                            "settingValue" => "5"
                        )
                    )
                )
            )
        )
    );
  • 改用客户支付档案发起交易时,保留transactionSettings会触发如下错误:
(
    [code] => E00003
    [text] => The element 'transactionRequest' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd' has invalid child element 'transactionSettings' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'. List of possible elements expected: 'subsequentAuthInformation, otherTax, shipFrom, authorizationIndicatorType' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'.
)
  • 实际发送的JSON请求内容:
{"createTransactionRequest": {
    "merchantAuthentication": {
        "name": "######",
        "transactionKey": "##########"
    },
    "refId": "62",
    "transactionRequest": {
        "transactionType": "authCaptureTransaction",
        "amount": "25.00",
        "profile": {
            "customerProfileId": "1231231",
            "paymentProfile": {
                "paymentProfileId": "34534534534"
            }
        },
        "customer": {
            "type": "business",
            "id": 5
        },
        "processingOptions": {
            "isSubsequentAuth": "false"
        },
        "transactionSettings": {
            "setting": [{
                "settingName": "duplicateWindow",
                "settingValue": "5"
            }]
        }
    }
   }
 }

问题原因

Authorize.net的API schema明确规定:当交易请求包含profile节点(即使用支付档案完成支付)时,transactionRequest下不允许存在transactionSettings子元素,仅支持subsequentAuthInformation、otherTax、shipFrom、authorizationIndicatorType这些指定元素,这就是触发E00003错误的核心原因。

解决方法

  1. 直接移除请求中的transactionSettings节点,即可正常执行交易;
  2. 若需设置duplicateWindow(重复交易检测窗口),可通过商户后台全局配置该参数,无需在API请求中单独声明;
  3. 若必须针对单交易单独配置,需确认API是否开放对应场景的参数传递路径(当前schema未支持该场景的请求级配置,优先推荐后台全局设置)。

内容的提问来源于stack exchange,提问作者Yeak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:25:17