2010-12-03 7 views
12

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECRecurringPaymentsapiからPayPal購読をどのように取り消しますか?このページでは

それは彼らのAPIを使用してPayPalのサブスクリプションをキャンセルすることは可能だと述べています。 SubscriptionIdを知っている人は誰にでも私にこのようなコード例を教えてもらえますか?

多くのありがとうございます。

+0

"* Failure *"/"* Profile ID is invalid *"以外の返信を受け取ったことがありますか?私が発見した限りでは、このように(* CreateRecurringPaymentsProfile *を除いて)「通常」作成されたサブスクリプションをキャンセルすることはできません。サブスクリプションIDを置くと、(私にとっては)トリックはありません。 – nssmart

+2

"サブスクリプションはウェブペイメントスタンダードの"購読 "ボタンで作成されます2009年以前はサブスクリプションプロファイルIDがS-XXXXXXXXで始まっていましたが、APIコールでこれらのサブスクリプションを管理することはできません。 I-XXXXXXを使用すると、ManageRecurringPaymentsProfileStatus APIコールを介してこれらのサブスクリプションをキャンセルすることができます。 同じ問題がありましたが、ちょうどRobertでそれを読んでいれば、APIを使用して標準のウェブサイトのサブスクリプションをキャンセルできます。 –

+0

今は2012年です。今日までのすべての定期購読はSから始まり、キャンセル方法は使用できません。多分誰かが解決策を見つけましたか? – Tomas

答えて

15

あなたは簡単な解決策を見つけることができましたか?私はこれも探しています。ありがとう!

更新:検索後、「ManageRecurringPaymentsProfileStatus」は簡単なPOSTリクエストを通じて使いやすいです。

ユーザー、パスワード、または署名が表示されていないことを確認してください(つまり、サーバーでこれを行い、javascriptまたはhtml投稿でクライアントには表示しないでください)。

以下は、Pythonでの簡単な使用例です。それは動作し、私は今毎日それを使用しています。

import urllib 
from google.appengine.api import urlfetch 

form_fields = { 
     "METHOD": "ManageRecurringPaymentsProfileStatus", 
     "PROFILEID": "xxx", # put your subscription ID here 
     "ACTION": "cancel", 
     "USER": "xxx", # Get USER, PWD, and SIGNATURE from your Paypal's account preferences 
     "PWD": "xxx", 
     "SIGNATURE": "xxx", 
     "VERSION": "54.0" 
} 

api_url = 'https://api-3t.sandbox.paypal.com/nvp' # remove the sandbox part for production 

form_data = urllib.urlencode(form_fields) 

result = urlfetch.fetch(url=api_url, 
        payload=form_data, 
        method=urlfetch.POST, 
        headers={'Content-Type': 'application/x-www-form-urlencoded'}) 

応答は次のようになります文字列です。

TIMESTAMP = 2011パーセント2d01%2d28T14%3a47%3a45Z &にCorrelationID = 148ebe1d25566 & ACK =失敗& VERSION = 54%の2E0 & BUILD = 1704252 & L_ERRORCODE0 = 11552 & L_SHORTMESSAGE0 =無効%20profile%20ID & L_LONGMESSAGE0 =%20profile%20ID%20is%20invalid & L_SEVERITYCODE0 =エラー

「ACK」フィールドは、「失敗」または「成功」を示します。私は旗」を使用していない

<a href="https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=llcpro_1295263400_biz%40jeregle.com&item_name=Abonnement%20mensuel&a3=41.86&t3=M&p3=1&src=1&sra=1&currency_code=EUR&no_note=1&no_shipping=1&lc=FR&custom=xxxxx&notify_url=https%3A%2F%2Fyournotifyurl.com%2Fipn&charset=utf-8&country=FR&a1=0&t1=D&p1=31" target="_blank">Subscribe</a>

注:以下のコメントに答えて

は、それのような動的に作成したリンクを介して作成されているサブスクリプションをキャンセルするために私を有効にないことに注意してください全く変更する。

+0

私はしませんでした。私はまだ手動でやっています。ありがたいことに、頻繁に起こることはありません。 – Anthony

+0

こんにちはアンソニー。ソリューションを見つけました。上記の最新の記事をご覧ください。それがあなたに役立つことを願っています。乾杯。 –

+1

ルイありがとう。それを試してみますが、手動で作成したサブスクリプションで動作することを確認できますか?下記のVitalyの答えを見てください。 – Anthony

関連する問題