登录
首页 >  Golang >  Go问答

Stripe Webhooks 在 Go 中的测试

来源:stackoverflow

时间:2024-02-08 22:21:23 106浏览 收藏

本篇文章给大家分享《Stripe Webhooks 在 Go 中的测试》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

如何使用 stripe 的 go 库模拟从 stripe 到我的 webhook 的请求?

node 库具有 stripe.webhooks.generatetestheaderstring 方法,允许模拟此类请求:

const payload = {
  id: 'evt_test_webhook',
  object: 'event',
};

const payloadString = JSON.stringify(payload, null, 2);
const secret = 'whsec_test_secret';

const header = stripe.webhooks.generateTestHeaderString({
  payload: payloadString,
  secret,
});

const event = stripe.webhooks.constructEvent(payloadString, header, secret);

// Do something with mocked signed event
expect(event.id).to.equal(payload.id);

但是,我在 webhook 包上没有看到这样的方法。

我们有什么方法可以使用 go 库实现同样的目的吗?


正确答案


stripe go sdk 似乎不支持模拟 webhook。您可以参考 the Node implementation 自己实现一个,也可以使用支持 webhook 模拟的 separated mock server (stripe-ruby-mock)。

来自此 stripe-mock issue 的上下文。

新的 generatetestsignedpayload 函数(在 webhook package 中)已随 Stripe Go SDK version v73.1.0 添加,请参阅 PR #1520。这提供了与 stripe node sdk 的 generatetestheaderstring 类似的功能。

readme 中的 Testing Webhook signing section 提供了如何使用它的示例:

signedPayload := webhook.GenerateTestSignedPayload(&webhook.UnsignedPayload{Payload: payloadBytes, Secret: testSecret})
event, err := webhook.ConstructEvent(signedPayload.Payload, signedPayload.Header, signedPayload.Secret)

终于介绍完啦!小伙伴们,这篇关于《Stripe Webhooks 在 Go 中的测试》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>