如何在您的条纹Webhook标头中获得条纹签名

我不是人

这是我第一次集成带区检出,但是我不断获得未定义的带区签名。

对于我的后端,我正在使用firebase云功能(不使用express),对于我的前端,我正在使用react-stripe-checkout。

我需要发送某种报头以便在后端接收它吗?

我现在发送的唯一标头是:

'Content-Type':'application / json',

后端代码:

    // @ts-ignore
const stripe = new Stripe('sk_test_123');

export const stripeHook = functions.https.onRequest(async (request, response) => {
    cors(request, response, async () => {

        const sig = request.headers['stripe-signature']; // this is always undefined
        // let sig = request.get('stripe-signature'); //also tried streaming

        const endpointSecret = 'whsec_123';

        let event;
        try {
            event = stripe.webhooks.constructEvent(request.rawBody.toString('utf8'), sig, endpointSecret);
        } catch (err) {
            console.log(err)
            response.send({status: 'error'});
            return;
        }

        // Handle Type of webhook

        const intent:any = event.data.object;

        switch (event.type) {
            case 'payment_intent.succeeded':


                console.log("Succeeded:", intent.id);
                break;
            case 'payment_intent.payment_failed':
                const message = intent.last_payment_error && intent.last_payment_error.message;
                console.log('Failed:', intent.id, message);
                break;
        }

        response.send({status: 'success'});
    })
})

朋友代码:

import React, {useState, useEffect} from 'react';
import StripeCheckout from 'react-stripe-checkout';
import { ToastContainer, toast } from "react-toastify";
import 'react-toastify/dist/ReactToastify.css';
import api from '../../services/apiMiddleware';

function Assessment(props: any) {

const [product] = React.useState({
    name: "Subscription",
    price: 99.99,
    description: "Monthly Subscription"
});

const handleToken = async (token: string) => {
    const response = await api.post(
        "stripeHook",
        { token, product }
    );

    if (response.status === "success") {
        toast("Success! Check email for details", { type: "success" });
    } else {
        toast("Something went wrong", { type: "error" });
    }
}

return (
    <div>
        <div className="paymentButtonTextWrapper">
            <ToastContainer />
            <div className="paymentButtonWrapper">
                <StripeCheckout
                    // @ts-ignore
                    token={handleToken}
                    stripeKey="pk_test_123"
                />
            </div>
        </div>
    </div>
)
}
卡尔列科

您会混淆Webhook和服务器上收取令牌费用的路由。它们是完全独立的东西。

您的前端代码使用(已弃用的Stripe Checkout集成,StripeCheckout React组件,其中有一个使用旧版Stripe的旧库)来创建表示客户卡详细信息的Token对象。然后,您的意图是将令牌发布到后端,后端路由将调用Stripe API来创建费用:https : //stripe.com/docs/payments/accept-a-payment-charges#web-create-收费

POST的后端中的实际代码似乎不是,而是Webhook端点。那是一个单独的概念,当付款成功时,Stripe会向您发送一个请求,并将包括该签名标头。但是在这里,您正在处理的请求来自您自己的前端代码,它不是weboook且没有Stripe签名。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

条纹Webhook错误500

来自分类Dev

条纹Webhook身份验证-Ruby

来自分类Dev

如何在高图轴上实现“斑马条纹”

来自分类Dev

如何在条纹PHP代码中设置金额

来自分类Dev

如何计算当前条纹?

来自分类Dev

如何在Java / Groovy中获得最长的条纹日和平均日?

来自分类Dev

如何逃避彩色条纹

来自分类Dev

如何制作条纹按钮

来自分类Dev

条纹PHP订阅Webhook

来自分类Dev

如何在UICollectionViewController的标头中访问UISegmentedControl?

来自分类Dev

条纹类'条纹\充电

来自分类Dev

条纹Webhook不返回user_id

来自分类Dev

条纹Webhook事件-匹配客户ID?

来自分类Dev

如何在vue2中添加条纹元素?

来自分类Dev

如何在javascript中创建具有不同条纹宽度的交替条纹图案

来自分类Dev

如何在Ubuntu 12.10中安装蓝色条纹动画壁纸

来自分类Dev

如何设置条纹宝石

来自分类Dev

如何在条纹PHP代码中设置金额

来自分类Dev

如何在PDF或Word文档中添加模糊条纹?

来自分类Dev

如何在Java / Groovy中获得最长的条纹日和平均日?

来自分类Dev

如何在进度条上添加条纹或斜线?

来自分类Dev

如何禁用条纹按钮

来自分类Dev

如何在条纹弹出窗口中更改“付款”按钮的颜色?

来自分类Dev

如何在laravel中向条纹发票pdf添加徽标

来自分类Dev

如何获得条纹令牌?

来自分类Dev

如何在 matplotlib 中制作条纹补丁?

来自分类Dev

如何实现条纹功能

来自分类Dev

如何在 Angular5 项目中隐藏条纹密钥

来自分类Dev

如何在 Sylius 中自定义条纹模板?