如何在Stripe Checkout中强制重定向到除success_url之外的其他页面?

程序员

题:

我当前使用的是Webhook:checkout.session.completed收到事件后,即使我尝试使用res.redirect(“ / page”)(Node.js)将其重定向到另一个页面,默认情况下也会将用户重定向到success_url。万一我的履行代码失败,是否真的没有办法将他重定向到另一个页面?(即:付款成功,但是履行代码失败,因此重定向到success_url是不合适的)


参考:

https://stripe.com/docs/payments/checkout/one-time

https://stripe.com/docs/payments/checkout/fulfillment#webhooks

“在重定向客户之前,checkout.session.completed Webhook已发送到您的服务器。您的Webhook确认(任何2xx状态代码)将触发客户将其重定向到success_url”


我尝试过的是:

将Express.js 4的res.status(401)链接到重定向

因此,如果我要发送4xx状态代码,那是否不应该阻止success_url重定向?这确实是我观察到的。

但是我似乎无法重定向到另一个页面。我试过了: 

res.status(401).location('/submit/wait/').end();
res.redirect(401, '/submit/wait/');
res.set('Content-Type', 'text/html');
res.status(401).send('<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0; url=/submit/wait"></head></html>`);Is there really no way to then just redirect to another page ?  

router.post('/webhook', bodyParser.raw({type: 'application/json'}), (req, res) => {

    const sig = req.headers['stripe-signature'];
    let event;

    try {
        event = stripe.webhooks.constructEvent(req.rawBody, sig, endpointSecret);
    } catch (err) {
        return res.status(400).send(`Webhook Error: ${err.message}`);
    }

    if (event.type === 'checkout.session.completed') {

        const session = event.data.object;

        (async () => {

            try {
                //FULFIL ORDER CODE

            } catch(e) {
                console.log("ERROR FULFILLING ORDER: "+e);


                res.status(401).location('/submit/wait/').end();

            }
        })();
    }
    else {
        console.log("DEFAULT RESPONSE");

        // Return a response to acknowledge receipt of the event
        res.json({received: true});
    }

});
贾斯汀·迈克尔(Justin Michael)

checkout.session.completed发送到您的Webhook终结点事件仅是为了通知您Checkout会话已完成。除了响应成功或失败之外,您不能使用事件通知来更改Checkout会话。

客户端重定向延迟到您响应该checkout.session.completed事件之前的原因是允许您在用户重定向到之前在服务器上执行履行任务success_url(例如更新数据库,进行其他API调用等)。这样可以确保客户登陆到反映其成功购买的页面上。

此过程success_url本身不能更改,但是您可以在服务器上设置一个页面,该页面将根据Checkout Session ID将用户重定向到所需的任何页面,并将success_url页面设置为该页面。您可以使用占位符在其中包含Checkout会话IDsuccess_url{CHECKOUT_SESSION_ID}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将整个站点重定向到除“根页面”之外的其他站点

来自分类Dev

重定向到其他页面后如何在onclick函数之外获取值

来自分类Dev

如何基于PHP中的get url将用户重定向到其他页面?

来自分类Dev

如何使用.htaccess将所有页面重定向到除首页以外的其他域

来自分类Dev

如何从索引页面重定向到其他页面

来自分类Dev

如何在Java中从Stripe接收Webhook

来自分类Dev

如何重定向到iframe中但应作为其他页面加载的页面?

来自分类Dev

Stripe Checkout不会重定向到Checkout页面Express

来自分类Dev

用户确认后如何重定向到其他页面

来自分类Dev

用户确认后如何重定向到其他页面

来自分类Dev

登录后如何重定向到其他页面

来自分类Dev

在angularjs中成功登录后如何重定向到其他页面?

来自分类Dev

Beego:如何在会话超时时重定向到其他页面

来自分类Dev

如何在 Stripe 元素中检查 Stripe 优惠券的有效性?

来自分类Dev

如何在 Alert React Native 中重定向其他页面

来自分类Dev

如何在Stripe中更改结帐表单的语言?

来自分类Dev

如何在订阅费用中填充Stripe的描述字段?

来自分类Dev

如何在Stripe(Rails)中创建费用和客户

来自分类Dev

如何在Flutter中从Stripe信用卡获取tokenID

来自分类Dev

Stripe Connect Express Webhook-如何在用户完成Stripe Connect Express表单并重定向后如何触发Stripe Webhook

来自分类Dev

如果用户尝试通过URL访问其他站点页面,如何在C#MVC 4.5中重定向未登录到登录页面的用户

来自分类Dev

如何在项目点击时重定向到Android中的其他Activity

来自分类Dev

如何在Meteor中重定向到同一主机上的其他端口?

来自分类Dev

如果在免费的jqgrid列中单击,如何执行ajax调用并重定向到其他页面

来自分类Dev

如果发生数据库错误,如何将页面重定向到其他页面

来自分类Dev

Python,Flask-如何在模板文件夹中创建可点击的链接并重定向到其他页面?

来自分类Dev

如何捕获 URL 参数并基于 url 参数重定向到 angular4 中的其他组件

来自分类Dev

如何在屏幕上打印一条消息,然后重定向到其他页面 php/js

来自分类Dev

如何在React.js中重定向到页面

Related 相关文章

  1. 1

    如何将整个站点重定向到除“根页面”之外的其他站点

  2. 2

    重定向到其他页面后如何在onclick函数之外获取值

  3. 3

    如何基于PHP中的get url将用户重定向到其他页面?

  4. 4

    如何使用.htaccess将所有页面重定向到除首页以外的其他域

  5. 5

    如何从索引页面重定向到其他页面

  6. 6

    如何在Java中从Stripe接收Webhook

  7. 7

    如何重定向到iframe中但应作为其他页面加载的页面?

  8. 8

    Stripe Checkout不会重定向到Checkout页面Express

  9. 9

    用户确认后如何重定向到其他页面

  10. 10

    用户确认后如何重定向到其他页面

  11. 11

    登录后如何重定向到其他页面

  12. 12

    在angularjs中成功登录后如何重定向到其他页面?

  13. 13

    Beego:如何在会话超时时重定向到其他页面

  14. 14

    如何在 Stripe 元素中检查 Stripe 优惠券的有效性?

  15. 15

    如何在 Alert React Native 中重定向其他页面

  16. 16

    如何在Stripe中更改结帐表单的语言?

  17. 17

    如何在订阅费用中填充Stripe的描述字段?

  18. 18

    如何在Stripe(Rails)中创建费用和客户

  19. 19

    如何在Flutter中从Stripe信用卡获取tokenID

  20. 20

    Stripe Connect Express Webhook-如何在用户完成Stripe Connect Express表单并重定向后如何触发Stripe Webhook

  21. 21

    如果用户尝试通过URL访问其他站点页面,如何在C#MVC 4.5中重定向未登录到登录页面的用户

  22. 22

    如何在项目点击时重定向到Android中的其他Activity

  23. 23

    如何在Meteor中重定向到同一主机上的其他端口?

  24. 24

    如果在免费的jqgrid列中单击,如何执行ajax调用并重定向到其他页面

  25. 25

    如果发生数据库错误,如何将页面重定向到其他页面

  26. 26

    Python,Flask-如何在模板文件夹中创建可点击的链接并重定向到其他页面?

  27. 27

    如何捕获 URL 参数并基于 url 参数重定向到 angular4 中的其他组件

  28. 28

    如何在屏幕上打印一条消息,然后重定向到其他页面 php/js

  29. 29

    如何在React.js中重定向到页面

热门标签

归档