代授权方实现业务

授权方已经把公众号、小程序授权给你的开放平台第三方平台了,接下来的代授权方实现业务只需一行代码即可获得授权方实例。

也请查阅微信规定的 接口权限说明

获取授权方实例

  1. officialAccount, err := services.OpenPlatformApp.OfficialAccount(appID, refreshToken, nil)
  2. miniProgram, err := services.OpenPlatformApp.MiniProgram(appID, refreshToken, nil)

appID 为授权方公众号 APPID,非开放平台第三方平台 APPID
refreshToken 为授权方的 refresh_token

帮助授权方管理开放平台账号

  1. // 代公众号实现业务
  2. account := officialAccount.Account
  3. // 代小程序实现业务
  4. account := miniProgram.Account
  5. // 创建开放平台账号
  6. result, err := account.Create()
  7. // 并绑定公众号或小程序
  8. // 将公众号或小程序绑定到指定开放平台帐号下
  9. result, err := account.BindTo(openAppID)
  10. // 将公众号或小程序从指定开放平台帐号下解绑
  11. result, err := account.UnbindFrom(openAppID)
  12. // 获取开放平台帐号下绑定的公众号或小程序
  13. result, err := account.GetBinding()

授权第三方平台注册的开放平台帐号只可用于获取用户 unionid 实现用户身份打通。
第三方平台不可操作(包括绑定/解绑)通过 open.weixin.qq.com 线上流程注册的开放平台帐号。
公众号只可将此权限集授权给一个第三方平台,授权互斥。

接下来的 API 调用等操作和公众号、小程序的开发一致,请移步到公众号或小程序开发章节继续进行开发吧。

代码示例

  1. // ArtisanCloud/PowerWechatTutorial.git/controllers/open-platform/authorizer-delegate.go
  2. // GetAuthorizerOfficialAccount 获取授权方实例 - 公众号
  3. func GetAuthorizerOfficialAccount(ctx *gin.Context) {
  4. appID := ctx.DefaultQuery("app_id", "")
  5. refreshToken := ctx.DefaultQuery("refresh_token", "")
  6. if appID == "" || refreshToken == "" {
  7. panic("app_id or refresh_token is empty ")
  8. }
  9. officialAccount, err := services.OpenPlatformApp.OfficialAccount(appID, refreshToken, nil)
  10. if err != nil {
  11. panic(err)
  12. }
  13. ipList, err := officialAccount.OfficialAccount.Base.GetCallbackIP(ctx)
  14. if err != nil {
  15. panic(err)
  16. }
  17. ctx.JSON(http.StatusOK, gin.H{"msg": "success", "data": ipList})
  18. }
  1. miniProgram, err := OpenPlatformApp.MiniProgram("[appID]", "[refreshToken]", nil)
  2. if err != nil {
  3. panic(err)
  4. }
  5. // 根据 code 获取 session
  6. data, err := miniProgram.Auth.Session("[code]")
  7. if err != nil {
  8. panic(err)
  9. }
  10. ctx.JSON(http.StatusOK, gin.H{"msg": "success", "data": data})

缓存中的token截图示例:

代授权 - 图1ipList

使用示例

参考: PowerWechatTutorial