2015-04-14 26 views
21

我一直在使用貝寶REST API,並已成功創建並啓動一個BillingPlan,但我無法更新說計劃的return_url。我認爲這與我使用的JSON路徑有關,儘管我不確定爲什麼!?貝寶REST API - 更新結算方案返回URL

無論如何,我打電話的更新計劃方法:https://developer.paypal.com/docs/api/#update-a-plan

一個BillingPlan如下格式:

{ 
    "id": "P-94458432VR012762KRWBZEUA", 
    "state": "ACTIVE", 
    "name": "T-Shirt of the Month Club Plan", 
    "description": "Template creation.", 
    "type": "FIXED", 
    ... 
    "merchant_preferences": { 
    "setup_fee": { 
     "currency": "USD", 
     "value": "1" 
    }, 
    "max_fail_attempts": "0", 
    "return_url": "http://example.com", 
    "cancel_url": "http://example.com", 
    "auto_bill_amount": "YES", 
    "initial_fail_amount_action": "CONTINUE" 
    }, 
    ... 
} 

我使用C#SDK,但我的要求JSON應該看起來非常像:

{ 
    "path": "merchant_preferences", 
    "value": { 
     "return_url": "http://example.com/payment/return" 
    }, 
    "op": "replace" 
} 

我一直沿着線的獲得迴應:

{「name」:「BUSINESS_VALIDATION_ERROR」,「details」:[{「field」:「validation_error」,「issue」:「無效的 Path。」}],「message」:「驗證 錯誤。 「 」information_link「:」 https://developer.paypal.com/webapps/developer/docs/api/#BUSINESS_VALIDATION_ERROR」, 「debug_id」: 「2ae68f9f0aa72」}

概括起來 - 我想從http://example.com改變計費計劃return_urlhttp://example.com/payment/return

我已經改變了path各種事情都無濟於事。誰能幫忙?

+0

我並不完全相信你的問題是什麼,你可以更具體一點嗎? – Pseudonym

+0

嘗試在''path「前添加''/」',即''path「:」/ merchant_preferences「'。 – dbc

+1

此外,顯然你不能更新這個計劃是積極的,請參閱https://github.com/paypal/PayPal-Python-SDK/issues/73 – dbc

回答

8

您不能更新計劃,一旦它被設置爲激活。這種限制的原因是因爲可能會有基於該計劃的協議,修改它會影響已經商定的計費協議。

不過,我同意你的問題的陳述,這改變了返回URL不應該是一個問題,因爲這不是協議的一部分,但更多的配置變化。即使在激活之後,以某種方式允許更新計劃中的類似設置也不錯。我會讓API團隊知道這一點。

然而,在此期間,有沒有辦法,你將能夠做到這一點。或者,您可以創建一個新計劃,然後使用它。不是你正在尋找的答案,而是一個可能的解決方案。

+0

謝謝Jay。理解並感謝您將此傳遞給API小組。在可能的情況下獲得更多靈活性會很好。乾杯。 – scgough

+0

我同意。 API團隊必須在交付時間/功能集之間取得平衡,並且必須做出一些不完美/理想的技術決策。像這樣的好的反饋可以幫助他們評估相應的優先級。謝謝。 –

+0

在這種情況下,什麼是好的(並且希望在短期內更容易實現)會是一​​些更具描述性的錯誤消息。例如。 「驗證錯誤 - 一個積極的計費計劃不能改變」;-)真的很感激你花時間來證實我們對此事的懷疑,儘管Jay。再次感謝。 – scgough