2013-03-25 55 views
2

我正在与贝宝使用快速结帐得到一个结算协议ID。当我这样做 “SetExpressCheckout”贝宝与快速结帐得到帐单协议ID

https://www.x.com/developers/paypal/documentation-tools/how-authorize-and-run-reference-transaction-express-checkout

在第一步骤:

我按照本指南 以下是代码

public string SetExpressCheckout(string Amount) 
    { 
     string returnURL = "http://localhost:50325/ReviewOrder.aspx" + "?amount=" + Amount + "&PAYMENTREQUEST_0_CURRENCYCODE=USD"; 
     string cancelURL = returnURL.Replace("ReviewOrder", "ExpCheckOut"); 
     string strCredentials = "USER=" + strUsername + "&PWD=" + strPassword + "&SIGNATURE=" + strSignature; 
     string strNVP = strCredentials; 
     strNVP += "&PAYMENTREQUEST_0_PAYMENTACTION=AUTHORIZATION&&PAYMENTREQUEST_0_AMT=25" + "&L_BILLINGTYPE0=MerchantInitiatedBilling" + "&RETURNURL=" + returnURL; 
     strNVP += "&CANCELURL=" + cancelURL; 
     strNVP += "&METHOD=SetExpressCheckout&VERSION=" + strAPIVersion + "&DESC=test EC payment" +"&NOSHIPPING=0" ; 
     //Create web request and web response objects, make sure you using the correct server (sandbox/live) 
     HttpWebRequest wrWebRequest = (HttpWebRequest)WebRequest.Create(strNVPSandboxServer); 
     //Set WebRequest Properties 
     wrWebRequest.Method = "POST"; 
     // write the form values into the request message 
     StreamWriter requestWriter = new StreamWriter(wrWebRequest.GetRequestStream()); 
     requestWriter.Write(strNVP); 
     requestWriter.Close(); 
     // Get the response. 
     HttpWebResponse hwrWebResponse = (HttpWebResponse)wrWebRequest.GetResponse(); 
     StreamReader responseReader = new StreamReader(wrWebRequest.GetResponse().GetResponseStream()); 
     // and read the response 
     string responseData = responseReader.ReadToEnd(); 
     responseReader.Close(); 
     return responseData; 
    } 

的响应:

TOKEN=EC-09082530FY878870B& 
    TIMESTAMP=2013-03-25T00:45:56Z& 
    CORRELATIONID=3d33037174d55& 
    ACK=SuccessWithWarning& 
    VERSION=86& 
    BUILD=5479129& 
    L_ERRORCODE0=11452& 
    L_SHORTMESSAGE0=Merchant not enabled for reference transactions& 
    L_LONGMESSAGE0=Merchant not enabled for reference transactions& 
    L_SEVERITYCODE0=Warning 

如何获得一个Bi llingAgreeentd在第3步:

守则第3步是:

public string GetBillingAgreementID() 
    { 
     string returnURL = "http://localhost:50325/ReviewOrder.aspx" + "?amount=" + Amount + "¤cy=USD"; 
     string cancelURL = returnURL.Replace("ReviewOrder", "ExpCheckOut"); 
     string strCredentials = "USER=" + strUsername + "&PWD=" + strPassword + "&SIGNATURE=" + strSignature; 
     string strNVP = strCredentials; 
     strNVP += "&RETURNURL=" + returnURL; 
     strNVP += "&CANCELURL=" + cancelURL; 
     strNVP += "&METHOD=CreateBillingAgreement&VERSION=" + strAPIVersion + "&TOKEN=" + Session["Token"]; 
     //Create web request and web response objects, make sure you using the correct server (sandbox/live) 
     HttpWebRequest wrWebRequest = (HttpWebRequest)WebRequest.Create(strNVPSandboxServer); 
     //Set WebRequest Properties 
     wrWebRequest.Method = "POST"; 
     // write the form values into the request message 
     StreamWriter requestWriter = new StreamWriter(wrWebRequest.GetRequestStream()); 
     requestWriter.Write(strNVP); 
     requestWriter.Close(); 
     // Get the response. 
     HttpWebResponse hwrWebResponse = (HttpWebResponse)wrWebRequest.GetResponse(); 
     StreamReader responseReader = new StreamReader(wrWebRequest.GetResponse().GetResponseStream()); 
     // and read the response 
     string responseData = responseReader.ReadToEnd(); 
     responseReader.Close(); 
     return responseData; 
    } 

的回应是:

TIMESTAMP=2013-03-25T00:51:34Z& 
CORRELATIONID=854e6beed1e82& 
ACK=Failure& 
VERSION=86& 
BUILD=5479129& 
L_ERRORCODE0=11455& 
L_SHORTMESSAGE0=Buyer did not accept billing agreement& 
L_LONGMESSAGE0=Buyer did not accept billing agreement& 
L_SEVERITYCODE0=Error 

如何获得BillingAgreemntId? 这是因为“L_SHORTMESSAGE0 =商家未启用参考交易”此消息从“SetExpressCheckout”我无法获得BillingAgreementID吗?

请帮我解决这个问题。谢谢。

回答

1

您需要联系PayPal并要求在帐户中启用此功能(如果这是针对真实帐户的)。如果您需要在沙盒上启用它,则需要联系PayPal MTS,并在沙箱帐户上启用此功能。