2011-04-08 50 views
3

这可能是Payflow Pro技术支持的更多问题,但无论如何。我们正在尝试通过使用ActiveMerchant通过Payflow Pro付款对一张信用卡进行重复收费。我们需要客户提供信用卡信息一次,然后每月收取不同金额的费用。但是,Payflow API中似乎没有任何明确的STORE方法,即使它必须以某种方式可能,因为RECURRING结算是标准的一部分。我们是否错过了某些方法,或者有什么方法,或者我们必须使用一些解决方法?使用Payflow Pro重复充电

回答

4

好吧,最后自己想出来,只是供参考:这与经常性付款无关。您可以简单地通过发行并取消一些小额交易来“存储”信用卡,然后再将返还的request.token(或payflow条款中的'pn_ref')放在信用卡信息中,而不是放入信用卡信息。

像这样的东西应该工作

module ActiveMerchant #:nodoc: 
    module Billing #:nodoc: 
    class PayflowGateway 

     def store(credit_card, options = {}) 
     stored = purchase(1, credit_card) 
     return stored unless stored.success? 

     # we may charge some money we should not but I guess there is 
     # no better way for now 
     voided = void(stored.authorization) 
     return voided unless voided.success? 

     return stored 
     end 

    end 
    end 
end 
+0

抱歉这么晚在这里,是否有任何限制与pnref充电,我注意到,交易大于1000 $给出错误与pnref的支付请求,请建议。 – 2012-10-24 07:13:55

3

是的,这我也解决了这个问题的方式。 PNRefs对于实现您自己的定期结算系统非常方便......但是,我认为您还需要支付1美元的授权和无效金额,因为VISA和其他人开始严格使用这些帐户作为帐户验证。他们现在建议您使用ZDA(零美元金额)授权,它返回错误代码0和响应消息“已验证”而不是“授权”。这适用于所有商业银行 - 除非PayPal是您的商业银行,在这种情况下,您将收到错误代码4 - “无效金额”。如果PayPal是您的商业银行,他们只是推荐做1美元的授权和无效,显然他们承担了VISA费用。

这里是做零美元的授权上的费用的好文章和推荐做法: https://www.x.com/docs/DOC-1561