2016-05-06 112 views
0

我一直在處理一些錯誤,一直得到和最近以某種方式我讓它發生,但有一件事我需要添加一個元數據到我的代碼,但不知道在哪裏以及我如何需要你的幫助。付費會員條紋紅寶石

付費會員正在註冊,但他沒有被收費,因爲它沒有計劃註冊。

我想這就是我需要添加: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" 
) 

作爲一個側面說明,客戶有一個email屬性,你可以把它放到電子郵件中該屬性而不是description。如果您願意,它可以讓您利用email receipts

+0

這樣它給我 「這個客戶已經沒有附加的支付來源」 –

+0

林做兩種類型的客戶基礎(自由)和專業版(付費)的錯誤,所以我嘗試添加「:元=> ['plan_id的數據類型':2]「仍然沒有收費 –

+0

已經修復desc->電子郵件thnx –