我有一个用VB.NET编写的网站,用于支付PayPal。这对于成功付款都很好,但我需要能够模拟失败的交易,待处理交易等情景。
我已阅读第47页开始的documentation。我在沙盒中创建的商业帐户中启用了否定测试,但我没有得到理想的结果。
为了模拟错误,如文档中所指定的,我将错误代码传递给Token,然后将其用于DoExpressCheckoutPayment的请求 - 下面的代码 - 但不是这样会引发错误10417,响应显示无效令牌:
Dim oldToken As String
With RequestDetails
oldToken = .Token
.Token = "10417"
End With
Dim request As New DoExpressCheckoutPaymentRequestType
request.DoExpressCheckoutPaymentRequestDetails = RequestDetails
Dim response As DoExpressCheckoutPaymentResponseType
response = DirectCast(caller.Call("DoExpressCheckoutPayment", request),
DoExpressCheckoutPaymentResponseType)
问题:
我在上面的代码中做错了什么,以至于我无法触发正确的错误?
如何模拟状态为待处理,已处理,失败等的响应?
答案 0 :(得分:0)
大约一周前我正在测试这个问题并且收到同样的问题,现在,我不再收到错误:
METHOD=DoExpressCheckoutPayment
VERSION=82
token=10755
PayerID=GNT5WLV6WKLYW
PAYMENTACTION=Sale
AMT=456
PAYMENTREQUEST_0_AMT=458
PAYMENTREQUEST_0_ITEMAMT=458.00
PAYMENTREQUEST_0_SHIPPINGAMT=20.00
PAYMENTREQUEST_0_TAXAMT=46.20
PAYMENTREQUEST_0_CURRENCYCODE=USD
PAYMENTREQUEST_0_DESC=test EC payment
L_PAYMENTREQUEST_0_NAME0=Books
L_PAYMENTREQUEST_0_AMT0=154.00
L_PAYMENTREQUEST_0_NUMBER0=ABC123
L_PAYMENTREQUEST_0_QTY0=2
L_PAYMENTREQUEST_0_NAME1=CDs
L_PAYMENTREQUEST_0_AMT1=50.00
L_PAYMENTREQUEST_0_NUMBER1=BY-Z4736
L_PAYMENTREQUEST_0_QTY1=3
TIMESTAMP=2011-09-27T20:39:57Z
CORRELATIONID=13126abeb4615
ACK=Failure
VERSION=82
BUILD=2133933
L_ERRORCODE0=10755
L_SHORTMESSAGE0=Unsupported Currency.
L_LONGMESSAGE0=Currency is not supported
L_SEVERITYCODE0=Error
我确实在x.com上找到了article来处理这个问题。