gpt4 book ai didi

javascript - Stripe::InvalidRequestError(该客户没有附加付款来源)

转载 作者:行者123 更新时间:2023-12-03 07:42:35 25 4
gpt4 key购买 nike

将客户数据和 token 发送回 Stripe 的服务器时似乎存在问题。我目前正在使用测试 api 来进行虚拟交易。但是,我却无缘无故地过不了这一关。我已尝试一切方法来修复此错误。我将在下面发布代码和错误消息。

Subscriptions_Controller.rb

class SubscriptionsController < ApplicationController
before_filter :authenticate_user!, except: [:new]
before_action :redirect_to_signup, only: [:new]

def show

end

def new
@subscription = current_user.subscription
if @subscription.active
@stripe_customer = Stripe::Customer.retrieve(@subscription.stripe_user_id)
@stripe_subscription = @stripe_customer.subscription.first
end
end

def create
token = params[:stripeToken]
customer = Stripe::Customer.create(
:source => token,
:plan => "gbsubscriptionlevel1",
:email => current_user.email
)

rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to new_subscription_path

current_user.subscription.stripe_user_id = customer.id
current_user.subscription.active = true
current_user.subscription.save

redirect_to users_index_path
end

def cancel_subscription
@stripe_customer = Stripe::Customer.retrieve(
current_user.subscription.stripe_user_id
)
@stripe_subscription = @stripe_customer.subscription.first
end

private
def redirect_to_signup
if !user_signed_in?
session["user_return_to"] = new_subscription_path
redirect_to new_user_registration_path
end
end
end

_stripe_form.html.erb

<div class="container">
<%= form_tag subscription_path, id: 'payment-form' do %>

<form action="/subscription" method="POST" id="payment-form">
<span class="payment-errors"></span>

<div class="row">
<div class="col-xs-4">
<label>
<span>Card Number</span>
<input value="4242 4242 4242 4242" class="form-control" type="text" size="20" data-stripe="number"/>
</label>
</div>
</div>

<div class="row">
<div class="col-xs-1">
<label>
<span>CVC</span>
<input value="123" class="form-control" type="text" size="4" data-stripe="cvc"/>
</label>
</div>
</div>

<div class="row">
<div class="col-xs-1">
<label>MM</label>
<input value="12" class="form-control" type="text" size="2" data-stripe="exp-month" placeholder="01"/>
</div>
<div class="col-xs-1">
<label>YYYY</label>
<input value="2019" class="form-control" type="text" size="3" data-stripe="exp-year" placeholder="2020"/>
</div>
</div>

<div class="row">
<div class="col-xs-1">
<br/>
<button class="btn btn-primary-outline" type="submit">Create Subscription</button>
</div>
</div>
</form>
<% end %>
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
</div>

订阅.js

Stripe.setPublishableKey('pk_test_tmBNNUvHTmtWXLhSL1q647iH');

function stripeResponseHandler(status, response) {
var $form = $('#payment-form');

if (response.error) {
// Show the errors on the form
$form.find('.payment-errors').text(response.error.message);
$form.find('button').prop('disabled', false);
} else {
// response contains id and card, which contains additional card details
var token = response.id;
// Insert the token into the form so it gets submitted to the server
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
// and submit
$form.get(0).submit();
}
}

jQuery(function ($) {
$('#payment-form').submit(function (event) {
var $form = $(this);

// Disable the submit button to prevent repeated clicks
$form.find('button').prop('disabled', true);

Stripe.card.createToken($form, stripeResponseHandler);

// Prevent the form from submitting with the default action
return false;
});
});

Stripe .rb

Stripe.api_key = ENV["STRIPE_API_TEST_SECRET_KEY"]

最佳答案

当您尝试将订阅附加到未附加卡 token 的某人时,通常会出现该响应。从您的代码中,我大胆猜测您遇到了 CardError,然后尽管如此,尝试附加订阅,但这是行不通的。

关于javascript - Stripe::InvalidRequestError(该客户没有附加付款来源),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com