Skip to content

代授权方实现业务

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

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

获取授权方实例

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

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

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

go
// 代公众号实现业务
account := officialAccount.Account
// 代小程序实现业务
account := miniProgram.Account

// 创建开放平台账号
result, err := account.Create()

// 并绑定公众号或小程序
// 将公众号或小程序绑定到指定开放平台帐号下
result, err := account.BindTo(openAppID)

// 将公众号或小程序从指定开放平台帐号下解绑
result, err := account.UnbindFrom(openAppID)

// 获取开放平台帐号下绑定的公众号或小程序
result, err := account.GetBinding()

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

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

代码示例

go
// ArtisanCloud/PowerWechatTutorial.git/controllers/open-platform/authorizer-delegate.go
// GetAuthorizerOfficialAccount 获取授权方实例 - 公众号
func GetAuthorizerOfficialAccount(ctx *gin.Context) {
	appID := ctx.DefaultQuery("app_id", "")
	refreshToken := ctx.DefaultQuery("refresh_token", "")
	if appID == "" || refreshToken == "" {
		panic("app_id or refresh_token is empty ")
	}
	officialAccount, err := services.OpenPlatformApp.OfficialAccount(appID, refreshToken, nil)
	if err != nil {
		panic(err)
	}
	ipList, err := officialAccount.OfficialAccount.Base.GetCallbackIP(ctx)
	if err != nil {
		panic(err)
	}
	ctx.JSON(http.StatusOK, gin.H{"msg": "success", "data": ipList})

}
go
miniProgram, err := OpenPlatformApp.MiniProgram("[appID]", "[refreshToken]", nil)
if err != nil {
  panic(err)
}
// 根据 code 获取 session
data, err := miniProgram.Auth.Session(ctx, "[code]")
if err != nil {
  panic(err)
}
ctx.JSON(http.StatusOK, gin.H{"msg": "success", "data": data})

缓存中的token截图示例:

img.pngipList

使用示例

参考: PowerWechatTutorial

Released under the MIT license