2012-03-13 115 views
2

我做了什麼必要的最新可用文件說在集成貝寶在我們的商店系統。我只是發現它看起來像NVP中的PAYMENTREQUEST_n_PAYMENTACTION參數。paypal支付行動缺失

我使用由SetExpressCheckout返回的令牌和PayerID獲取付款詳細信息。當我輸出我退換嫋嫋,我只是發現了這一點:

[CHECKOUTSTATUS] => PaymentActionNotInitiated 

出了什麼問題?

我使用此查詢在捲曲:

// Prepare PayPal API URL 
$url = "https://api-3t.sandbox.paypal.com/nvp"; 

// $PAYMENTACTION = "Sale" 

// Prepare PayPal NVP (Name-Value Pair) payment request 
$nvp = "METHOD=" . $SETMETHOD; 
$nvp .= "&VERSION=" . $VERSION; 
$nvp .= "&USER=" . $USERNAME; 
$nvp .= "&PWD=" . $PASSWORD; 
$nvp .= "&SIGNATURE=" . $SIGNATURE; 
$nvp .= "&PAYMENTREQUEST_0_PAYMENTACTION=" . $PAYMENTACTION; 
$nvp .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $CURRENCY; 
$nvp .= "&SOLUTIONTYPE=" . $SOLUTIONTYPE; 
$nvp .= "&RETURNURL=" . $RETURNURL; 
$nvp .= "&CANCELURL=" . $CANCELURL; 
$nvp .= "&L_PAYMENTREQUEST_0_NAME0=" . $PAYMENTNAME0; 
$nvp .= "&L_PAYMENTREQUEST_0_DESC0=" . $PAYMENTDESC0; 
$nvp .= "&L_PAYMENTREQUEST_0_AMT0=" . $PAYMENTAMT0; 
$nvp .= "&L_PAYMENTREQUEST_0_QTY0=" . $PAYMENTQTY0; 
$nvp .= "&PAYMENTREQUEST_0_ITEMAMT=" . $PAYMENTITEMAMT; 
$nvp .= "&PAYMENTREQUEST_0_AMT=" . $PAYMENTAMT; 
$nvp .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $CURRENCY; 
$nvp .= "&LOCALECODE=" . $LOCALECODE; 
$nvp .= "&HDRIMG=" . $HEADERLOGO; 
$nvp .= "&PAYFLOWCOLOR=" . 262626; 
+0

我從來沒有與PayPal系統工作過,而是快速搜索說,貝寶不允許數超過2位小數,和那可能是造成這個問題的原因? – Nick 2012-03-13 09:10:01

+0

@尼克 - 我認爲這不關注。金額工作正常,只是某些參數**&PAYMENTREQUEST_0_PAYMENTACTION **似乎是問題。 – 2012-03-13 09:11:21

+0

也許你可以試試這個作爲的情況下,沒有人一個解決辦法知道了答案: 「我發現的唯一的解決方法是做GetExpressCheckoutDetails並檢查CHECKOUTSTATUS變量,看它是否是PaymentActionComplete如果是這樣,我處理支付如果。這是PaymentActionNotInitiated,我會做一個DoExpressCheckoutPayment。「 - 雖然我真的希望你找到更好的解決方案。 – Nick 2012-03-13 09:21:12

回答

9

PaymentActionNotInitiated並不是指PAYMENTREQUEST_0_PAYMENTACTION
這僅僅意味着您尚未指示買家進入Pay​​Pal頁面以確認其付款。

回顧一下,這是快速結賬是如何工作的:

  1. SetExpressCheckout樹立支付,並返回一個令牌
  2. 您重定向買家https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=TOKEN-HERE,其中token,這裏是你前面
  3. 接收的令牌
  4. 後買方已同意付款後,他返回到您的網站
  5. 您可以撥打GetExpressCheckoutDetails並提供令牌作爲參數來獲得買家的PAYERID。
  6. 與令牌和PAYERID呼叫DoExpressCheckoutPayment提供敲定支付
+0

我在您的個人資料中找到了這條評論:「以PayPal API爲生」玩。這怎麼可能?。 Paypal支付你的工作在stackoverflow? – suhailvs 2013-07-25 07:26:47

+1

(有點偏離主題,但我爲貝寶商業技術服務工作。) – Robert 2013-07-29 09:20:46