您可以通过API取消PayPal自动付款吗?这是通过托管按钮创建的“订阅”。
我有“自动付款编号”和“交易ID”。
答案 0 :(得分:26)
是的。
您可以暂停或取消个人资料 使用 的 ManageRecurringPaymentsProfileStatus API 即可。您也可以重新激活a 暂停资料。如果最大 失败的付款数量已经存在 但是,你需要 增加失败次数 在重新启动之前付款 轮廓。
请查看this参考:
根据PAYPAL,您可以使用ManagerecurringPayments API执行三项操作中的任何一项。
答案 1 :(得分:5)
我在找到解决方案之前找到了这个帖子,并且认为我会回来给出答案。 (C#.Net解决方案)
您需要以下nuget包:
Install-Package RestApiSDK
Install-Package PayPalCoreSDK
Install-Package PayPalMerchantSDK
以下参考文献:
using PayPal.Api;
using PayPal.PayPalAPIInterfaceService;
using PayPal.PayPalAPIInterfaceService.Model;
以下是代码:
public static void CancelRecurringPayment(string ProfileID)
{
ManageRecurringPaymentsProfileStatusRequestType request =
new ManageRecurringPaymentsProfileStatusRequestType();
ManageRecurringPaymentsProfileStatusRequestDetailsType details =
new ManageRecurringPaymentsProfileStatusRequestDetailsType();
request.ManageRecurringPaymentsProfileStatusRequestDetails = details;
details.ProfileID = ProfileID;
details.Action = StatusChangeActionType.CANCEL;
// Invoke the API
ManageRecurringPaymentsProfileStatusReq wrapper = new ManageRecurringPaymentsProfileStatusReq();
wrapper.ManageRecurringPaymentsProfileStatusRequest = request;
Dictionary<string, string> configurationMap = new Dictionary<string, string>();
configurationMap.Add("mode", "live");
// Signature Credential
configurationMap.Add("account1.apiUsername", "APIUSERNAME");
configurationMap.Add("account1.apiPassword", "APIPASSWORD");
configurationMap.Add("account1.apiSignature", "APISIGNATURE");
// Create the PayPalAPIInterfaceServiceService service object to make the API call
PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap);
ManageRecurringPaymentsProfileStatusResponseType manageProfileStatusResponse =
service.ManageRecurringPaymentsProfileStatus(wrapper);
// Check for API return status
Dictionary<string, string> responseParams = new Dictionary<string, string>();
responseParams.Add("API Status", manageProfileStatusResponse.Ack.ToString());
if (manageProfileStatusResponse.Ack.Equals(AckCodeType.FAILURE) || (manageProfileStatusResponse.Errors != null && manageProfileStatusResponse.Errors.Count > 0))
{
//FAILURE
Console.WriteLine(manageProfileStatusResponse.Errors.ToString());
}
else
{
//SUCCESS
Console.Write("Success!");
}
Console.WriteLine();
}
答案 2 :(得分:3)
“订阅是通过网站付款标准'订阅'按钮创建的。在2009之前,订阅配置文件ID以S-XXXXXXXX开头。您无法通过任何API调用管理这些订阅。2009年之后,订阅配置文件ID以I-XXXXXX开头。您可以通过ManageRecurringPaymentsProfileStatus API调用取消这些订阅。“
遇到同样的问题并且只是通过Robert阅读并且它有效,您可以使用API取消标准网站订阅。
答案 3 :(得分:1)
答案 4 :(得分:0)
我认为您不能使用API取消Paypal标准付款活动专业版的付款,而只有快速结帐才能生效。我尝试并收到错误消息:“定期付款API不支持订阅配置文件。”。您可以找到更多here。