我正在寻找使用cron作业明智地收取付款所需的编程方法。
该网站要求使用Authorize.net收回定期付款。要保持PCI DSS合规性,信用卡信息不会存储在本地,并使用Authorize.net CIM集成,客户在托管页面输入其CC信息。因此,无法使用ARB订阅,这需要从网站发送CC信息。
据我所知,不可能使用CIM创建订阅,并且需要cron作业在需要时向客户收费。
我已经集成了CIM,但以下是我在使用cron job向客户收费时所关注的问题:
防止多次收费,以便不会向客户收取两次相同的订阅费用。 (我的方法是:我有一张表,每天都会收取付款和状态字段[varchar:paid / unpaid]。如果收费成功,状态将变为已付款。)
服务器故障:如果服务器仍然关闭,则不会收集任何付款。 (我的方法:cron工作将在过去3天内以未付款状态支付所有款项)
安全措施:需要知道需要采取何种安全措施?
我可能缺少的任何预防措施。
答案 0 :(得分:0)
ARB通过CIM正在进行中。所以你必须手动启动充电。 至于付款,有数百种方法可以实施,数以千计的方式可能出错。 PCI DSS 3.0有200多个清单项目需要注意。需要注意的基本任务可能是:
使用适当的锁定机制来防止竞争条件
记录您允许记录的所有内容
维护无法通过网络访问的服务器上的所有日志和其他数据,并查看有关这些内容的读写请求。
根据活动提出请求率限制并提出警告/阻止
修补所有服务器操作系统和软件,甚至是那些未被使用或用于其他服务器的软件。
关闭不必要的开放端口,并卸载不必要的软件
限制访问极少数人并仅通过安全系统访问
遵循严格的代码审核和测试程序
检查您的SSL证书here并使用强大的加密算法
正确哈希和限制用户密码,并对重置请求,送货地址更改等设置限制
密切关注您正在使用的软件的更新
监控日志以了解渗透请求并根据需要提高安全性
根据您的设置和要求,还有更多内容
答案 1 :(得分:0)
在你这边,你可以有一个字段(你可以作为订单号传递)是subscriptionNumber.dueDate或customerNumber.dueDate(意思是如果你的subscriptionNumber是123,它是5/24/2015,正在" 123.05-24-2015")
在发送到AuthNet之前,请确保此字段是唯一的。如果AuthNet处理但您没有收到回复,则仍然可能存在问题。