php Authorize.net API集成“对支付配置文件收费时,命名空间中的子元素”transactionSettings“无效”

yuvru6vn  于 2022-12-26  发布在  PHP
关注(0)|答案(1)|浏览(110)

我集成了authorize.net并处理信用卡交易。我有处理直接信用卡支付的费用:

$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" => array (
                    "setting" => array (
                        array(
                            "settingName" => "duplicateWindow",
                            "settingValue" => "5"
                        )
                    )
                )

对于根据付款配置文件收费,我收到以下错误:

(
                        [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'.
                    )

这是我发到www.example.com的帖子authorize.net

{
"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"
            }]
        }
    }
   }
 }

当我删除交易设置的一部分,我的职位,收费通过罚款。有人知道这个设置需要放置在哪里?他们的文档明确指出,在这个位置,我放置,但我不知道为什么它不会通过。
编辑:我尝试了下面提到的方法,收到了同样的错误:

{
"createTransactionRequest": {
    "merchantAuthentication": {
        "name": "#####",
        "transactionKey": "#######dfsd"
    },
    "refId": "62",
    "transactionRequest": {
        "transactionType": "authCaptureTransaction",
        "amount": "25.00",
        "profile": {
            "customerProfileId": "502810352",
            "paymentProfile": {
                "paymentProfileId": "511258154"
            }
        },
        "customer": {
            "type": "business",
            "id": 5
        },
        "processingOptions": {
            "isSubsequentAuth": "false"
        }
    },
    "transactionSettings": {
        "setting": [{
            "settingName": "duplicateWindow",
            "settingValue": "5"
        }]
    }
}
}

编辑:我回答了这个问题,显然我在请求中有一个额外的设置,不需要在场

svmlkihl

svmlkihl1#

好的,我为其他面临同样问题的人解决了这个问题。这个问题似乎是

"processingOptions": {
        "isSubsequentAuth": "false"
    }

请求中的设置。我猜它在存在事务设置的情况下无效。
我最终通过了以下请求,并且运行良好

{
"createTransactionRequest": {
    "merchantAuthentication": {
        "name": "#####",
        "transactionKey": "######"
    },
    "refId": "62",
    "transactionRequest": {
        "transactionType": "authCaptureTransaction",
        "amount": "25.00",
        "profile": {
            "customerProfileId": "sdfsdf",
            "paymentProfile": {
                "paymentProfileId": "51sdfsdf1258154"
            }
        },
        "customer": {
            "type": "business",
            "id": 5
        },
        "transactionSettings": {
            "setting": [{
                "settingName": "duplicateWindow",
                "settingValue": "5"
            }]
        }
    }
}
 }

相关问题