2010-12-03 13 views
12

: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECRecurringPaymentsBir PayPal aboneliğini API'ları aracılığıyla nasıl iptal edersiniz? Bu sayfada

o kendi API kullanarak PayPal aboneliği iptal etmek mümkün olduğunu söylüyor. SubscriptionId'i bilen biri, bana nasıl kod örneği verebilir?

Çok teşekkürler.

+0

Hiç "* Başarısızlık *"/"* Profili kimlik geçersiz * ise" dışında bir cevap aldınız mı? Bulduğum kadarıyla, "normalde" (* CreateRecurringPaymentsProfile * olmadan) oluşturulan bir aboneliği bu şekilde iptal edemezsiniz. Abonelik kimliğini koymak, hile yapmaz (benim için). – nssmart

+2

"Bir abonelik Website Payments Standard 2009 önce. Düğmesi 'Abone' yoluyla oluşturulur, abonelik profili kimliği S-XXXXXXXX ile başladı. Sen. 2009 yılından sonra abonelik profili kimliği başlayacağı API çağrıları bu hesaplara yönetmek mümkün değildir I-XXXXXX ile bu abonelikleri ManageRecurringPaymentsProfileStatus API çağrısı aracılığıyla iptal edebilirsiniz. " aynı sorunu yaşıyor oldu ve sadece Robert tarafından okumak ve bunu API kullanarak standart web aboneliğinizi iptal edebilirsiniz, çalışır. –

+0

Şimdi, 2012'ye kadar tüm aboneliklerim S ile başlıyor ve iptal yöntemini kullanamıyorum. Belki birisi bir çözüm buldu? – Tomas

cevap

15

kolay bir çözüm bulmak için yönetmek mi? Bunu da arıyorum. Teşekkürler!

Güncelleştirme: Aradıktan sonra, "ManageRecurringPaymentsProfileStatus" basit bir POST isteği ile kullanımı çok kolaydır.

kullanıcı, şifre veya imza (başka bir deyişle, JavaScript veya html mesajlar aracılığıyla istemci üzerinde sunucunuzda ve NOT yapın) görünür olmadığından emin olun. Python basit çalışma örnek Aşağıda

. Çalışıyor ve şimdi günlük olarak kullanıyorum.

TIMESTAMP = 2.011% 2d01% 2d28T14% 3a47% 3a45Z & CorrelationID = 148ebe1d25566 & ACK = Başarısızlık & VERSION =% 54 2E0 & YAPI = 1704252:

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'}) 

tepki şöyle bir dizedir & L_ERRORCODE0 = 11552 & L_SHORTMESSAGE0 = Geçersiz% 20profile% 20ID & L_LONGMESSAGE0 =% 20profile% 20ID% 20is% 20invalid & L_SEVERITYCODE0 = Hata

'ACK' alanı 'Arıza' veya 'Başarı' olduğunu gösterir. Ben bayrağı 'kullanmayan

<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>

Not: Aşağıdaki yorumların cevap olarak

, bu gibi dinamik olarak oluşturulan bağlantı üzerinden oluşturulmuş abonelikleri iptal etmemi sağlayacak ETMEZ unutmayın 'hiç değiştir.

+0

Yapmadım. Hala el ile yapıyorum. Şükür ki çok sık olmaz. – Anthony

+0

Merhaba Anthony. Çözümü buldum, yukarıda güncellenmiş gönderim gör. Umarım sizin için yararlı olur. Şerefe. –

+1

Teşekkürler Louis. Bunu deneyeceğim ama el ile oluşturulan abonelik için çalıştığını doğrulayabilir misiniz? Vitaly'ın cevabı aşağıdadır. – Anthony

İlgili konular