2016-05-06 7 views
0

私はいくつかのエラーを処理していましたが、どういうわけか私はそれを起こしましたが、私のコードにメタデータを追加する必要がありますが、有償メンバーStripe Ruby

有料会員は登録されていますが、プランが登録されていないため有料になっていません。

私はこれは私が:metadata[plan_id]=2を追加するために必要なものだと思い:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
    belongs_to :plan 
    has_one :profile 
    attr_accessor :stripe_card_token 

    def save_with_payment 
    if valid? 
     require "stripe" 
     Stripe.api_key = "********" 

     customer = Stripe::Customer.create(
      :description => email, 
      :source => stripe_card_token # obtained with Stripe.js 
     ) 
     self.stripe_customer_token = customer.id 
     save! 
    end 
    end 
end 






    /* global $*/ 
/* global Stripe*/ 
/* global Token*/ 
$(document).ready(function() { 
    Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content')); 
    // Watch for a form submission: 
    $("#form-submit-btn").click(function(event) { 
    event.preventDefault(); 
    $('input[type=submit]').prop('disabled', true); 
    var error = false; 
    var ccNum = $('#card_number').val(), 
     cvcNum = $('#card_code').val(), 
     expMonth = $('#card_month').val(), 
     expYear = $('#card_year').val(); 

    if (!error) { 
     // Get the Stripe token: 
     Stripe::Token.create({ 
     number: ccNum, 
     cvc: cvcNum, 
     exp_month: expMonth, 
     exp_year: expYear, 
     }, stripeResponseHandler); 
    } 
    return false; 
    }); // form submission 

    function stripeResponseHandler(status, response) { 
    // Get a reference to the form: 
    var f = $("#new_user"); 

    // Get the token from the response: 
    var token = response.id; 

    // Add the token to the form: 
    f.append('<input type="hidden" name="user[stripe_card_token]" value="' + token + '" />'); 

    // Submit the form: 
    f.get(0).submit(); 
    } 
}); 

答えて

1

あなたが顧客を作成し、同時に計画にそれらをサブスクライブしたい場合は、あなたがあなたのsubscription creation requestで​​パラメータを含める必要があり。 Rubyで

、それは次のようになります。注意点として

customer = Stripe::Customer.create(
    :description => email, 
    :source => stripe_card_token, # obtained with Stripe.js 
    :plan => "awesome_plan" 
) 

、顧客は、あなたがその属性ではなくdescriptionに電子メールを置きたいことがあり、email属性を持っています。必要ならばemail receiptsを利用することができます。

+0

そのように私にエラーが発生しました "この顧客には支払い元がありません" –

+0

私は2種類の基本顧客(無料)とPro(有料)を作っていますので、 ":metadata => ['plan_id ':2]」はまだ請求されていません –

+0

すでにdesc-> email thnx –