我使用了DoExpressCheckoutPayment方法,该方法成功进行了。但是,在调用DoCapture方法时,它返回了10004错误,表示事务ID无效。这在我正在使用的系统中一直有效,但最近它一直在DoCapture方法中收到类似PayPal返回的错误(错误包括内部错误,交易因参数无效而被拒绝) [无效的交易ID] )。数据的发送方式如下:
var SendValues = new Dictionary<string, object>();
SendValues.Add("METHOD", "DoCapture");
SendValues.Add("USER", userName);
SendValues.Add("PWD", password);
SendValues.Add("SIGNATURE", signature);
SendValues.Add("VERSION", "62.0");
SendValues.Add("AUTHORIZATIONID", authIdFromDoExpressCheckoutPayment);
SendValues.Add("AMT", total);
SendValues.Add("COMPLETETYPE", "Complete");
SendValues.Add("CURRENCYCODE", "JPY");
SendValues.Add("INVNUM", orderNo);
这是Paypal DoCapture的回复:
Date:2018/12/14 11:30:39
METHOD:DoCapture
USER:[redacted]
PWD:[redacted]
SIGNATURE:[redacted]
VERSION:62.0
AUTHORIZATIONID:[redacted]
AMT:4935
COMPLETETYPE:Complete
CURRENCYCODE:JPY
INVNUM:[redacted]
authorizationid:[redacted]
timestamp:2018-12-14T02:30:38Z
correlationid:[redacted]
ack:Failure
version:62.0
build:000000
l_errorcode0:10004
l_shortmessage0:Transaction refused because of an invalid argument. See additional error messages for details.
l_longmessage0:The transaction id is not valid
l_severitycode0:Error
我已经用尽了Internet上与Paypal API相关的主题,但是这些主题都没有给我答案。一些网站/线程说这是由于时区问题或货币(尤其是JPY)或Paypal服务器/超时等问题引起的。我当前的流程有效,但有时会收到错误,并且本月变得很常见。
你们中有类似经历的人吗?如何解决?谢谢!