根据关于"测试经常性付款"的文档
当选择"天"时,表示计费周期在天范围内每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);
这段代码工作得很好,除了一个问题(对我来说是一个大问题),它没有加快进程。没有它,就无法测试IPN对于经常性付款。
根据这个其他论坛帖子,我可能需要启用"测试模式"为我的沙箱业务帐户,但我无法在新的沙箱网站找到该选项。
我错过了什么?
不幸的是,这是一个推出的功能,并在很短的时间内删除。你唯一能够测试的方法是将重复支付设置为每日账单。一种方法,这将是创建一个表单post与所有的变量,你想要发送,只是有它的数据张贴到您的脚本,并做它应该做的。你只需要绕过让它验证的逻辑。但是,一旦您完成了所有的测试,您就可以返回并运行一些测试,以确保您的脚本验证了帖子。使用表单将变量发布到脚本中,将允许您进行尽可能多的测试,而不必等待每天的循环付款账单。