2011-06-16 80 views
1

我正在遵循Paypal的API規範在我的網站上進行PayPal整合。我在沙箱中測試它,併發送SetExpressCheckout要求這樣的後:Paypal結帳Express空車問題

CURRENCYCODE=EUR 
&RETURNURL=http%3A%2F%2Fwww.xxxxxxxx 
&CANCELURL=http%3A%2F%2Fwww.xxxxxxxx 
&PAYMENTACTION=Sale 
&L_PAYMENTREQUEST_0_NAME0=T-shirt+ring-spun+attillata%3B+taglia+L%3B+colore+Navy 
&L_PAYMENTREQUEST_0_NUMBER0=0LLR7IQ-B0SIE+%28Product+%230LLR7IQ-B0SIE%29 
&L_PAYMENTREQUEST_0_DESC0=160+g%2Fm%C2%B2%2C+100+%25+cotone+ring-spun%2C+pre-ristretto%2C+simple+jersey%2C+scollatura+arrotondata%2C+maniche+corte%2C+impunture+sulla+scollatura%2C+sul+bordo+delle+maniche+e+sulla+base%2C+cuciture+laterali. 
&L_PAYMENTREQUEST_0_AMT0=1.90 
&L_PAYMENTREQUEST_0_QTY0=1 
&L_PAYMENTREQUEST_0_NAME1=T-shirt+ring-spun+attillata%3B+taglia+M%3B+colore+Dark+Heather 
&L_PAYMENTREQUEST_0_NUMBER1=0LLR7IQ-2KEI1+%28Product+%230LLR7IQ-2KEI1%29 
&L_PAYMENTREQUEST_0_DESC1=160+g%2Fm%C2%B2%2C+100+%25+cotone+ring-spun%2C+pre-ristretto%2C+simple+jersey%2C+scollatura+arrotondata%2C+maniche+corte%2C+impunture+sulla+scollatura%2C+sul+bordo+delle+maniche+e+sulla+base%2C+cuciture+laterali. 
&L_PAYMENTREQUEST_0_AMT1=1.90 
&L_PAYMENTREQUEST_0_QTY1=1 
&L_PAYMENTREQUEST_0_NAME2=T-shirt+ring-spun+attillata%3B+taglia+S%3B+colore+White 
&L_PAYMENTREQUEST_0_NUMBER2=0LLR7IQ-TFOHI+%28Product+%230LLR7IQ-TFOHI%29 
&L_PAYMENTREQUEST_0_DESC2=160+g%2Fm%C2%B2%2C+100+%25+cotone+ring-spun%2C+pre-ristretto%2C+simple+jersey%2C+scollatura+arrotondata%2C+maniche+corte%2C+impunture+sulla+scollatura%2C+sul+bordo+delle+maniche+e+sulla+base%2C+cuciture+laterali. 
&L_PAYMENTREQUEST_0_AMT2=1.59 
&L_PAYMENTREQUEST_0_QTY2=1 
&ITEMAMT=5.39 
&TAXAMT=1.08 
&SHIPPINGAMT=0.00 
&AMT=6.47 
&ALLOWNOTE=1 
&USER=XXXXXXXX 
&PWD=XXXXXXXX 
&SIGNATURE=XXXXXXXX 
&METHOD=SetExpressCheckout 
&VERSION=53.0 

我的用戶轉發給here,這是令牌寶給我回響應我的第一個請求。

問題是,儘管所有的價格設置成功的請求,我有一個空的貝寶審查頁面,絕對沒有價格。

我錯過了什麼?

回答

2

攻擊可憐的API文檔!貝寶確實努力嘗試,但他們不足。我打過這個API並贏了! :)

變化你已經擁有這些價值觀......讓我知道,如果它需要照顧的問題

&PAYMENTREQUEST_0_PAYMENTACTION=Sale [[ <--- payment action ]] 
&PAYMENTREQUEST_0_CURRENCYCODE=EUR [[<-- currency code]] 
&PAYMENTREQUEST_0_ITEMAMT=5.39 [[<---- subtotal here]] 
&PAYMENTREQUEST_0_TAXAMT=1.08 [[<---- tax here]] 
&PAYMENTREQUEST_0_SHIPPINGAMT=0.00 [[<---- shipping here]] 
&PAYMENTREQUEST_0_AMT=6.47 [[<---- grand total here]] 
&PAYMENTREQUEST_0_ALLOWNOTE=1 
+0

感謝,我發現這些信息,並相應地改變了我的請求,但現在的問題是,貝寶不借記買方的賬戶我的交易(和不貸他們對我的賣家帳戶)在生產中。儘管調用了DoExpressCheckoutPayment(具有與prevoius SetExpressCheckout API調用中相同的請求數據),但返回成功... 我的事務流是否正確(如下所示)? 1)發送POST SetExpressCheckout請求(包括所有訂單數據,總計等)並解析響應; 2)如果響應成功,將用戶的瀏覽器重定向到paypal的網站(webscr); – 2011-06-17 10:19:20

+0

3)當paypal將用戶重定向到我在setexpresscheckout中指定的回調url時,我調用GetExpressCheckoutDetails,然後對PayPal執行POST DoExpressCheckoutPayment請求,如果成功,則向用戶說OK。 – 2011-06-17 10:25:21

+1

是的,那是正確的流程。您是否在返回值的「ACK」鍵中獲得「成功」?如果是這樣,那麼一切都應該是好的。但請確保您還沒有使用沙盒API和憑據! – 2011-06-17 14:04:34

0

除了這裏的其他意見,一定要使用無證「useraction 「當您重定向到PayPal選項正從SetExpressCheckout響應後:

CMD = _express結賬& useraction =提交 &令牌=的-返回令牌

(以下不再作品的鏈接)

Here's the PayPal forum reference to this parameter

+1

「一定要用」和「無證」在同一句話中嚇我 – Flexo 2012-01-30 23:17:06

+0

論壇鏈接不好 – Yarin 2013-09-23 13:56:34

1

這一個竊聽我還有幾天的。

從developer.paypal.com使用Java SDK(截至2008年),我終於跨過SDK的新版本(2011年11月)在https://www.x.com/developers/paypal/documentation-tools/sdk#3

來使用新的SDK(尤其是更新paypal_base.jar)但是還沒有解決我的問題。

您必須弄清楚正確的API版本字符串以使其運行。使用版本「51.0」(如我的一些示例代碼),調用失敗。與版本「78.0」一樣,新的SDK完成了這項工作。

Cheerio ....