2013-04-17 10 views
5

Tôi tiếp tục gặp lỗi mã thông báo không hợp lệ khi tôi gọi API CreateRecurringPaymentsProfile NVP.CreateRecurringPaymentsTính năng cấp mã lỗi 11502: Mã thông báo không hợp lệ

Hãy tìm ra chuỗi các API tôi gọi dưới đây:

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 

tôi nhận lại một mã thông báo với ACK = * Success * như phản ứng. Sau đó, tôi điều hướng đến trang web paypal bằng cách sử dụng URL [https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=token] và đăng nhập bằng tài khoản paypal và nhấp vào "Đồng ý và tiếp tục".

Sau khi thống nhất và thành công chuyển hướng đến URL chuyển hướng, tôi làm cho GetExpressCheckoutDetails gọi API với các thông số sau

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

Sau khi nhận được thành công các chi tiết đối tượng nộp như phản ứng, tôi làm cho DoExpressCheckoutPayment API gọi

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] 

Tôi hiện đang thực hiện CreateRecurringPayments Hồ sơ gọi 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 

tôi tiếp tục nhận được phản ứng sau

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 

Tôi đã cố gắng tìm kiếm một giải pháp trong nhiều diễn đàn nhưng không thể tìm ra nếu tôi đã bỏ lỡ bất kỳ thông số.

Có ai có thể giúp tôi về điều này không?

Cảm ơn trước, Rahul

+0

Tôi có vấn đề chính xác như vậy. Bạn đã tìm được giải pháp chưa? – severin

Trả lời

1

Lỗi này do Paypal trả về là mơ hồ. Lý do phổ biến nhất cho lỗi này là sự khác biệt giữa giá trị BillingDescription trong lệnh gọi SetExpressCheckout và ScheduleDEtails.Description trong lệnh gọi CreateRecurringprofile. Hãy chắc chắn rằng hai là chính xác giống nhau cho điều này để làm việc.

Ví dụ:

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); 
... 
}