Satchmo的Authorize.net支付模块支持部分授权的万事达卡吗?

2 投票
1 回答
519 浏览
提问于 2025-04-16 16:36

我有一个Django应用,它和Satchmo一起使用,Satchmo是一个电商框架。现在,Authorize.net开始支持对万事达卡和发现卡的部分授权,具体信息可以在这里这里找到。有人知道Satchmo中的Authorize.net支付模块是否支持这些变化吗?我在邮件列表上找到了相关讨论,但答案并不明确。

(我把这个问题同时发到了Satchmo用户列表和开发者列表,还在IRC频道询问,但没有人回复。Satchmo项目似乎大部分时间都没有更新,所以我希望这里有人能帮忙。)

1 个回答

4

简单来说,Satchmo的Authorize.net模块不支持部分授权。不过,实际上实现你想要的功能可能比你想的要简单:

  1. 这份文档详细说明了如何在Authorize.net系统中提交部分付款:

    • 在每个交易中发送 x_allow_partial_auth=true
    • 当第一次交易成功批准了部分金额后,会生成一个分割付款ID并返回。你需要在后续的交易中使用 x_split_tender_id=<value> 传递这个值。(如果在同一个请求中同时包含分割付款ID和交易ID,就会出错。)
  2. Satchmo的文档介绍了如何创建自定义支付模块。

如果你查看 /payment/modules/authorizenet/processor.py 中的Authorize.net支付模块的源代码,你会发现大部分工作已经为你做好了。你可以扩展这个Authorize.net类,或者直接把代码复制粘贴到一个新的模块,比如 /payment/modules/authorizenetpartial/,然后按照Authorize.net文档中的说明进行调整。只需把 x_split_tender_id 替换成你的 x_trans_id,再进行一些试错调整,你就可以顺利进行下去了。

撰写回答