10

我在 cron 上设置了一个 PHP 脚本,该脚本通过 API 联系 Braintree 以查找我们存档的每个订阅的状态。然后,我们会根据客户的订阅状态更新我们的本地记录。因为我可以从 Braintree 控制面板手动取消订阅,所以我已经能够测试我的脚本是否可以检测到取消的订阅。

但是,除了等待计费周期结束之外,我找不到任何方法来测试逾期状态。因为 Braintree 中一个计费周期的最短长度是一个月,这使得调试我的脚本变得非常困难。

我知道理论上我应该只看到订阅状态的不同字符串,但我正在寻找一种可重现的方法来模拟过期状态,以及 daysPastDue 的正余额和值。

任何人都可以帮忙吗?

$BT_subscription = Braintree_Subscription::find($BT_subscription_id);
if ($BT_subscription && $BT_subscription instanceof Braintree_Subscription) {
    if ($BT_subscription->status == 'Past Due' && $BT_subscription->balance > 0) {
        // ...
4

3 回答 3

22

我从 Braintree 支持部门收到了以下关于此问题的回复:

因为我们的沙盒环境旨在复制我们的生产环境,所以无法强制订阅过期。然而,这里有一些解决方法可能会使这个测试更容易:

要在沙盒中将订阅置于过期状态,您可以创建一个试用期为 1 天且价格为 2000 美元的订阅。然后,当一天的试用期到期时,它将触发一个由于美元金额而失败的交易创建。

2000 美元的价格标签很可能会导致不成功交易的测试金额触发信用卡支付失败。我已经设置了一个测试,如果测试证明不成功,我会编辑它。

于 2013-07-16T02:12:25.843 回答
4

加上 Tyler V 的回应,不幸的是,这仍然是测试它的唯一方法。

来自支持:

感谢您与我们联系,感谢您的耐心等待。使用沙盒帐户,您可以模拟结果的最短时间为 1 天。使用以下示例创建逾期状态:

创建一个试用期为 1 天且价格为 2000 美元的计划 创建一个使用信用卡的客户 使用该计划和客户创建一个新订阅 第一次收费尝试将在 1 天后(试用期到期)并且将失败 自动重试将是在订阅到期后的 +10 天和 +20 天,请参阅以下页面了解沙盒测试值。我建议您一次创建很多这样的东西,以便您可以使用多个;否则,您将不得不等待一天,他们创建的每个新产品都会进入过期状态。

于 2015-03-09T03:41:03.167 回答
0

@泰勒V。

  • 创建新订阅时,您可以将 first_billing_date 设置为提前一天
  • 您应该启用 Webhook、存储消息并使用 postman 重播它。
于 2019-10-29T07:49:52.267 回答