ArtisanCloud/PowerWeChat

微信公众号Access_token不支持并发

lemon-1997 opened this issue · 6 comments

看了下代码,有重试刷新token机制,如果并发,是不是会重复顶掉之前的token(第一次拿token并发也会出现)。能否抽象Acess_token,调用方自己实现逻辑。
类似下面的代码

type AccessToken interface {
    GetAccessToken() (accessToken string, err error)
    RefreshAccessToken(accessToken string) (accessToken string, err error)
}

我们晚点试试,谢谢你的提问,欢迎加入我们的企业微信群,一起讨论,谢谢

你好,Lemon,请试一下这个方法

services.MiniProgramApp.AccessToken.Refresh()

image

你好,Lemon,请试一下这个方法

services.MiniProgramApp.AccessToken.Refresh()

image

你好,这个方法没看到有加锁的逻辑,如果是并发的情况,重复调用微信的接口,上一个token就会失效。我刚看到代码有抽象access_token,但是好像没有方法取替换

type (
	AccessTokenInterface interface {
		GetToken(refresh bool) (resToken *response2.ResponseGetToken, err error)
		Refresh() AccessTokenInterface
		ApplyToRequest(request *http.Request, requestOptions *object.HashMap) (*http.Request, error)
        } 
)

这是公众号的access_token

type OfficialAccount struct {
	*kernel.ServiceContainer

	Base        *base.Client
	AccessToken *auth.AccessToken
       .......
}
type AccessToken struct {
	*kernel.AccessToken
}

请加企业微信沟通这个问题,谢谢!