Propósito: Otros servicios utilizan el modo pull, realizan comunicación RPC a través de rpcx y obtienen tokens WeChat relevantes. Una plataforma de terceros utiliza la cuenta pública WeChat del usuario para deslizar los tokens relevantes de la plataforma de la cuenta oficial y la aplicación de la cuenta oficial alojada. El servicio no se puede detener durante más de 10 minutos (la instancia abre automáticamente el crontab). Principalmente cepilla el componente_access_token y el código de autenticación previo de la cuenta pública de terceros, y el Authorizer_access_token y Authorizer_refresh_token de la cuenta pública.
Beneficios: el servidor de retransmisión de la plataforma de terceros de la cuenta pública de WeChat se utiliza para actualizar el token propio de la plataforma de la cuenta pública y el token de la cuenta pública alojada, lo que permite a los desarrolladores centrarse únicamente en la lógica empresarial de la plataforma de terceros de la cuenta pública de WeChat, mientras que el La instancia empresarial se puede reiniciar repetidamente. No tendrá ningún impacto en las cuentas oficiales alojadas.
Método de almacenamiento: etcd almacena la dirección del servicio rpc, la plataforma de la cuenta oficial de WeChat y el token de la cuenta oficial, utiliza la función ttl de etcd y observa y actualiza
1. 服务启动后,立即读取etcd中的所有微信公众平台和公众号数据,加载到内存中。 并监听所有token
Estándar 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]