Android不同的app接入微信登陆时,获取的微信openId的是否一样

Android不同的app接入微信登陆时,获取的微信openId的是否一样,第1张

Android不同的app接入微信登陆时,获取的微信openId的不一样。

为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众号和应用,只有一个UnionID。

扩展资料

微信平台开发者注意事项:

1、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请前往微信开放平台接入。

2、在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。 3、在开发过程中,可以使用接口调试工具来在线调试某些接口。

4、每个接口都有每日接口调用频次限制,可以在公众平台官网-开发者中心处查看具体频次。 5、在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在公众平台官网-开发者中心处可以设置接口报警),来发现和解决问题。

6、公众平台以access_token为接口调用凭据,来调用接口,所有接口的调用需要先获取access_token,access_token在2小时内有效,过期需要重新获取,但1天内获取次数有限,开发者需自行存储,详见获取接口调用凭据(access_token)文档。

7、公众平台接口调用仅支持80端口。

参考资料:

微信公众平台技术文档-首页

要在uiapp微信小程序中实现踢人 *** 作,您需要使用微信小程序提供的接口和函数来实现以下步骤:

1 获取目标用户的OpenID或UnionID。

2 通过调用微信小程序的云开发数据库,查询目标用户在当前聊天室中的状态。如果目标用户处于在线状态,则将其踢出聊天室。

3 在云开发数据库中记录聊天室的状态,并更新目标用户的状态为“已踢出”。

4 将踢人 *** 作的结果发送给当前聊天室的其他成员,以通知他们目标用户已经被踢出。

下面是一个简单的示例代码来实现踢人 *** 作:

```

// 获取目标用户的OpenID或UnionID

var targetUserOpenID = "xxxxx";

// 查询目标用户在当前聊天室中的状态

const db = wxclouddatabase();

dbcollection('chatroom')

where({

openid: targetUserOpenID

})

get()

then(res => {

if (resdatalength > 0) {

const targetUser = resdata[0];

if (targetUserstatus === "online") {

// 将目标用户踢出聊天室

//

// 更新目标用户的状态为“已踢出”

dbcollection('chatroom')

doc(targetUser_id)

update({

data: {

status: "kicked"

}

});

// 将踢人 *** 作的结果发送给当前聊天室的其他成员

//

}

}

});

```

请注意,上述代码仅为示例,实际实现可能需要根据您的具体需求进行调整。

同一个微信开放平台下的相同主体的App、公众号、小程序的unionid是相同的,这样就可以锁定是不是同一个用户。微信针对不同的用户在不同的应用下都有唯一的一个openId, 但是要想确定用户是不是同一个用户,就需要靠unionid来区分。一般自己的后台都会有自己的一个用户表,每个用户有不同的userid。也就是说同一个用户在同一个微信开放平台下的相同主体的应用对应着相同的userid,unionid以及不同的openid。所以在用户登录进来的时候,我们只能靠微信返回给我们的unionid去判断是不是同一个用户,在去关联我们的用户表,拿到对应的userid

在微信开放平台官方公告中:

2021年4月28日24时后发布的小程序新版本,无法通过wxgetUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。

新增getUserProfile接口(基础库2104版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档: 《getUserProfile接口文档》

在微信开发者工具词库版本2104之后getUserInfo获取的将是微信的拟名信息。

使用uniapp官方提供的unigetUserProfile(OBJECT)接口

但是unigetUserProfile是为了支持新版微信小程序获取个人信息的接口,如官方描述一样,该接口只支持打包为微信小程序并且微信基础词库为2104以上时获取个人信息

参考: >

1app客户端传参数,只需要传购买时间,用户的openid。

微信小程序需要传code(code也是用来获取openid)和时间。

2回调地址需要在微信商户后台配置,否则无法接收支付成功的消息

3回调接收支付成功之后需要返回相应的xml给微信,否则微信会一直向回调地址发送回调信息。

4openid的获取需要注意后台的商户id主体是否一致,同样是微信登录,pc获取的openid与微信小程序和app上微信获取的openid是不一样的,但是他们的unionid是一致的,有兴趣的同学可以百度一下微信的openid和unionid。

5签名时,各参数顺序绝对不能乱,否则签名失败。

需要打开taptap,在登录界面下拉,选择第三方软件登录。跳转第三方软件后,根据提示进行授权,返回taptap即可登录。

第三方授权登录能够直接使用已有的QQ号、微信等登录。减少了注册环节,减少了因为注册而流失的用户。可以直接获取用户昵称、头像等信息,省去再次填写昵称、上传头像的麻烦。下面说说第三方授权登录正确的开发方式。

项目中涉及到3种授权登录形式,分别是微信、QQ和新浪微博。3种平台授权登录的流程大同小异,都是需要在其对应的开放网站上注册应用且产生appid及appsecert(或类似的其它叫法),并利用上述参数按照ahth2方式授权登录。授权登录成功后获取到你的应用相对于授权平台的唯一标识(微信、QQ叫openid,新浪微博叫uid)。这时候你要注意了,如果你此时开发的应用场景为移动App应用,并且将来打算开发相应的网页版的项目(反之亦然),你不仅仅需要保存微信、QQ的openid。你还需要想办法获取联合id -unionid(姑且这样称呼它吧)。

微信

目前,微信的第三方授权登录是由微信开放平台来承载的。根据其最新的文档,用户通过微信授权登录同时用户授权了获取userinfo时,则授权成功后会出现unionid字段,即微信开放平台会同时返回用户的openid和unionid(移动应用微信登录开发指南)。开发者只需要将openid和unionid都保存到数据库即可。

QQ

QQ授权登录平台要想保存unionid可能要稍微麻烦一点。需要联系QQ客服申请获取unionid的全限。详见常见问题 - 文档资料--QQ互联的问题1。按照其要求发送邮件申请unionid的访问权限即可。正常情况下QQ客服会很快开通权限并回复开发者的申请邮件,并在邮件中比较详细的说明调用接口获取unionid的方式。

新浪微博

新浪微博的移动App和网页版的唯一标识都是统一的uid,无需做额外的 *** 作。

1 获取openid

11 获取code

首先我们要调用接口来获取登录凭证,也就是code,从而获取用户们登录的状态信息,其中有一个唯一标示,就是openid,还有我们登录要用到的钥匙(session_key)。用户的基本数据我们都要用到钥匙来获取数据。

wxlogin({

//获取code

success: function(res) {

code = rescode //返回code

}

})

12 获取openid

拿到上一步获取的code,结合小程序 appid 和 secret 请求接口apiweixinqqcom/sns/jscode2sessionappid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 换取openid,与 openid 一同被返回的,还包括 session_key,其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。

wxrequest({

url: 'apiweixinqqcom/sns/jscode2sessionappid=APPID&secret=SECRET&js_code='+ code +'&grant_type=authorization_code',

data: {},

header: {

'content-type': 'application/json'

},

success: function(res) {

openid = resdataopenid //返回openid

}

})

2 获取用户信息

21 在appjs中创建该全局方法

//appjs

getUserInfo:function(cb){

var that = this

if(thisglobalDatapersonInfo){

typeof cb == "function" && cb(thisglobalDatapersonInfo)

}else{

//调用登录接口

wxlogin({

success: function () {

wxgetUserInfo({

success: function (res) {

thatglobalDatapersonInfo = resuserInfo

typeof cb == "function" && cb(thatglobalDatapersonInfo)

}

})

}

})

}

}

22 实例化全局方法获取用户信息

var that = this;

//调用应用实例的方法获取全局数据

appgetUserInfo(function (personInfo) {

//更新数据

thatsetData({

personInfo: personInfo

})

})

以上就是关于Android不同的app接入微信登陆时,获取的微信openId的是否一样全部的内容,包括:Android不同的app接入微信登陆时,获取的微信openId的是否一样、uiapp微信小程序实现踢人怎么 *** 作、不同主体的小程序之间怎么统一id,是用unionid吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9334036.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存