@@ 117,31 117,29 @@ class CreditCardGateway
)
end
- def incr_antifraud!
+ def with_antifraud
+ result = antifraud || yield
+ return result if result.success?
+
@antifraud.each do |k|
REDIS.incr("jmp_antifraud-#{k}")
REDIS.expire("jmp_antifraud-#{k}", 60 * 60 * 24)
end
- end
- def payment_method_create_options
- options = { verify_card: true, make_default: true }
- if merchant_account
- options[:verification_merchant_account_id] = merchant_account.to_s
- end
- options
+ raise ErrorResult.for(result)
end
- def default_method(nonce)
- result = antifraud || @gateway.payment_method.create(
- customer_id: customer_id, payment_method_nonce: nonce,
- options: payment_method_create_options
- )
- return result if result.success?
-
- incr_antifraud!
- raise ErrorResult.for(result)
+ def default_method(nonce)
+ with_antifraud do
+ @gateway.payment_method.create(
+ customer_id: customer_id, payment_method_nonce: nonce,
+ options: {
+ verify_card: true, make_default: true,
+ verification_merchant_account_id: merchant_account.to_s
+ }
+ )
+ end
end
def remove_method(token)