2014-03-06 40 views
0

我目前在我的網站上的燈箱中集成了貝寶自適應付款(快速結賬)。一切都很好 - >用戶可以支付,但只要有人支付的項目,使用快速結賬,這是響應:php - 貝寶訂單總計丟失

API響應:

TIMESTAMP = 2014-03-06T20:10:30Z 
CORRELATIONID = 505b77f3bea1 
ACK = Failure 
VERSION = 97.0 
BUILD = 9917844 
L_ERRORCODE0 = 10400 
L_ERRORCODE1 = 10406 
L_SHORTMESSAGE0 = Transaction refused because of an invalid argument. See additional error messages for details. 
L_SHORTMESSAGE1 = Transaction refused because of an invalid argument. See additional error messages for details. 
L_LONGMESSAGE0 = Order total is missing. 
L_LONGMESSAGE1 = The PayerID value is invalid. 
L_SEVERITYCODE0 = Error 
L_SEVERITYCODE1 = Error 

這是腳本:

$nvps = array(); 
$nvps["VERSION"] = "97.0"; 

// Single-item purchase 
$nvps["METHOD"] = "SetExpressCheckout"; 
$nvps["RETURNURL"] = "http://www.zerogravityprogramming.com/PayPal/Articles/DigitalGoodsExpressCheckout/App/success.php"; // server 
$nvps["CANCELURL"] = "http://www.zerogravityprogramming.com/PayPal/Articles/DigitalGoodsExpressCheckout/App/fail.html"; // server 

$nvps["PAYMENTREQUEST_0_PAYMENTACTION"] = "Sale"; 
$nvps["PAYMENTREQUEST_0_NOTIFYURL"] = "http://www.yourdomain.com/PayPal/YourPayPalListener.php"; 
$nvps["PAYMENTREQUEST_0_AMT"] = "$Price"; 
$nvps["PAYMENTREQUEST_0_CURRENCYCODE"] = "USD"; 
$nvps["PAYMENTREQUEST_0_ITEMAMT"] = "$Price"; 
$nvps["L_PAYMENTREQUEST_0_NAME0"] = "$Desc"; 
$nvps["L_PAYMENTREQUEST_0_NUMBER0"] = "$Item"; 
$nvps["L_PAYMENTREQUEST_0_AMT0"] = "$Price"; 
$nvps["L_PAYMENTREQUEST_0_QTY0"] = "1"; 
$nvps["L_PAYMENTREQUEST_0_ITEMCATEGORY0"] = "Digital"; // specific to Digital Goods 

// Since it's a digital good (and not physical), we don't need a shipping address. 
$nvps["REQCONFIRMSHIPPING"] = "0"; 
$nvps["NOSHIPPING"] = "1"; 

$Price,$Desc$Item變量,都有一個值 - 所以這不是問題。

任何人都可以弄明白嗎?

在此先感謝:)

回答

0

我看到您從Sandbox發出此API請求。 的setexpressCheckout API respnse是「成功的」 我們從你的錯誤消息的響應GetExpressCheckoutDetailsRequest

Express Checkout token was issued for a merchant account other than yours.

這主要是由於: 您正在使用SetExpressCheckout和DoExpressCheckoutPayment不同的API證書。

我認爲你正在處理你的返回URL裏面的東西,它正在做一些錯誤的API調用。

我在這裏測試:

VERSION = 97.0 
METHOD = SetExpressCheckout 
RETURNURL = http://www.zerogravityprogramming.com/PayPal/Articles/DigitalGoodsExpressCheckout/App/success.php 
CANCELURL = http://www.zerogravityprogramming.com/PayPal/Articles/DigitalGoodsExpressCheckout/App/fail.html 

PAYMENTREQUEST_0_PAYMENTACTION = Sale 
PAYMENTREQUEST_0_NOTIFYURL = http://www.yourdomain.com/PayPal/YourPayPalListener.php 
PAYMENTREQUEST_0_AMT = 20.00 
PAYMENTREQUEST_0_CURRENCYCODE = USD 
PAYMENTREQUEST_0_ITEMAMT = 20.00 
L_PAYMENTREQUEST_0_NAME0 = Test 
L_PAYMENTREQUEST_0_NUMBER0 =23 
L_PAYMENTREQUEST_0_AMT0 = 20.00 
L_PAYMENTREQUEST_0_QTY0 = 1 
L_PAYMENTREQUEST_0_ITEMCATEGORY0 = Digital 
REQCONFIRMSHIPPING = 0 
NOSHIPPING = 1 

NVP Response: 
TOKEN=EC-3S848778KN463980F 
TIMESTAMP=2014-03-07T02:53:56Z 
CORRELATIONID=fbc726f1a782e 
ACK=Success 
VERSION=97.0 
BUILD=9917844 


VERSION = 84.0 
METHOD = DoExpressCheckoutPayment 
TOKEN = EC-3S848778KN463980F 
PAYMENTACTION = Sale 
PAYERID = ZK5AUW8MWY9CW 
AMT = 20.00 




NVP Response: 
TOKEN=EC-3S848778KN463980F 
SUCCESSPAGEREDIRECTREQUESTED=false 
TIMESTAMP=2014-03-07T02:57:05Z 
CORRELATIONID=c7aac043d49fa 
ACK=Success 
VERSION=84.0 
BUILD=9917844 
TRANSACTIONID=0L15028545229094V 
TRANSACTIONTYPE=expresscheckout 
PAYMENTTYPE=instant 
ORDERTIME=2014-03-07T02:57:04Z 
AMT=20.00 
FEEAMT=0.88 
TAXAMT=0.00 
CURRENCYCODE=USD 
PAYMENTSTATUS=Completed 
PENDINGREASON=None 
REASONCODE=None 
PROTECTIONELIGIBILITY=Ineligible 
INSURANCEOPTIONSELECTED=false 
SHIPPINGOPTIONISDEFAULT=false 
PAYMENTINFO_0_TRANSACTIONID=0L15028545229094V 
PAYMENTINFO_0_TRANSACTIONTYPE=expresscheckout 
PAYMENTINFO_0_PAYMENTTYPE=instant 
PAYMENTINFO_0_ORDERTIME=2014-03-07T02:57:04Z 
PAYMENTINFO_0_AMT=20.00 
PAYMENTINFO_0_FEEAMT=0.88 
PAYMENTINFO_0_TAXAMT=0.00 
PAYMENTINFO_0_CURRENCYCODE=USD 
PAYMENTINFO_0_PAYMENTSTATUS=Completed 
PAYMENTINFO_0_PENDINGREASON=None 
PAYMENTINFO_0_REASONCODE=None 
PAYMENTINFO_0_PROTECTIONELIGIBILITY=Ineligible 
PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE=None 
PAYMENTINFO_0_SECUREMERCHANTACCOUNTID=XTV2XWLQDBBUL 
PAYMENTINFO_0_ERRORCODE=0 
PAYMENTINFO_0_ACK=Success 
+0

我對兩個頁面都使用相同的API憑據 - 對於所有內容。我只有一個頁面「PayPal_API.php」存儲此信息。 – oliverbj

+0

本頁面有關內容:http://www.zerogravityprogramming.com/PayPal/Articles/DigitalGoodsExpressCheckout/App/success.php – Vimalnath

+0

我將它切換爲我自己的網址,但仍然沒有效果。 – oliverbj

-1

你有沒有在DoExpressCheckoutPayment提供的PayerId?
PAYERID(必填)GetExpressCheckoutDetails響應中返回的唯一PayPal買家賬戶標識號。
字符長度和限制:13個單字節字母數字字符

+0

該方法不是「DoExpressCheckoutPayment」,它會在稍後發佈。該方法是「SetExpressCheckout」 –