当您使用 ActiveMerchant 创建网关对象时,您指定了商家的信息。因此,我认为您的软件可以代表多个商家进行交易。只需将他们的信息保存在数据库中并根据需要使用。我建议您加密商家的信息。
见 gem attr_encrypted
我不确定您为什么不想存储商家信息。也许您应该对此多说一些。
如果商家使用的是 Authorize.Net,您只需要每个商家的 Authorize.net 登录名和密码。
我建议您在一个支付网关(例如 Authorize.net 或其竞争对手之一)上标准化您的所有商家。处理一个网关已经够难了,为什么要处理多个网关。此外,您可以轻松成为 authorize.net 的经销商,并为您的商家简化流程。
你是对的,你真的不想延迟信用卡交易,直到商家登录并提供他们的商家信息:
根据商家登录的频率,您将违反商家关于及时收费和批处理的卡协议。
您无法向最终客户提供快速反馈——他们的收费成功与否?
您必须存储完整的信用卡号和其他信息。这需要高水平的 pci 合规性。不值得。无论如何,您都被禁止存储 CVV 编号。因此,根据您从最终客户那里获得的其他信息,您的收费将具有较低的资格(对您的商家而言更高的交易成本)。
我的建议是存储商家信息。-- 加密它,不要让商家(或其他任何人)看到它。只允许商家替换他们的信息,不要让他们看到当前信息以便编辑它。这将减少错误的人看到商家信息的安全风险。