Authorize.net,信用卡付款请求出错,因为已提交重复交易
Authorize.net, charge credit card request gives error as A duplicate transaction has been submitted
我是 Authorize.Net 的新手,我正在实施 Authorize.Net PHP SDK 来实施它。我正在尝试从信用卡中扣款,但出现以下错误:
"A duplicate transaction has been submitted"
解决方案中提到将 x_duplicate_window =(您自己选择,最多 28800 秒) 添加到您的脚本中。
所以我添加如下:
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>
<![CDATA[API_LOGIN_ID]]>
</name>
<transactionKey>
<![CDATA[API_TRANSACTION_KEY]]>
</transactionKey>
</merchantAuthentication>
<refId>
<![CDATA[ref1465541052]]>
</refId>
<transactionRequest>
<transactionType>
<![CDATA[authCaptureTransaction]]>
</transactionType>
<amount>1</amount>
<payment>
<creditCard>
<cardNumber>
<![CDATA[4111111111111111]]>
</cardNumber>
<expirationDate>
<![CDATA[1233]]>
</expirationDate>
</creditCard>
</payment>
<order>
<description>
<![CDATA[DESCRIPTION]]>
</description>
</order>
</transactionRequest>
<extraOptions><![CDATA[x_duplicate_window=0]]></extraOptions>
</createTransactionRequest>
但它抛出错误
E00003 : The element 'createTransactionRequest' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd' has invalid child element 'extraOptions' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'.
我无法在脚本中添加 x_duplicate_window。
这是防止重复交易错误的正确方法
NOTE: I'm working in sandbox environment and at LIVE mode
请帮忙。
您需要使用 <transactionSettings>
元素来添加此设置:
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>
<![CDATA[API_LOGIN_ID]]>
</name>
<transactionKey>
<![CDATA[API_TRANSACTION_KEY]]>
</transactionKey>
</merchantAuthentication>
<refId>
<![CDATA[ref1465541052]]>
</refId>
<transactionRequest>
<transactionType>
<![CDATA[authCaptureTransaction]]>
</transactionType>
<amount>1</amount>
<payment>
<creditCard>
<cardNumber>
<![CDATA[4111111111111111]]>
</cardNumber>
<expirationDate>
<![CDATA[1233]]>
</expirationDate>
</creditCard>
</payment>
<order>
<description>
<![CDATA[DESCRIPTION]]>
</description>
</order>
<transactionSettings>
<setting>
<settingName>duplicateWindow</settingName>
<settingValue>0</settingValue>
</setting>
</transactionSettings>
</transactionRequest>
</createTransactionRequest>
我是 Authorize.Net 的新手,我正在实施 Authorize.Net PHP SDK 来实施它。我正在尝试从信用卡中扣款,但出现以下错误:
"A duplicate transaction has been submitted"
解决方案中提到将 x_duplicate_window =(您自己选择,最多 28800 秒) 添加到您的脚本中。 所以我添加如下:
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>
<![CDATA[API_LOGIN_ID]]>
</name>
<transactionKey>
<![CDATA[API_TRANSACTION_KEY]]>
</transactionKey>
</merchantAuthentication>
<refId>
<![CDATA[ref1465541052]]>
</refId>
<transactionRequest>
<transactionType>
<![CDATA[authCaptureTransaction]]>
</transactionType>
<amount>1</amount>
<payment>
<creditCard>
<cardNumber>
<![CDATA[4111111111111111]]>
</cardNumber>
<expirationDate>
<![CDATA[1233]]>
</expirationDate>
</creditCard>
</payment>
<order>
<description>
<![CDATA[DESCRIPTION]]>
</description>
</order>
</transactionRequest>
<extraOptions><![CDATA[x_duplicate_window=0]]></extraOptions>
</createTransactionRequest>
但它抛出错误
E00003 : The element 'createTransactionRequest' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd' has invalid child element 'extraOptions' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'.
我无法在脚本中添加 x_duplicate_window。 这是防止重复交易错误的正确方法
NOTE: I'm working in sandbox environment and at LIVE mode
请帮忙。
您需要使用 <transactionSettings>
元素来添加此设置:
<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>
<![CDATA[API_LOGIN_ID]]>
</name>
<transactionKey>
<![CDATA[API_TRANSACTION_KEY]]>
</transactionKey>
</merchantAuthentication>
<refId>
<![CDATA[ref1465541052]]>
</refId>
<transactionRequest>
<transactionType>
<![CDATA[authCaptureTransaction]]>
</transactionType>
<amount>1</amount>
<payment>
<creditCard>
<cardNumber>
<![CDATA[4111111111111111]]>
</cardNumber>
<expirationDate>
<![CDATA[1233]]>
</expirationDate>
</creditCard>
</payment>
<order>
<description>
<![CDATA[DESCRIPTION]]>
</description>
</order>
<transactionSettings>
<setting>
<settingName>duplicateWindow</settingName>
<settingValue>0</settingValue>
</setting>
</transactionSettings>
</transactionRequest>
</createTransactionRequest>