重定向到条带结帐

redirect to stripe checkout

我在 rails 5 上的 ruby 中有我的网站,我正在使用 this link 更新我的条纹支付网关,但点击我的按钮不会将我重定向到条纹结账,这是我在控制器中的内容:

def index

    Stripe.api_key = Rails.configuration.stripe[:secret_key]

    session = Stripe::Checkout::Session.create(
      payment_method_types: ['card'],
      line_items: [{
        price: 'price_1HKywnBS16ZK5Vr3GYCRvTir',
        quantity: 1,
      }],
      mode: 'subscription',
      success_url: 'https://www.my_site.network/success?session_id={CHECKOUT_SESSION_ID}',
      cancel_url: 'https://www.my_site.network/cancel',
    )

end

我认为错误可能是在我的索引视图的 javascript 代码中替换会话 ID 时出现的错误:

<button id="checkout-button">Pay</button>

<script src="https://js.stripe.com/v3/"></script>

<script type="text/javascript">

    var stripe = Stripe('<%= Rails.configuration.stripe[:publishable_key] %>');

    var checkoutButton = document.getElementById('checkout-button');


    checkoutButton.addEventListener('click', function() {
      stripe.redirectToCheckout({
        // Make the id field from the Checkout Session creation API response
        // available to this file, so you can provide it as argument here
        // instead of the {{CHECKOUT_SESSION_ID}} placeholder.
        sessionId: '<%=session.id%>'
      }).then(function (result) {
        // If `redirectToCheckout` fails due to a browser or network
        // error, display the localized error message to your customer
        // using `result.error.message`.
      });
    });




</script>

您不必使用 '<%=session.id%>'。 您必须使用的值是您在 session 中存储的全部值:Stripe::Checkout::Session.create 在你的控制器中。