[英]Payment Agreements with Paypal's PHP REST SDK
我正在努力解決Paypals訂閱流程。
我們的流程是:
1.)創建帳單計划
2.)激活計費方案
3.)創建帳單協議(使用激活的計划,將客戶發送到Paypal網址)
4.)客戶批准,返回我們的URL,使用提供的令牌執行
我遇到的問題是,我似乎無法將在第4步中返回的任何ID引用到前3步中提供的任何ID。
我一定很想念東西,但我完全被困住了。 在前面的步驟中,我找不到任何將已執行協議關聯的方法。
如PayPal_Orcun所述,該問題仍然懸而未決,並且正在內部通過Paypal解決,但是與此同時,您可以在此處執行某些操作。
在第3步中,創建協議后,您將獲得一個如下所示的批准鏈接:
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-8DL20958WD398123E
在這里,復制令牌,並將其存儲在數據庫中。 將其視為唯一的ID。
執行付款。 返回時,貝寶將使用以下網址重定向回:
如您所見,您可以執行$_GET['token']
在此處檢索令牌,並與創建的令牌匹配。 然后,您可以使用執行成功后返回的ID
,並將令牌字段替換為新的ID字段。
我同意,這不是您期望的,但是絕對可以使您在create
和execute
調用之后連接協議。
希望這會有所幫助。
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.