2013-04-17 68 views
5

當我調用CreateRecurringPaymentsProfile NVP API時,我總是收到無效令牌錯誤。CreateRecurringPaymentsProfile給出錯誤11502:無效令牌

請找我的API的順序調用如下:

SetExpressCheckout

METHOD = SetExpressCheckout 
VERSION = 98 
PWD = <pwd> 
USER = <user> 
SIGNATURE = <signature> 
ReturnUrl = http://google.com 
CANCELURL = http://google.com 
PAYMENTREQUEST_0_PAYMENTACTION = Authorization 
PAYMENTREQUEST_0_AMT = 100.00 
PAYMENTREQUEST_0_CURRENCYCODE = USD 
L_PAYMENTREQUEST_0_NAME0 = Item1 
L_PAYMENTREQUEST_0_QTY0 = 1 
L_PAYMENTREQUEST_0_AMT0 = 100.00 
PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID = [email protected] 
LOCALECODE = US 
L_BILLINGTYPE0 = RecurringPayments 
L_BILLINGAGREEMENTDESCRIPTION0 = SameEveryTime 

我得到一個令牌ACK = * 成功 *作爲響應。然後我使用URL [https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=代幣]導航到貝寶網站,並使用PayPal帳戶登錄並點擊「同意並繼續」。

同意,併成功地重定向到重定向URL後,我讓GetExpressCheckoutDetails API調用以下參數

METHOD = GetExpressCheckoutDetails 
VERSION = 98 
PWD = <pwd> 
USER = <user> 
SIGNATURE = <signature> 
TOKEN = <token from the SetExpressCheckout response> 

成功地獲得付款人細節響應後,我讓DoExpressCheckoutPayment API致電

METHOD = DoExpressCheckoutPayment 
VERSION = 98 
PWD = <pwd> 
USER = <user> 
SIGNATURE = <signature> 
TOKEN = <token from the SetExpressCheckout response> 
PAYERID = <payer ID from the GetExpressCheckoutDetails response> 
PAYMENTREQUEST_0_AMT = 100 
PAYMENTREQUEST_0_PAYMENTACTION = Sale 
PAYMENTREQUEST_0_CURRENCYCODE = USD 
L_PAYMENTREQUEST_0_NAME0 = Item1 
L_PAYMENTREQUEST_0_QTY0 = 1 
L_PAYMENTREQUEST_0_AMT0 = 100.00 
PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID = [email protected] 

我現在將CreateRecurringPayments簡介 API調用

METHOD = CreateRecurringPaymentsProfile 
VERSION = 98 
PWD = <pwd> 
USER = <user> 
SIGNATURE = <signature> 
TOKEN = <token from the SetExpressCheckout response> 
PAYERID = <payer ID from the GetExpressCheckoutDetails response> 
DESC = SameEveryTime 
BILLINGPERIOD = Month 
BILLINGFREQUENCY = 1 
PROFILESTARTDATE = 2013-05-16T00:00:00Z 
MAXFAILEDPAYMENTS = 1 
AMT = 100.00 
CURRENCYCODE = USD 
L_PAYMENTREQUEST_0_NAME0 = Item1 
L_PAYMENTREQUEST_0_QTY0 = 1 
L_PAYMENTREQUEST_0_AMT0 = 100.00 
AUTOBILLAMT = AddToNextBilling 

我不斷收到以下響應

TIMESTAMP = 2013-04-17T05:31:24Z 
CORRELATIONID = d2c1d30c1d31 
ACK = Failure 
VERSION = 98 
BUILD = 5650305 
L_ERRORCODE0 = 11502 
L_SHORTMESSAGE0 = Invalid Token 
L_LONGMESSAGE0 = The token is invalid 
L_SEVERITYCODE0 = Error 

我試圖尋找在許多論壇上的解決方案,但無法弄清楚,如果我錯過了任何參數。

任何人都可以幫助我嗎?

由於提前, 拉胡爾

+0

我有相同的問題。你有沒有找到解決方案? – severin

回答

1

貝寶返回的這個錯誤是模糊的。此錯誤的最常見原因是SetExpressCheckout調用中的BillingDescription值與CreateRecurringprofile調用中的ScheduleDEtails.Description之間的差異。確保這兩個工作完全相同。

如:

public CreateRecurringPaymentsProfileResponseType createRecurringProfile(string tokenin){ 
     var scheduleDetails = new ScheduleDetailsType(); 
     scheduleDetails.PaymentPeriod = paymentPeriod; 
     scheduleDetails.Description = "RecurringBilling"; 
} 
public SetExpressCheckoutResponseType setExpressCheckout() 
{ 
.... 
var billingAgreement = new BillingAgreementDetailsType(); 

      billingAgreement.BillingAgreementDescription = "RecurringBilling"; 
      billingAgreement.BillingType = BillingCodeType.RECURRINGPAYMENTS; 
      billingAgreement.PaymentType = MerchantPullPaymentCodeType.ANY; 

      ecDetails.BillingAgreementDetails.Add(billingAgreement); 
... 
}