0

Je travaillais pour effectuer des paiements via Stripe Gateway via Active Merchant gem sur une application Rails 4.Stripe Gateway sur Active Merchant ne fonctionnait pas

Je suis venu le long de cette script et fait un script similaire en regardant aussi d'autres ressources comme suit:

require 'active_merchant' 

# Use the TrustCommerce test servers 
ActiveMerchant::Billing::Base.mode = :test 

gateway = ActiveMerchant::Billing::StripeGateway.new(:login => Rails.application.secrets.stripe_secret_key) 

# ActiveMerchant accepts all amounts as Integer values in cents 
amount = 1000 # $10.00 

# The card verification value is also known as CVV2, CVC2, or CID 
credit_card = ActiveMerchant::Billing::CreditCard.new(
       :first_name   => 'Bob', 
       :last_name   => 'Bobsen', 
       :number    => '4242424242424242', 
       :month    => '8', 
       :year    => Time.now.year+1, 
       :verification_value => '000') 

purchase_options = { 
     :ip => "127.0.0.1", 
     :billing_address => { 
     :name  => "Ryan Bates", 
     :address1 => "123 Main St.", 
     :city  => "New York", 
     :state => "NY", 
     :country => "US", 
     :zip  => "10001" 
     } 
    } 

# Validating the card automatically detects the card type 
if credit_card.validate.empty? 
    # Capture $10 from the credit card 
    response = gateway.purchase(amount, credit_card, purchase_options) 

    if response.success? 
    puts "Successfully charged $#{sprintf("%.2f", amount/100)} to the credit card #{credit_card.display_number}" 
    else 
    raise StandardError, response.message 
    end 
end 

mais ce script génère une erreur avec le journal d'erreur suivant:

/Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/gateways/stripe.rb:469:in `rescue in api_request': uninitialized constant ActiveMerchant::Billing::StripeGateway::JSON (NameError) 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/gateways/stripe.rb:463:in `api_request' 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/gateways/stripe.rb:477:in `commit' 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/gateways/stripe.rb:100:in `block (2 levels) in purchase' 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/response.rb:59:in `process' 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/gateways/stripe.rb:98:in `block in purchase' 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/response.rb:45:in `tap' 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/response.rb:45:in `run' 
     from /Library/Ruby/Gems/2.0.0/gems/activemerchant-1.58.0/lib/active_merchant/billing/gateways/stripe.rb:93:in `purchase' 
     from stripe.rb:35:in `<main>' 

Can vous proposez une solution de contournement pour cette erreur?

+1

Avez-vous la gemme stripe installée? Postez votre fichier gem quand vous avez une chance. – bkunzi01

+0

hey, merci ... j'ai eu la gemme mais je n'ai pas besoin. merci pour l'aide :) – srishabh

+0

Je vous remercie d'un upvote! lol à tout moment;) – bkunzi01

Répondre

0

il ressemble à une solution simple comme suggéré par @ bkunzi01

Je pensais que marchand actif déjà utilisé bande dans son fichier ActiveMerchant::Billing::StripeGateway mais il ne fonctionne pas.

tout inclus require 'stripe' en haut du script et la transaction a été réussie :)

0

Je pense que vous avez juste besoin d'ajouter require 'JSON. il n'y a pas besoin d'ajouter une bande à votre gemfile