2016-10-10 165 views
0

我目前正在與貝寶與NVP(paypalfunctions.php)進行支付的新集成。同樣的集成適用於其他項目,但在當前的項目中失敗。PayPal NVP集成 - 付款未處理

描述:支付鏈接獲得成功創建 - 獲取重定向到PayPal - 登錄並支付金額(1或5歐元) - 重定向到成功鏈接。

問題:商店帳戶和發件人帳戶都沒有看到付款,我沒有收到貝寶的任何回撥 - 因此付款未被處理/接受等,但我沒有從貝寶獲得任何信息。

我用的NVP設置是最小的,並且不需要交付地址:

$nvpstr="&PAYMENTREQUEST_0_AMT=". $paymentAmount; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType; 
$nvpstr = $nvpstr . "&RETURNURL=" . $returnURL; 
$nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType; 
$nvpstr = $nvpstr . "&NOSHIPPING=1"; 
$nvpstr = $nvpstr . "&BRANDNAME=MyName"; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CUSTOM=" . $paymentId; 
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_NOTIFYURL=https://my.callback.com"; 

的URL被創建成功,所有的變量設置。

任何想法,爲什麼這不工作?

非常感謝

bert2002

回答

0

這聽起來像你錯過了在過程中的最後通話。該流程應該是:

  1. SetExpressCheckout
  2. GetExpressCheckoutDetails
  3. DoExpressCheckoutPayment

直到最後DECP呼叫成功完成沒有錢將被移動。

備註:您所做的不是使用REST API/SDK,因此標籤會產生誤導。

我有一個PayPal PHP SDK,這將使這些API調用非常快速和容易,因此您不必像現在一樣手動構建這些API。我會建議你看看它。我想你會喜歡它的。

+0

嗨,非常感謝。我使用的CallShortcutExpressCheckout()應該足夠了(或者他們在過去的幾周/一個月內改變了某些內容),或者我在整個過程中都做錯了,並且它沒有任何魔力。我跟着[鏈接](https://devtools-paypal.com/integrationwizard/ecpaypal/code.php),它沒有提到你的功能。我會檢查你的SDK是否可以集成這個。只想知道爲什麼我的工作不再。 – bert2002

+0

好吧,我找到了一種方式,但它的一種奇怪。首先,我用我的所有詳細信息製作了一個CallMarkExpressCheckout(),然後用戶支付並獲取重定向到ReturnURL,後者使用DoExpressCheckoutPayment()處理令牌和PayerID。然後付款獲得批准。這個工作流程是否有意義?在另一個項目中,所有第二部分都與回調一起處理,而不是來自用戶的ReturnUrl。那ReturnUrl有點奇怪。 – bert2002

+0

我列出的API名稱是實際名稱。這些函數是用SetExpressCheckout請求來完成的。例如,SetExpressCheckout中的其中一個參數可以設置爲「Billing」或「Mark」,根據您的設置,體驗會有所不同。無論如何,這些函數都爲您運行SetExpressCheckout,並且可能會爲您處理重定向,但是,您需要在返回到由SetExpressCheckout提供的ReturnURL後添加DoExpressCheckoutPayment調用。 –