东莞微信网站建设报价,做外单什么网站好,wordpress弹窗插件,济南富库网络技术有限公司前言获取UnionID是开发微信公众号/小程序中很有必要的一个环节#xff0c;特别是针对一个公司拥有多个公众号小程序而推出的机制#xff0c;实现打通账户一体化#xff0c;用UnionID来区分多平台的唯一性。官方的解释#xff1a;如果开发者拥有多个移动应用、网站应用、和公… 前言获取UnionID是开发微信公众号/小程序中很有必要的一个环节特别是针对一个公司拥有多个公众号小程序而推出的机制实现打通账户一体化用UnionID来区分多平台的唯一性。官方的解释如果开发者拥有多个移动应用、网站应用、和公众帐号包括小程序可通过 UnionID 来区分用户的唯一性因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号包括小程序用户的 UnionID 是唯一的。换句话说同一用户对同一个微信开放平台下的不同应用unionid是相同的。相关公众号开发文章.NET Core 小程序开发零基础系列1——开发者启用并牵手成功.NET Core 小程序开发零基础系列2——小程序服务通知模板消息.NET Core 微信小程序支付——统一下单.NET Core 微信小程序退款——统一退款目录1、UnionID机制说明2、UnionID获取的6种途径代码实现3、总结1UnionID机制说明如果开发者拥有多个移动应用、网站应用、和公众帐号包括小程序可通过 UnionID 来区分用户的唯一性因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号包括小程序用户的 UnionID 是唯一的。换句话说同一用户对同一个微信开放平台下的不同应用unionid是相同的。2UnionID获取的6种途径代码实现绑定了开发者帐号的小程序可以通过以下途径获取 UnionIDUnionID获取的6种途径调用接口 wx.getUserInfo从解密数据中获取 UnionID。注意本接口需要用户授权请开发者妥善处理用户拒绝授权后的情况。如果开发者帐号下存在同主体的公众号并且该用户已经关注了该公众号。开发者可以直接通过 wx.login code2Session 获取到该用户 UnionID无须用户再次授权。如果开发者帐号下存在同主体的公众号或移动应用并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wx.login code2Session 获取到该用户 UnionID 无须用户再次授权。用户在小程序暂不支持小游戏中支付完成后开发者可以直接通过getPaidUnionId接口获取该用户的 UnionID无需用户授权。注意本接口仅在用户支付完成后的5分钟内有效请开发者妥善处理。小程序端调用云函数时如果开发者帐号下存在同主体的公众号并且该用户已经关注了该公众号可在云函数中通过 cloud.getWXContext 获取 UnionID。小程序端调用云函数时如果开发者帐号下存在同主体的公众号或移动应用并且该用户已经授权登录过该公众号或移动应用也可在云函数中通过 cloud.getWXContext 获取 UnionID。第一种UnionID获取调用接口 wx.getUserInfo从解密数据中获取 UnionID。注意本接口需要用户授权请开发者妥善处理用户拒绝授权后的情况。最常见的一种很多同学应该用的这种。流程用户授权——获取密钥——后端解密——获取UnionID开放平台绑定小程序如图前端授权获取密钥后端解密获取UnionIDvarsettingItem Senparc.Weixin.Config.SenparcWeixinSetting.Items[appID];
JsCode2JsonResult jsonResult SnsApi.JsCode2Json(settingItem.WxOpenAppId, settingItem.WxOpenAppSecret, param.Code);
if (jsonResult.errcode ! ReturnCode.请求成功)
{ return (false, jsonResult.errmsg);
} string unionID;
var encryptedData Senparc.Weixin.WxOpen.Helpers.EncryptHelper.DecodeEncryptedData(jsonResult.session_key, param.EncryptedData, param.IV);
DecodedUserInfo decodedUserInfo SerializerHelper.GetObjectDecodedUserInfo(encryptedData);
unionID decodedUserInfo.unionId;第二种UnionID获取如果开发者帐号下存在同主体的公众号并且该用户已经关注了该公众号。开发者可以直接通过 wx.login code2Session 获取到该用户 UnionID无须用户再次授权。流程关注了公众号——获取UnionID1、关注同一主体公众号就好了2、获取UnionID如下代码varsettingItem Senparc.Weixin.Config.SenparcWeixinSetting.Items[appID];
JsCode2JsonResult jsonResult SnsApi.JsCode2Json(settingItem.WxOpenAppId, settingItem.WxOpenAppSecret, param.Code);
if (jsonResult.errcode ! ReturnCode.请求成功)
{ return (false, jsonResult.errmsg);
} string unionID;
if (!jsonResult.unionid.IsNullOrEmpty())
{ unionID jsonResult.unionid; Console.WriteLine($unionID获取(无需解密)参数EncryptedData{param.EncryptedData},IV{param.IV},unionID{unionID});
}第三种UnionID获取如果开发者帐号下存在同主体的公众号或移动应用并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wx.login code2Session 获取到该用户 UnionID 无须用户再次授权。流程与第二步流程类似可以参数第四种UnionID获取用户在小程序暂不支持小游戏中支付完成后开发者可以直接通过getPaidUnionId接口获取该用户的 UnionID无需用户授权。注意本接口仅在用户支付完成后的5分钟内有效请开发者妥善处理。流程订单支付成功得到相应信息——通过接口请求getPaidUnionId得到UnionID1、支付流程请参考.NET Core 微信小程序支付——统一下单2、通过接口请求getPaidUnionId得到UnionID 以下两种方式任选其一。 a、微信支付订单号transaction_idhttps://api.weixin.qq.com/wxa/getpaidunionid?access_tokenACCESS_TOKENopenidOPENIDtransaction_idTRANSACTION_ID b、微信支付商户订单号和微信支付商户号out_trade_no 及 mch_id https://api.weixin.qq.com/wxa/getpaidunionid?access_tokenACCESS_TOKENopenidOPENIDmch_idMCH_IDout_trade_noOUT_TRADE_NO通过两个接口请求方式就可以得到UnionID第五种UnionID获取小程序端调用云函数时如果开发者帐号下存在同主体的公众号并且该用户已经关注了该公众号可在云函数中通过 cloud.getWXContext 获取 UnionID。流程关注了公众号——通过云函数获取UnionID官方函数说明代码示例const cloud require(wx-server-sdk)
exports.main async (event, context) { const { OPENID, APPID, UNIONID, ENV, } cloud.getWXContext() return { OPENID, APPID, UNIONID, ENV, }
} 第六种UnionID获取小程序端调用云函数时如果开发者帐号下存在同主体的公众号或移动应用并且该用户已经授权登录过该公众号或移动应用也可在云函数中通过 cloud.getWXContext 获取 UnionID。流程与第五种类似可以参数。3总结获取UnionID是开发微信众号/小程序很有必要的一个环节主要为了打通微信多平台体系下的唯一性6种方式中其实最关键的一步是将当前开发的应用绑定在开放平台上希望这篇文章让你对UnionID有些新的认识也希望这篇实战文章能够真正的帮助到你。相关推荐点击【在看】与好朋友一起分享