1

根据有关“测试定期付款”的文档

指定 Day 时,在 Sandbox 中每 n 分钟发生一次计费周期,其中 n 表示频率;

所以这就是我所做的:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:'000Z'");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
RecurringPaymentsProfileDetailsType profileDetails = new RecurringPaymentsProfileDetailsType(df.format(new Date()));

BillingPeriodDetailsType trialPeriod = new BillingPeriodDetailsType(BillingPeriodType.DAY, 1, new BasicAmountType(CurrencyCodeType.USD, "40"));
trialPeriod.setTotalBillingCycles(1);

ScheduleDetailsType scheduleDetails = new ScheduleDetailsType();
scheduleDetails.setPaymentPeriod(new BillingPeriodDetailsType(BillingPeriodType.DAY, 1, new BasicAmountType(CurrencyCodeType.USD, "40")));
scheduleDetails.setDescription(agreementDescription);
scheduleDetails.setTrialPeriod(trialPeriod);

CreateRecurringPaymentsProfileRequestDetailsType reqDetails = new CreateRecurringPaymentsProfileRequestDetailsType(profileDetails, scheduleDetails);
reqDetails.setToken(token);

CreateRecurringPaymentsProfileRequestType reqType = new CreateRecurringPaymentsProfileRequestType();
reqType.setCreateRecurringPaymentsProfileRequestDetails(reqDetails);

CreateRecurringPaymentsProfileReq req = new CreateRecurringPaymentsProfileReq();
req.setCreateRecurringPaymentsProfileRequest(reqType);

return service.createRecurringPaymentsProfile(req);

这段代码很好用,除了它不能加快进程的问题(对我来说是个大问题)。没有它,就不可能测试IPNRecurring Payments

根据this other forum post,我可能需要为我的沙盒业务帐户启用“测试模式”,但我无法在新的沙盒站点中找到该选项。

我错过了什么?

4

1 回答 1

1

不幸的是,这是一个推出的功能,并在短时间内被删除。您能够测试的唯一方法是将定期付款设置为每天计费。解决此问题的一种方法是创建一个包含您要发送的所有变量的表单发布,然后让它将数据发布到您的脚本并执行它应该做的事情。你只需要绕过让它验证的逻辑。但是,一旦您完成了所有测试,您就可以返回并运行一些测试以确保您的脚本验证帖子。使用表单将变量发布到您的脚本中,您可以根据需要进行尽可能多的测试,而无需每天等待定期付款结算。

于 2013-03-13T01:32:09.443 回答