Zweck: Andere Dienste verwenden den Pull-Modus, führen RPC-Kommunikation über rpcx durch und erhalten relevante WeChat-Token. Das offizielle WeChat-Konto des Benutzers wird von einer Drittanbieterplattform verwendet, um die relevanten Token der offiziellen Kontoplattform und der gehosteten offiziellen Konto-App zu durchsuchen. Der Dienst kann nicht länger als 10 Minuten angehalten werden (die Instanz wird automatisch aufgerufen). Rufen Sie hauptsächlich den Component_access_token und den Preauthcode des öffentlichen Kontos des Drittanbieters sowie den Authorizer_access_token und den Authorizer_refresh_token des öffentlichen Kontos auf.
Vorteile: Der Relay-Server der WeChat-Plattform für öffentliche Konten von Drittanbietern wird verwendet, um das eigene Token der Plattform für öffentliche Konten und das gehostete Token für öffentliche Konten zu aktualisieren, sodass sich Entwickler nur auf die Geschäftslogik der Plattform von Drittanbietern für öffentliche Konten von WeChat konzentrieren können Die Geschäftsinstanz kann wiederholt neu gestartet werden. Dies hat keine Auswirkungen auf gehostete offizielle Konten
Speichermethode: etcd speichert die RPC-Dienstadresse, die offizielle WeChat-Kontoplattform und das offizielle Konto-Token, verwendet die TTL-Funktion von etcd und überwacht und aktualisiert
1. 服务启动后,立即读取etcd中的所有微信公众平台和公众号数据,加载到内存中。 并监听所有token
Standard go get
:
$ go get - v - u github . com / 1046102779 / wx_relay_server
type WxRelayServer struct {}
// 获取公众号平台基本信息,包括appid,token等信息
func ( t * WxRelayServer ) GetOfficialAccountPlatformInfo ( in * pb. OfficialAccountPlatform , out * pb. OfficialAccountPlatform ) error
// 存储托管公众号的token相关信息
func ( t * WxRelayServer ) StoreOfficialAccountInfo ( in * pb. OfficialAccount , out * pb. OfficialAccount ) error
// 获取公众号token信息, 用于公众号第三方平台发起公众号的托管业务
func ( t * WxRelayServer ) GetOfficialAccountInfo ( in * pb. OfficialAccount , out * pb. OfficialAccount ) error
// 刷新component_verify_ticket, 并同时中继服务器刷公众号第三方平台的其他token
func ( t * WxRelayServer ) RefreshComponentVerifyTicket ( in * pb. ComponentVerifyTicket , out * pb. ComponentVerifyTicket ) error
希望与大家一起成长,有任何该服务运行或者代码问题,可以及时找我沟通,喜欢开源,热爱开源, 欢迎多交流
联系方式:[email protected]