0
この質問は以前に尋ねられましたが、どちらのリンクにも顕著な解決策はなく、リンクに記載されているすべての方法を試しても問題は解決しません。私はストライプ購読プランを生成しようとしていますが、そのプロセスを通過するたびに「この顧客は支払い元がありません」というエラーが表示されます。スクリーンショットで見ることができるように、stripe_card_tokenも生成され、console.logにはJSのトークンもあり、それも生成されます。関連するすべてのコードファイルを添付しました。StripeJSエラー:この顧客には未払いの支払い元がありません
このプロジェクトのGithubのリンク:https://github.com/arpit016/picture-app
Stripeerrorスクリーンショット
user.rbファイル
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
belongs_to :plan
attr_accessor :stripe_card_token
def save_with_payment
if valid?
customer = Stripe::Customer.create(
:source => stripe_card_token,
:email => email,
:plan => plan_id
)
self.stripe_customer_token = customer.id
save!
end
end
end
users.jsが
$(document).ready(function() {
Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'));
$('#form-submit-btn').click(function(event) {
event.preventDefault();
$('input[type=submit]').prop('disabled', true);
var error = false;
if (!error) {
Stripe.card.createToken($('#new_user'), stripeResponseHandler);
}
return false;
}); //form submission
function stripeResponseHandler(status, response){
if (status == 200){
//Get a reference to the form
var f = $('#new_user');
//Get the token from the response
var token = response.id;
console.log("Token:" + token);
//Add the token to the form
f.append('<input type="hidden" name="user[stripe_card_token]" value="' + token + '" />');
console.log(f)
//Submit the form
f.get(0).submit();
}
else {
$('#stripe_error').text(response.error.message).show();
$('input[type=submit]').attr('disabled', false)
}
}
});
を提出210件の
考案変形登録コントローラ
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
def select_plan
unless params[:plan] && (params[:plan] == '1' || params[:plan] == '2')
flash[:warning] = "Please select a valid membership"
redirect_to root_url
end
end
end
@Deepak:私は工夫のためのラインの下に含まれている必要があります私のapplication_controller.rbファイルを更新していませんでした –