使用Sandbox和VB.NET对PayPal进行负面测试 - 如何模拟不同的场景?

时间:2011-05-19 09:10:34

标签: vb.net testing paypal sandbox

我有一个用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)

问题:

  1. 我在上面的代码中做错了什么,以至于我无法触发正确的错误?

  2. 如何模拟状态为待处理,已处理,失败等的响应?

1 个答案:

答案 0 :(得分:0)

大约一周前我正在测试这个问题并且收到同样的问题,现在,我不再收到错误:

API请求:

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 

API响应:

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来处理这个问题。