【发布时间】:2020-09-24 22:38:28
【问题描述】:
我正在尝试通过 Authorize.Net 更新现有配置文件的到期日期。我能够检索配置文件信息,但是当我使用 updateCustomerPaymentProfileRequest xml 调用 api 时,我得到:
E00003 'AnetApi/xml/v1/schema/AnetApiSchema.xsd:number' 元素无效 - 根据其数据类型 'String' 值 XX 无效 - 实际长度小于 MinLength 值。
这是xml:
<updateCustomerPaymentProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<name xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">bob123</name>
<transactionKey xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">somesecretehere</transactionKey>
</merchantAuthentication>
<refId xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">id1</refId>
<customerProfileId xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">12345</customerProfileId>
<paymentProfile xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<billTo xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<firstName xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">Bilbo</firstName>
<lastName xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">Baggins</lastName>
<address xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">100 Main St.</address>
<city xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">Some City</city>
<state xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">ME</state>
<zip xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">12345</zip>
</billTo>
<payment xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<creditCard xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<cardNumber xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">XXXX1111</cardNumber>
<expirationDate xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">2049-04</expirationDate>
</creditCard>
</payment>
</paymentProfile>
<validationMode xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">liveMode</validationMode>
</updateCustomerPaymentProfileRequest>
【问题讨论】:
-
那个错误信息真的是
XX吗?如果没有,实际价值是多少? -
是的,这就是确切的错误信息。
-
信用卡号好像必须提供,不能截断
-
这似乎正在发生,但这是来自他们的文档:“注意:如果此请求中的某些字段未提交或以空白值提交,则原始配置文件中的值是已删除。作为防止这种情况发生的最佳做法,请调用 getCustomerPaymentProfileRequest 以接收所有当前信息,包括屏蔽的付款信息。更改您希望更新的一个或多个字段,然后在调用中重复使用您收到的所有字段以及更新更新CustomerPaymentProfileRequest。”
-
您是否尝试过省略卡号字段?
标签: authorize.net