用户信息

小程序登录

登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见 小程序登录

  1. MiniProgramApp.Auth.Session(code)

获取用户手机号

适用于小程序基础库2.21.2

  1. MiniProgramApp.PhoneNumber.GetUserPhoneNumber(ctx, code)

微信官方文档

适用于2.21.2以前版本,这个可以用于服务端获取开放数据,例如:getUserInfo、getPhoneNumber等。

同时因为接口是通用的,所以这里返回的是[]byte类型,需要使用者自己去做json解析成结构体。

  1. data, err := MiniProgramApp.Encryptor.DecryptData(encryptData, sessionKey, iv)
  2. // string(data) 示例
  3. // {"phoneNumber":"13900000000","purePhoneNumber":"13900000000","countryCode":"86","watermark":{"timestamp":1641571004,"appid":"wxc1ebbc8236ffae2b"}}

加密信息是否由微信生成

检查加密信息是否由微信生成(当前只支持手机号加密数据),只能检测最近3天生成的加密数据

  1. hash =:"f0419b903ec2b01fb2bf4f1944f91db0cd1f298bf9758de8f1fe5b63bc85eff7"
  2. MiniProgramApp.Base.CheckEncryptedData(ctx, hash)

TIP

微信那边要求的encryptedData的hash值,你需要使用golang自带的sha256方法计算出对应的值。

  1. import "crypto/sha256"
  2. hashByte := sha256.Sum256([]byte("uo1yB3bOOuIfDu6neHV3D158CofGB9m7TxFQ8A/JcauWzhvmEAPygfFaqCgDTEmluLu7S8wMA=="))
  3. hash := hashByte[:]
  4. // output hash: f0419b903ec2b01fb2bf4f1944f91db0cd1f298bf9758de8f1fe5b63bc85eff7

微信官方文档

支付后获取用户UnionId

用户支付完成后,获取该用户的 UnionId,无需用户授权。本接口支持第三方平台代理查询

  1. MiniProgramApp.Base.GetPaidUnionID(ctx, &request.RequestGetPaidUnionID{
  2. OpenID: openid,
  3. // TransactionID: "",
  4. // MchID: "",
  5. // OutTradeNo: "",
  6. })

微信官方文档

使用示例

参考: PowerWechatTutorial