如何在您的条纹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

如何获得条纹令牌?

来自分类Dev

条纹Webhook错误500

来自分类Dev

条纹PHP订阅Webhook

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何逃避彩色条纹

来自分类Dev

如何制作条纹按钮

来自分类Dev

如何设置条纹宝石

来自分类Dev

如何禁用条纹按钮

来自分类Dev

如何实现条纹功能

来自分类Dev

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

来自分类Dev

条纹Webhook身份验证-Ruby

来自分类Dev

条纹Webhook不返回user_id

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

条纹类'条纹\充电

来自分类Dev

如何计算当前条纹?

来自分类Dev

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