我目前正在使用ActiveMerchant与Authorize.net CIM集成。它工作得很好。但是,我在更新客户的付款资料信息时遇到问题(与此类似 - How can I update customer payment profile details in Authorize.NET (CIM)?)
基本上,当ActiveMerchant想要向Authorize.net发送API请求时,它需要我为信用卡支付细节构建一个CreditCard模型,而不是仅仅提供一个哈希。但是,为了更新客户的付款资料,我没有该卡的实际价值,只有屏蔽字符串,如“XXXX1111”表示卡号或“XXXX”表示到期日。
我无法使用这些值创建验证CreditCard模型,但我需要做的就是将屏蔽的值传递回Authorize.net。我找不到任何关于如何做到这一点的文档。还有其他人遇到过这个问题吗?
答案 0 :(得分:0)
您只需使用屏蔽的卡号创建无效的CreditCard对象。 CreditCard对象将检测到没有年份或月份,并使用“XXXX”表示完整的到期日期。 CreditCard对象本身将无效,但它将创建有效的更新请求。
这是我能弄清楚如何解决问题的唯一方法,因为update_customer_payment_profile方法希望能够在对象上调用'number'方法,因此它期望信用卡或其他具有'number'的对象