0

我正在構建電子商務網站(使用node.js),並使用經典的PayPal API。 我需要用戶輸入他們的電話號碼,以便我們可以在他們的訂單出現問題時與他們聯繫。SetExpressCheckout和GetExpressCheckoutDetails均缺少電話號碼

因此,我在網站設置下更改了我的教皇帳戶上的設置,以便在結帳時需要電話號碼。 撥打SetExpressCheckout後,客戶輸入自己的信息,包括電話號碼,我會得到成功狀態的回覆以及其他訂單信息。

但是,電話號碼從響應中丟失。根據文檔,它假設在PHONENUM字段中。我試圖撥打GetExpressCheckoutDetails也爲了得到電話,但它仍然失蹤。

這裏的請求調用:

var post_data = { 
    USER: paypalUser, 
    PWD: paypalPassword, 
    SIGNATURE: paypalSignature, 
    METHOD: "SetExpressCheckout", 
    VERSION: 93, 
    SOLUTIONTYPE: "Sole", 
    L_PAYMENTREQUEST_0_NAME0 : info.name, 
    L_PAYMENTREQUEST_0_DESC0 : info.description, 
    L_PAYMENTREQUEST_0_AMT0 : info.price, 
    L_PAYMENTREQUEST_0_QTY0 : 1, 
    PAYMENTREQUEST_0_PAYMENTACTION: "SALE", 
    PAYMENTREQUEST_0_AMT: subtotal+shippingCost, 
    PAYMENTREQUEST_0_ITEMAMT: subtotal, 
    PAYMENTREQUEST_0_CURRENCYCODE: "ILS", 
    PAYMENTREQUEST_0_SHIPPINGAMT:shippingCost, 
    LOCALECODE:"he_IL", 
    RETURNURL: "http://localhost:3000" + successUrl, 
    CANCELURL: "http://localhost:3000" + cancelUrl, 
    LOGOIMG:"localhost:3000/images/logo.svg" 
} 
var post_data_encoded = querystring.encode(post_data); 
var httpRequest = https.request(options,function(response){ 
    response.on('data', function (chunk) { 
     var resData = querystring.parse(chunk.toString()); 
     callback(resData); 
    }); 
}); 

,這是響應我得到:

{"TOKEN":"EC-1UV4673091640241G", 
"BILLINGAGREEMENTACCEPTEDSTATUS":"0", 
"CHECKOUTSTATUS":"PaymentActionNotInitiated", 
"TIMESTAMP":"2015-02-09T21:27:23Z", 
"CORRELATIONID":"c1d72f302ac78", 
"ACK":"Success", 
"VERSION":"93", 
"BUILD":"15177679", 
"EMAIL":"******@gmail.com", 
"PAYERID":"YW4B5FG9HBEXU", 
"PAYERSTATUS":"unverified", 
"FIRSTNAME":"Dany", 
"LASTNAME":"Shovevani", 
"COUNTRYCODE":"US", 
"SHIPTONAME":"Dany Shovevani", 
"SHIPTOSTREET":"baba", 
"SHIPTOCITY":"New York", 
"SHIPTOSTATE":"NY", 
"SHIPTOZIP":"10001", 
"SHIPTOCOUNTRYCODE":"US", 
"SHIPTOCOUNTRYNAME":"United States", 
"ADDRESSSTATUS":"Confirmed", 
"CURRENCYCODE":"ILS", 
"AMT":"225.00", 
"ITEMAMT":"200.00", 
"SHIPPINGAMT":"25.00", 
"HANDLINGAMT":"0.00", 
"TAXAMT":"0.00", 
"INSURANCEAMT":"0.00", 
"SHIPDISCAMT":"0.00", 
"L_NAME0":"חלוק", 
"L_QTY0":"1", 
"L_TAXAMT0":"0.00", 
"L_AMT0":"200.00", 
"L_DESC0":"חלוק רגיל גדול.", 
"L_ITEMWEIGHTVALUE0":" 0.00000", 
"L_ITEMLENGTHVALUE0":" 0.00000", 
"L_ITEMWIDTHVALUE0":" 0.00000", 
"L_ITEMHEIGHTVALUE0":" 0.00000", 
"PAYMENTREQUEST_0_CURRENCYCODE":"ILS", 
"PAYMENTREQUEST_0_AMT":"482.50", 
"PAYMENTREQUEST_0_ITEMAMT":"457.50", 
"PAYMENTREQUEST_0_SHIPPINGAMT":"25.00", 
"PAYMENTREQUEST_0_HANDLINGAMT":"0.00", 
"PAYMENTREQUEST_0_TAXAMT":"0.00", 
"PAYMENTREQUEST_0_INSURANCEAMT":"0.00", 
"PAYMENTREQUEST_0_SHIPDISCAMT":"0.00", 
"PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED":"false", 
"PAYMENTREQUEST_0_SHIPTONAME":"Dany Shovevani", 
"PAYMENTREQUEST_0_SHIPTOSTREET":"baba", 
"PAYMENTREQUEST_0_SHIPTOCITY":"New York", 
"PAYMENTREQUEST_0_SHIPTOSTATE":"NY", 
"PAYMENTREQUEST_0_SHIPTOZIP":"10001", 
"PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE":"US", 
"PAYMENTREQUEST_0_SHIPTOCOUNTRYNAME":"United States", 
"PAYMENTREQUEST_0_ADDRESSSTATUS":"Confirmed", 
"L_PAYMENTREQUEST_0_NAME0":"חלוק", 
"L_PAYMENTREQUEST_0_QTY0":"1", 
"L_PAYMENTREQUEST_0_TAXAMT0":"0.00", 
"L_PAYMENTREQUEST_0_AMT0":"200.00", 
"L_PAYMENTREQUEST_0_DESC0":"חלוק רגיל גדול.", 
"L_PAYMENTREQUEST_0_ITEMWEIGHTVALUE0":" 0.00000", 
"L_PAYMENTREQUEST_0_ITEMLENGTHVALUE0":" 0.00000", 
"L_PAYMENTREQUEST_0_ITEMWIDTHVALUE0":" 0.00000", 
"L_PAYMENTREQUEST_0_ITEMHEIGHTVALUE0":" 0.00000", 
"PAYMENTREQUESTINFO_0_ERRORCODE":"0"} 

我缺少的東西還是有才能拿到電話號碼的附加步驟是什麼?

回答

1

它看起來像「要求電話號碼」設置沒有正確啓用。 我已經爲您的沙盒帳戶重新啓用了它。你可以再試一次。

另外,如果你想獲得船舶PHONENUMBER你可以使用PAYMENTREQUEST_n_SHIPTOPHONENUM。(您需要包括REQCONFIRMSHIPPING=1使用this

+0

謝謝你,現在PHONENUM在響應中顯示出來。 – amramaz 2015-02-12 11:52:59