簡體   English   中英

與Paypal的PHP REST SDK達成的付款協議

[英]Payment Agreements with Paypal's PHP REST SDK

我正在努力解決Paypals訂閱流程。

我們的流程是:

1.)創建帳單計划
2.)激活計費方案
3.)創建帳單協議(使用激活的計划,將客戶發送到Paypal網址)
4.)客戶批准,返回我們的URL,使用提供的令牌執行

我遇到的問題是,我似乎無法將在第4步中返回的任何ID引用到前3步中提供的任何ID。

我一定很想念東西,但我完全被困住了。 在前面的步驟中,我找不到任何將已執行協議關聯的方法。

如PayPal_Orcun所述,該問題仍然懸而未決,並且正在內部通過Paypal解決,但是與此同時,您可以在此處執行某些操作。

  1. 在第3步中,創建協議后,您將獲得一個如下所示的批准鏈接:

    https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-8DL20958WD398123E

  2. 在這里,復制令牌,並將其存儲在數據庫中。 將其視為唯一的ID。

  3. 執行付款。 返回時,貝寶將使用以下網址重定向回:

    HTTP://localhost/paypal/PayPal-PHP-SDK/sample/billing/ExecuteAgreement.php成功=真令牌= EC-8DL20958WD398123E

如您所見,您可以執行$_GET['token']在此處檢索令牌,並與創建的令牌匹配。 然后,您可以使用執行成功后返回的ID ,並將令牌字段替換為新的ID字段。

我同意,這不是您期望的,但是絕對可以使您在createexecute調用之后連接協議。

希望這會有所幫助。

REST API計費計划和計費協議(包括curl調用示例)的工作方式如下:

首先,請確保已將REST應用切換為訂閱狀態(您可以在https://developer.paypal.com/webapps/developer/applications/myapps上檢查REST應用設置)

1-)創建帳單計划

curl -k -v -H“內容類型:應用程序/ json” -H“授權:Bearer ACCESS_TOKEN” -d'{“名稱”:“測試REST俱樂部計划”,“描述”:“模板創建。”,“ type“:” fixed“,” payment_definitions“:[{” name“:” Regular Payments“,” type“:” REGULAR“,” frequency“:” MONTH“,” frequency_interval“:” 2“,” amount“: { “值”: “100”, “貨幣”: “USD”}, “循環”: “12”, “charge_models”:[{ “類型”: “運輸”, “量”:{ “值”:” 10" , “貨幣”: “USD”}},{ “類型”: “TAX”, “量”:{ “值”: “12”, “貨幣”: “USD”}}]}],“merchant_preferences “:{” setup_fee “:{” 值 “:” 1" , “貨幣”: “USD”}, “return_url”: “HTTP:// RETURNURL”, “cancel_url”: “HTTP:// cancelurl”,” auto_bill_amount“:”是“,” initial_fail_amount_action“:”繼續“,” max_fail_attempts“:” 0“}}' https://api.sandbox.paypal.com/v1/payments/billing-plans

PayPal將返回以“ P-”開頭的結算計划ID

2-)激活計費方案

curl -k -v -H“內容類型:應用程序/ json” -H“授權:承載ACCESS_TOKEN” -d'[{{path“:” /“,” value“:{” state“:” ACTIVE“} ,“ op”:“ replace”}]' https://api.sandbox.paypal.com/v1/payments/billing-plans/

3-)創建帳單協議

curl -k -v -H“內容類型:應用程序/ json” -H“授權:Bearer ACCESS_TOKEN” -d'{“名稱”:“測試REST俱樂部計划”,“描述”:“模板創建。”,“起始日期 “:” 2015-03-20T07:49:27-07:00" , “計划”:{ “ID”: “PLAN_ID_HERE”}, “付款人”:{ “PAYMENT_METHOD”: “貝寶”}, “shipping_address” :{“ line1”:“ 111 First Street”,“ city”:“ Saratoga”,“ state”:“ CA”,“郵政編碼”:“ 95070”,“ country_code”:“ US”}}'' https:// api.sandbox.paypal.com/v1/payments/billing-agreements

PayPal將返回帶有EC令牌的Express Checkout重定向URL。 例如https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxxxxxxxxxxxxxx

您需要通過該URL將客戶重定向到PayPal。 授權計費協議后,客戶將返回到您的站點(步驟1中的return_url)。

4-)執行計費協議

curl -k -v -H“內容類型:應用程序/ json” -H“授權:承載ACCESS_TOKEN” -d'{}' https://api.sandbox.paypal.com/v1/payments/billing-agreements/ EC-TOKEN_HERE /協議,執行

我針對同一問題的解決方案是在計費協議上設置override_merchant_preferences ,其中return_url包含查詢中的用戶ID,例如www.domain.com/api/handler.php?uid=42&action=return

暫無
暫無

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

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