2011-11-26 33 views
3

本頁內容:Handling Recurring Payments你如何通過api取消PayPal訂閱?

它表示可以使用API​​取消PayPal訂閱。知道SubscriptionId任何人都可以給我一些代碼示例如何做到這一點?

目前我手動做這是一個痛苦(我登錄到我的PayPal帳戶,找到訂閱並取消它)。

我想基本上自動化這個過程。

+0

你有寫任何代碼?如果是這樣,你應該在這裏發佈,並且遇到了什麼錯誤信息/問題。 –

+0

我沒有收到任何錯誤。我只是看不出有可能做到這一點。 – Anthony

回答

2

這通常取決於訂閱的類型。如果它以S-開頭,則不能通過API進行修改。如果它以I開頭,它可以。

看看這個ManageRecurringPaymentsProfileStatus API。
這允許您發送ACTION =取消,ACTION =掛起或ACTION =重新激活。

+0

*使用PayPals ManageRecurringPaymentsProfileStatus API取消新的I- *訂閱。 *通過使用PhantomJS +此腳本取消舊的S- *訂閱: http://blog.degree.no/2015/10/cancelling-old-s-paypal-subscriptions-from-code/ –

3

在Perl中它可能是這樣的:

#!/usr/bin/perl 

use strict; 
use LWP::UserAgent; 

# Set values for $paypal_api_user, $paypal_api_pwd and 
# $paypal_api_signature from your paypal's profile 
my $paypal_api_user = '....'; 
my $paypal_api_pwd = '.....'; 
my $paypal_api_signature = '.....'; 

# Set subscription id 
my $subscr_id = '....'; 

my $params = { 
    'USER' => $paypal_api_user, 
    'PWD' => $paypal_api_pwd, 
    'SIGNATURE' => $paypal_api_signature, 
    'VERSION' => '84.0', 
    'METHOD' => 'ManageRecurringPaymentsProfileStatus', 
    'PROFILEID' => $subscr_id, 
    'ACTION' => 'Cancel', 
}; 
my $ua = LWP::UserAgent->new(); 

my $res = $ua->post('https://api-3t.paypal.com/nvp', $params); 

if ($res->is_error()) { 
    # HTTP error 
} else { 
    # Success 
}