如何通过PayPal的API取消订阅?

3
在此页面上:处理重复付款 它说可以使用他们的API取消PayPal订阅。知道SubscriptionId,有人能给我一些代码示例吗?
目前我手动操作很麻烦(我登录我的PayPal账户,找到订阅并取消它)。
我希望自动化这个过程。

你自己写过代码吗?如果是的话,你应该在这里发布它以及你遇到的错误信息或问题。 - John Conde
我没有收到任何错误提示,我只是看不出怎么可能实现它。 - Anthony
2个回答

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
}

2
这取决于订阅类型。如果以 S- 开头,则无法通过 API 进行修改。如果以 I- 开头,则可以进行修改。请查看 ManageRecurringPaymentsProfileStatus API。这可以让您发送 ACTION=Cancel、ACTION=Suspend 或 ACTION=Reactivate。

使用PayPal的ManageRecurringPaymentsProfileStatus API取消新的I-*订阅。使用PhantomJS +此脚本取消旧的S-*订阅: http://blog.degree.no/2015/10/cancelling-old-s-paypal-subscriptions-from-code/ - Njål Arne Gjermundshaug

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接