問題を含む可能性があるすべてのファイルを確認しましたが、他のAPIバージョンを使用しようとしました。コーダーマニュアル、ストライプでエラーが発生しました:この顧客には、支払い元がありません
class Users::RegistrationsController < Devise::RegistrationsController
before_filter :select_plan, only: :new
def create
super do |resource|
if params[:plan]
resource.plan_id = params[:plan]
if resource.plan_id == 2
resource.save_with_payment
else
resource.save
end
end
end
end
private
def select_plan
unless params[:plan] && (params[:plan] == '1' || params[:plan] == '2')
redirect_to root_url
end
end
end
そして最後に、私たち:
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
attr_accessor :stripe_card_token
def save_with_payment
if valid?
customer = Stripe::Customer.create(description: email, plan: plan_id, source: stripe_card_token)
self.stripe_customer_token = customer.id
save!
end
end
end
ここRegistrationsControllerがある:ここでは
は私User.rbファイルがありますer.jsファイル:
$(document).ready(function(){
Stripe.setPublishableKey($('meta[name="stripe_key"]').attr('content'));
$("#from-submit-btn").click(function(event) {
event.preventDefault();
$('input[type=submit]').attr('disabled', true);
var error = false;
var ccNum = $('#card_number').val(),
cvcNum = $('#card_code').val(),
expMonth = $('#card_month').val(),
expYear = $('#card_year').val();
if (!error) {
Stripe.createToken({
number: ccNum,
cvc: cvcNum,
exp_month: expMonth,
exp_year: expYear
}, stripeResponseHandler);
}
});
function stripeResponseHandler(status, response) {
var f = $("#new_user");
var token = response.id;
f.append('<input type="hidden" name="user[stripe_card_token]" value="' + token + '" />');
f.get(0).submit();
}
});
私はそれを解決するために、いくつかの方法を試してみましたけれども、私は実際には問題を見つける傾けること、不満を取得しています。誰かの助けを惜しみませんか?
どのようなバージョンの 'stripe' gemを使用しますか? – spickermann
1.16.1はgemのバージョンです。私が試したAPIは、最新のAPIと2015-01-11でした。 –
'1.16.1'はかなり古く、あなたが試した両方のバージョンより古いです。あなたは新しいバージョンに更新することを検討しましたか?現時点では、「1.38.0」が最新のバージョンです。 – spickermann