6

CreateRecurringPaymentsProfile NVP API を呼び出すと、無効なトークン エラーが発生し続けます。

以下の 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 = rahul.katikineni@sap.com
LOCALECODE = US
L_BILLINGTYPE0 = RecurringPayments
L_BILLINGAGREEMENTDESCRIPTION0 = SameEveryTime

応答としてACK =* Success * を含むトークンが返されます。次に、URL [ https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token= token ] を使用してペイパルの Web サイトに移動し、ペイパル アカウントでログインして、[同意して続行] をクリックします。

同意してリダイレクト 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 = rahul.katikineni@sap.com

ここで、CreateRecurringPaymentsProfile 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

多くのフォーラムで解決策を探してみましたが、パラメーターを見逃していないかどうかわかりませんでした。

誰でもこれについて私を助けることができますか?

前もってありがとう、ラフル

4

1 に答える 1

1

Paypal から返されるこのエラーはあいまいです。このエラーの最も一般的な理由は、SetExpressCheckout 呼び出しの BillingDescription 値と CreateRecurringprofile 呼び出しの ScheduleDEtails.Description の不一致です。これが機能するためには、これら 2 つがまったく同じであることを確認してください。

例えば:

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);
 ...
 }
于 2014-12-03T18:11:59.333 に答える