簡體   English   中英

php paypal服務器端REST集成失敗

[英]php paypal Server-side REST integration failure

(我無法發布代碼/錯誤等因為:'你需要至少10個聲望才能發布2個以上的鏈接';而且一切都包含很多鏈接;只花了幾個小時就完全詳細的帖子)。

我在這里(以及其他地方)閱讀過類似的帖子,但他們沒有幫助。

我基本上遵循: https//developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/server-side-REST-integration/#set-up-your-client

但PayPal的文檔有些混亂,缺乏一些關鍵的細節和神秘的地方。 顯然是由一個委員會撰寫的。

簡而言之,我有一個PayPal付款ID: "id": "PAY-0J356327TH335450NK56Y2PQ"

PayPal說從我的創建支付腳本返回此信息。 我不完全確定它應該如何返回:只需回顯"PAY-0J356327TH335450NK56Y2PQ"; 或者返回一個json字符串。 試過這兩個,沒有解決任何問題。

然后有(從客戶端按鈕):

onAuthorize: function(data) {
            return paypal.request.post(EXECUTE_PAYMENT_URL, {
                paymentID: data.paymentID,
                payerID:   data.payerID
            }).then(function() {

                // The payment is complete!
                // You can now show a confirmation message to the customer
            });

我讀到的是它調用我的執行支付腳本,其中包含2個變量(paymentID和payerID),我需要在我的腳本中使用它。

我試過了明顯的事:

$paymentID = $_POST["paymentID"];
$payerID = $_POST["payerID"];

不那么明顯(因為我假設它的POST數據雖然有些文檔在這一點上似乎有點混淆):

$paymentID = $_GET["paymentID"];
$payerID = $_GET["payerID"];

我最后的嘗試:

$ret = file_get_contents("php://input");
$ar = json_decode($ret, TRUE);
$paymentID = $ar["paymentID"];
$payerID = $ar["payerID"];

這些都沒有任何區別。

我從PayPal得到的錯誤是:

ppxo_no_token_passed_to_payment Object ...
ppxo_unhandled_error Object ...

Error: No value passed to payment
decorate ...

我顯然有一個有效的訪問令牌,否則我不會得到一個支付ID。

目前難倒; 任何想法/指針贊賞。

這真的應該很簡單。

我有相同的錯誤消息。

對我來說,當javascript代碼收到我的CREATE_PAYMENT_URL ajax請求的響應時,就會發生這種情況。

我從服務器發回的響應是無效的JSON,所以當執行onAuthorize data時,我發現data.paymentID和data.payerID不可用。

我建議在onAuthorize的return語句上方使用console.log(data),以確保數據json對象具有paymentId和payerId。

如果沒有,則可能是您的previoius CREATE_PAYMENT_URL未返回付款ID。

答案應該是json。 例如,有效的創建付款響應:

{ “ID”: “PAY-5T1130394T551090NLGRLACY”}

希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM