Authorize.net对ARB订阅应用一次现金折扣

时间:2018-09-17 18:16:22

标签: php laravel authorize.net authorize.net-arb

是否可以对自动重复计费订阅应用一次/多次现金折扣?我似乎在Google上找不到任何内容。

我目前拥有的东西:

  1. 首先计算折价,然后使用新价格创建单笔费用,然后手动创建本地订阅(不再是ARB),我必须在该订阅上创建自己的计费计划程序。

我想要达到的目标是这样的:

  1. 在订阅的第一个月和/或第二个月应用100美元
  2. 应用了2个折扣后,下一次计费时,订阅价格应恢复为原始价格。

我正在使用Laravel cashier package进行authorize.net,因此我想添加 ->withDiscount() ->discountUsage()

$user->newSubscription('main', $planId)
    ->skipTrial()
    ->withDiscount(100) // these are the functions I want to achieve 
    ->discountUsage(2)  // the number of times discount is applicable
    ->create($user->authorize_id, [
        'email' => $user->email_address
    ]);

我认为使用Authorize.net当前的ARB API可以实现什么?有人可以启发我或给我一些建议以获得更好的选择。谢谢!

1 个答案:

答案 0 :(得分:3)

如果您只想降低前一两次付款的价格,则可以使用ARB中的trial period功能。这样一来,您就可以为一定数量的付款设置不同的价格,通常是更低的价格,然后再对剩余的付款收取正常价格。

我不知道您使用的软件包,但是在第二行中,您正在积极禁用此功能。

$user->newSubscription('main', $planId)
    ->skipTrial()  // <-- HERE. This needs to be changed to enable the trial period.
    ->create($user->authorize_id, [
        'email' => $user->email_address
    ]);

您需要阅读该库的文档,以了解如何设置ARB的试用期。

您似乎可以在配置中进行设置:

'monthly-10-1' => [
    'name' => 'main',
    'interval' => [
        'length' => 1, // number of instances for billing
        'unit' => 'months' //months, days, years
    ],
    'total_occurances' => 9999, // 9999 means without end date
    'trial_occurances' => 0,
    'amount' => 9.99,
    'trial_amount' => 0, <-- HERE
    'trial_days' => 0, <-- AND HERE
    'trial_delay' => 0, // days you wish to delay the start of billing
]

您想做的底线是可能的。