Paypal 定期付款问题
Posted
技术标签:
【中文标题】Paypal 定期付款问题【英文标题】:Paypal Recurring Payment issue 【发布时间】:2013-02-26 06:17:14 【问题描述】:我的应用程序允许订阅服务,我为此使用贝宝的定期付款。根据那里的手册,我使用的顺序是 SetExperssCheckOut-->GetExpressCheckOut-->DoExpressCheckOut->CreateRecurringPayment Profile。
在 DoExpressCheckOut 事件本身上,我进行了第一笔付款,然后在创建定期付款资料时进行下一笔付款,即如果我有每日订阅,在第 3 天结束时,没有付款 =4(3从定期付款和 1 从获得快速结帐)。我只想在第 3 天结束时支付 3 笔款项。我使用的代码是:
GetExpressCheckout getExpressCheckout = new GetExpressCheckout();
GetExpressCheckoutDetailsResponseType getExpressCheckoutResponse = getExpressCheckout.ECGetExpressCheckoutCode(token);
if (getExpressCheckoutResponse.Ack == AckCodeType.Success)
ExpressCheckout expressCheckout = new ExpressCheckout();
DoExpressCheckoutPaymentResponseType doExpressCheckoutResponse = expressCheckout.DoExpressCheckoutPayment
(
token,
getExpressCheckoutResponse.GetExpressCheckoutDetailsResponseDetails.PayerInfo.PayerID,
PayPalSettings.OrderAmount,
PaymentActionCodeType.Sale,
CurrencyCodeType.USD
);
if (doExpressCheckoutResponse.Ack == AckCodeType.Success)
//create Recurring Payment Profile
CreateRecurringPaymentsProfile createRecurringPaymentsProfile = new CreateRecurringPaymentsProfile();
CreateRecurringPaymentsProfileResponseType recurringPaymentProfileResponse = createRecurringPaymentsProfile.CreateRecurringPaymentsProfileCode(
doExpressCheckoutResponse.DoExpressCheckoutPaymentResponseDetails.Token,
doExpressCheckoutResponse.Timestamp,
PayPalSettings.OrderAmount,
1,
BillingPeriodType.Day,//BillingPeriodType.Month
CurrencyCodeType.USD
);
if (recurringPaymentProfileResponse.Ack == AckCodeType.Success)
//Do something
如何在定期付款部分进行所有付款?
【问题讨论】:
【参考方案1】:使用定期付款时,不需要调用 DoExpressCheckoutPayment API。当客户被重定向到 PayPal 进行身份验证时,他们会提交对预定付款的同意。
尝试跳过 DoExpressCheckoutPayment API 调用,这应该会处理额外的付款。
如果您遇到任何问题,请告诉我。
【讨论】:
如果我跳过 DoExpressCheckoutPayment 电话,我在哪里创建我的定期付款资料,并且我可以为交易进行任何初始付款? 创建可以在执行 GetExpressCheckoutDetails 后进行,因为客户在访问 PayPal 时已同意配置文件,因此无需调用 DoExpressCheckoutPayment。根据您提供的信息,CreateRecurringPaymentsProfile API 调用的开始日期已经是它创建的同一天,或者它有初始付款。如果没有,您可以通过添加“INITAMT”以及您在创建期间要收取的金额来收取初始付款。如果我遗漏了什么,请告诉我。 我已经给出了初始金额并跳过了 DoExpressCheckoutPayment 部分。在付款之后,我的个人资料状态保持为待处理。什么时候会变为活动状态,而且我也不会从定期支付响应对象的返回中获取任何交易 ID以上是关于Paypal 定期付款问题的主要内容,如果未能解决你的问题,请参考以下文章