Stripe Go SDK中的密钥变量正在重写



我正在使用Stripe Go SDK处理我的网站上的支付。

https://github.com/stripe/stripe-go

概述

我的产品以商家为基础。有多个商家,每个商家都有自己的数据库。因此,每个商家都有不同的支付条纹密钥。

我面临着一个奇怪的问题。

当我们在代码中设置密钥来调用stripeapi时,它是在SDK的stripe.Key变量中设置的。现在,如果这个变量是为一个商家设置的,并且它可能在一个事件上有多个条带请求,比如获取数据,那么就更新它

stripe.Key = SECRET KEY

现在,如果另一个商家同时发起另一个条带请求,则在stripe.Key变量中,更新第二个商家的密钥。

由于这个原因,我得到了以下错误:

{
"chargeid": "",
"code": "resource_missing",
"declinecode": "",
"docurl": "https://stripe.com/docs/error-codes/resource-missing",
"err": {},
"httpstatuscode": 404,
"msg": "No such payment_intent: pi_XXXXXXXXXXXXXXXXXXXXX",
"oautherror": "",
"oautherrordescription": "",
"param": "intent",
"paymentintent": null,
"paymentmethod": null,
"requestid": "REQ_ID",
"setupintent": null,
"source": null,
"type": "invalid_request_error"
}

在同时请求的情况下,我如何防止这种情况发生。SDk内部有什么办法吗?

您必须使用client.API来设置每个请求的API密钥,而不是全局密钥。下面是一个例子(见下文(。你在GitHub或Stripe文档中有更详细的解释。

import (
"github.com/stripe/stripe-go/v71"
"github.com/stripe/stripe-go/v71/client"
)
sc := &client.API{}
sc.Init("sk_key", nil)

最新更新