You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Stripe按钮未显示?网站集成Stripe Checkout网关问题

解决Stripe Checkout按钮不显示的问题

可能的原因及修复方案

1. 模板继承未正确使用块标签

你使用了{% extends 'basic.html' %},但直接在模板中写入<h2>和<script>标签,大概率是没将内容放入父模板定义的block块中。父模板basic.html通常会有类似{% block content %}的预留块,你需要把代码放到这个块内,否则渲染时这些内容不会被加载到页面里:

{% extends 'basic.html' %}

{% block content %}
<h2>buy</h2>

<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="{{ key }}"
        data-description="payment gateway"
        data-amount="500"
        data-locale="auto">
</script>
{% endblock %}

2. 确认{{ key }}已正确渲染为Stripe公钥

查看页面源代码,检查data-key的值是否是你的Stripe公钥(格式类似pk_test_xxxxxx),而不是原样显示{{ key }}。如果还是模板变量,说明视图函数没有将key传入模板上下文,需要在视图中补充:

# Django视图示例代码
from django.shortcuts import render

def buy_page(request):
    stripe_public_key = "你的Stripe公钥"
    return render(request, '你的模板文件名.html', {'key': stripe_public_key})

3. 检查旧版Checkout脚本的兼容性

你用的是Stripe旧版Checkout(checkout.js),现在Stripe官方推荐使用基于Stripe.js v3的新版Checkout。如果旧版脚本加载异常,可以切换到新版实现,示例代码如下:

{% extends 'basic.html' %}

{% block content %}
<h2>buy</h2>

<button id="checkout-button">立即购买</button>

<script src="https://js.stripe.com/v3/"></script>
<script>
    const stripe = Stripe('{{ key }}');
    const checkoutBtn = document.getElementById('checkout-button');

    checkoutBtn.addEventListener('click', async () => {
        // 调用后端接口生成结账会话
        const session = await fetch('/create-checkout-session', { method: 'POST' }).then(res => res.json());
        // 跳转到Stripe结账页面
        const result = await stripe.redirectToCheckout({ sessionId: session.id });
        
        if (result.error) {
            alert(result.error.message);
        }
    });
</script>
{% endblock %}

同时需要在后端实现/create-checkout-session接口,用于生成Stripe结账会话(具体逻辑可参考Stripe官方的会话创建规则)。

4. 用浏览器控制台排查JS错误

打开浏览器开发者工具(按F12)切换到控制台标签,查看是否有JS报错信息,比如脚本加载失败、权限错误等,这些都会直接导致按钮无法渲染。


内容的提问来源于stack exchange,提问作者Abdul Moiz Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:42:51