使用 Authorize.Net 进行定期付款

Posted

技术标签:

【中文标题】使用 Authorize.Net 进行定期付款【英文标题】:Recurring Payment With Authorize.Net 【发布时间】:2021-07-24 16:26:01 【问题描述】:

我正在尝试在 ASP.NET 网络表单应用程序中实现 Authorize.Net,由于我是新手,因此正在通过其官方网站和其他一些随机网站了解它。以下链接对我有所帮助:

Recurring Bill

Recurring Bill Code Sample

到目前为止,以下代码 sn-p 似乎可以实现,因为它需要设置的配置很少,并创建了一个沙盒帐户来完成它:

 ApiOperationBase<ANetApiRequest, ANetApiResponse>.MerchantAuthentication = new merchantAuthenticationType()
 
      name            = ApiLoginID,
      ItemElementName = ItemChoiceType.transactionKey,
      Item            = ApiTransactionKey,
 ;

 paymentScheduleTypeInterval interval = new paymentScheduleTypeInterval();

 interval.length = intervalLength;                        // months can be indicated between 1 and 12
 interval.unit   = ARBSubscriptionUnitEnum.days;

 paymentScheduleType schedule = new paymentScheduleType
 
     interval            = interval,
     startDate           = DateTime.Now.AddDays(1),      // start date should be tomorrow
     totalOccurrences    = 9999,                          // 999 indicates no end date
     trialOccurrences     = 3
 ;

 #region Payment Information
 var creditCard = new creditCardType
 
     cardNumber      = "4111111111111111",
     expirationDate  = "1028"
 ;

我有一个棘手的要求,还有一件事要在这里确认。在网络应用中,如果用户在网站上注册,那么将向Authorize.Net api 收取 1 美元的费用,如果用户在注册后使用网站超过三天,则会自动重定向用户按月订阅(因此这里将收取另一笔费用)。

这是否可以通过Authorize.Net 处理,对于经常性账单,我是否需要将用户信用卡详细信息保存在网站的数据库中或类似的东西中?

【问题讨论】:

【参考方案1】:

你想做的是:

    创建一个customer payment profile(这样您就可以只收集一次他们的信用卡信息,以便在您到达第 3 步时再次使用它) Using that payment profile, charge您的初始 $1.00 金额 如果他们在三天后没有取消,using that payment profile, charge 他们第一个月的订阅付款。您将此作为“常规”交易进行,因为订阅不会立即开始。 Create a subscription using their payment profile ID(因此您不必自己存储他们的信用卡详细信息),开始日期设置为 30 天后。

请务必存储他们的个人资料 ID 和付款资料 ID 以供日后参考。您将需要它来收取他们的第一笔订阅费用并创建他们的订阅(您需要从您的网站触发这些,很可能是通过自动化过程)。在某些时候,您还需要在到期后update their credit card information。

【讨论】:

参考资料似乎很有帮助,感谢@John Conde。虽然这里有几件事需要明确,但要创建客户付款资料,我必须在网站的用户注册期间执行此操作。因此,我得到了一个客户资料 ID,作为我需要保存的响应。然后对于三天后的费用,我将使用该个人资料 ID。现在的问题是这个订阅的东西将如何自动转换,这是否需要使用Authorize.Net从网站上做一些事情(我相信,从网站上,它会以某种方式检查)? 我更新了我的答案以增加清晰度,并解决订阅不会立即收费的事实。 知道了,并且已经对@John Conde 的常规订阅进行了测试。应该有一个单独的系统来处理自动转换。感谢您抽出宝贵时间更新帖子并非常感谢。最后要明确的是,订阅会向用户收费,Authorize.Net 会定期(按月)进行。如何通知系统或网站已经为用户生成了经常性账单,比如我需要再次从网站上查看? 您可以使用webhooks 收到定期付款发生的通知并确定其状态。 这是一个全新的问题,应该是一个新问题

以上是关于使用 Authorize.Net 进行定期付款的主要内容,如果未能解决你的问题,请参考以下文章

Authorize.Net ARB API 获取定期付款的状态

如何在 Authorize.Net 定期付款中更改下一个周期计费日期

ActiveMerchant 如何处理 Authorize.net 上的定期付款取消信用卡帐户?

使用 authorize.net 获取已取消/过期信用卡的状态以进行定期计费

Authorize.net 自动定期账单支付 API

在 Authorize.NET ARB 中获取每个定期计费的交易