簡體   English   中英

PayPal - 商家取消交易

[英]PayPal - merchant canceled transaction

我是 PayPal 集成的新手。 我在 node.js 中有一個應用程序,我的客戶要求集成 PayPal。 到目前為止我所做的:

  1. 調用 /v1/oauth2/token 獲取令牌
  2. 調用 /v2/checkout/orders 獲取批准鏈接
  3. 重定向到第 2 步獲得的 url
  4. 按照paypal上的步驟付款
  5. 調用了success_url,我想一切正常

問題:錢不去商家。 有時它們會從我的卡中取出,幾分鍾后它們會與消息一起發回:商家取消您的交易。 有時錢沒有從我的卡中取出。 我正在使用實時 client_id 和秘密。

有人有這個問題嗎?

我想一切都很好

你想,但這個過程並不完整。 付款人批准了訂單,但在您獲取訂單之前不會付款。 您缺少捕獲 API 步驟。 當使用這種重定向集成時,預計您的“success_url”(正如您所說的那樣,盡管 API 參數是“redirect_url”)應該顯示一個訂單審查頁面,並且當給出最終確認時,您的系統應該執行 v2 /checkout/orders 捕獲API調用,完成支付,並顯示此捕獲API調用的成功(謝謝)或失敗(有錯誤)結果。


此外,對於舊網站,從您的網站重定向是一個舊的 PayPal 集成流程。 當前的PayPal Checkout 集成不使用重定向。 完全沒有。

相反,在您的服務器上創建 2 個路由(url 路徑),一個用於“創建訂單”,一個用於“捕獲訂單”。 這兩個路由都應該只返回 JSON 數據(沒有 HTML 或文本)。 在第二條路線中,當捕獲 API 成功時,您應該驗證金額是否正確並將其生成的付款詳細信息存儲在您的數據庫中(特別是purchase_units[0].payments.captures[0].id ,這是 PayPal 交易 ID)並在將返回的 JSON 轉發給前端調用者之前立即執行任何必要的業務邏輯(例如發送確認電子郵件或預訂產品)。 如果發生錯誤,也轉發它的 JSON 詳細信息,因為前端必須處理這種情況。

將這 2 條路由與此前端審批流程配對: https ://developer.paypal.com/demo/checkout/#/pattern/server。 (如果您需要從客戶端向服務器發送任何其他數據,例如項目數組或選定的選項,請在獲取中添加一個body參數,其值為 JSON 字符串或對象)


由於您使用的是節點,因此第一個鏈接在節點中有一個完整的堆棧示例。 請務必使用完整的客戶端錯誤處理(參見第二個鏈接)擴展 onApprove 函數,因為節點示例目前不包含該級別的詳細信息。

暫無
暫無

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

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