我正在试图弄清楚如何使用API向第三方UPS托运人帐号收费,当我尝试下面列出的内容时它不起作用!它在错误消息中说“每个货件需要一个计费选项”。任何人都知道什么是错的?
$ShipmentConfirmRequestXML->push('PaymentInformation');
$ShipmentConfirmRequestXML->push('Prepaid');
$ShipmentConfirmRequestXML->push('BillThirdParty');
$ShipmentConfirmRequestXML->element('AccountNumber', 'XXXXX');
$ShipmentConfirmRequestXML->pop(); // end BillShipper
$ShipmentConfirmRequestXML->pop(); // end Prepaid
$ShipmentConfirmRequestXML->pop(); // end PaymentInformation
答案 0 :(得分:2)
第三方结算不在预付费容器内。根据UPS API开发人员指南,最终结果XML看起来应该是这样的:
<PaymentInformation>
<BillThirdParty>
<BillThirdPartyShipper>
<AccountNumber>ABC123</AccountNumber>
<ThirdParty>
<Address>
<PostalCode>12345-6789</PostalCode>
<CountryCode>US</CountryCode>
</Address>
</ThirdParty>
</BillThirdPartyShipper>
</BillThirdParty>
</PaymentInformation>
出于某种原因,UPS API将始终在测试模式下以第三方计费失败,从而出现Transient 120001错误,“XML Shipping System不可用,请稍后再试”。关闭测试模式可以解决问题 - 在您确认代码正常工作后,只需将货件取消。
此外,如果您为第三方结算输入了错误的帐户代码,则会返回相同的120001错误。