小程序可以通过向自己的服务器发送请求获取用户的openid,然后将openid存储在用户的本地缓存中,每次请求时携带openid即可识别用户身份。在使用webview套用小程序的过程中,可以通过一些手段将用户的openid传递到webview中,在webview中获取openid后进行本地存储,然后在需要识别用户身份的时候读取该openid即可。当然,这种方法需要配合小程序后台接口实现,确保传递的openid是正确的并具有唯一性。
经常看到有点的小伙伴在群里问小程序用户数据解密流程,所以打算写一篇关于小程序用户敏感数据解密教程;
加密过程微信服务器完成,解密过程在小程序和自身服务器完成,即由 encryptData 得到如下数据:
准备知识:
以上3点对于理解解密流程非常重要 。
根据官方文档,我梳理了大致的解密流程,如下:
重点在6、7、8三个环节。
AES解密三个参数:
服务端解密流程:
下面结合小程序实例说明解密流程:
最后的效果如下:
如果你的小程序没有绑定微信开放平台,解密的数据中不包含unionid参数
小程序绑定微信开放平台连接
从解密的数据看,算得上敏感的数据只有appid;个人觉得openid不是敏感数据,每个用户针对每个公众号会产生一个安全的openid;openid只有在appid的作用域下可用。除非你的appid也泄露了。
那么可以从解密数据得到appid,微信小程序团队是何用意呢?还是前面那句话,openid脱离了appid就什么都不是,openid和appid一起为了方便小程序开发者做到不同小程序应用之间用户区分和隔离,同时能够将微信用户体系与第三方业务体系结合。
所以我认为敏感数据解密的主要用处不是解密后回传给客户端,而是在服务端将微信用户信息融入到自身业务当中。
时间:2018年11月13号
最近, 公司抽风, 项目中需要为我们小程序中"服务的商户"开通微信支付功能
与同事们研究决定,还是申请为微信服务商比较靠谱~
但是~ 不靠谱的事来了 废话不多说 一步步的来
第一步: 申请为服务商 ( 有重点!!!!!!!统一下单坑点之一 )
先去 公众平台 申请一个 服务号(只有服务号才可以支付和申请商户号,必须是认证过的300元)
注意:保存好appId 与 appSecret 统一下单中的appId指的是这个!!!!!!!!!
申请完成后, 点击微信支付, 成为服务商,上传资料 审核300元
申请页面如下:(这个是已经申请好了的)
在这里, 说明一下 微信支付服务商是从已经认证过的服务号里申请的, 默认与该服务号绑定 微信乱七八糟的名字很多这里的服务号指公众号
申请小程序交纳300元认证费 注意:此次说明小程序主体信息与微信支付服务商主体信息一致(如果不一致请看官方坑爹文档)
申请开放平台~ 再来300元~ 在开放平台把公众号与小程序关联起来
第二步:微信公众号服务号、小程序与微信支付服务商的账号准备好之后, 接下来配置微信支付服务商账号
登录微信商户平台
进行配置 账户中心->API安全->设置秘钥
秘钥这是个大坑~~~留着继续往下走遇到了再回来
接下来是 服务商功能->特约商户申请
商户申请审批成功之后 (此时微信会给你邮箱发送特约商户的商户号和密码,与一般支付的那种商户号一样,可以登录)
特约商户管理->配置(还在服务商账号下)
这里的支付授权目录必须要正确 (别忘记了微信支付服务商的支付目录以及回调地址在服务商账户里设置!这里的回调是地址!是地址!是地址!和目录是有区别的!!!)
特约商户APPID配置我们填写之前申请好的小程序appID否则无法取到官方所为的sub_openId
第三步: 统一下单
根据官方的文档 >
微信 小程序 转发涉及以下4个方法:
1、PageonShareAppMessage({})
设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据
2、wxshowSahreMenu()
用户点击右上角后,显示“转发”按钮
3、wxhideShareMenu()
隐藏转发按钮,无视 PageonShareAppMessage({})
4、wxgetShareInfo({})
根据 shareTicket 获取已加密的群信息
把转发流程切分:转发前配置->转发时->转发到群组后打开->二次转发
转发流程图:
这里写描述
U1: 用户
T1,T2,T3:表示转发票据,即 shareTicket
G1,G2,G3:群组
1转发前配置
在页面 onLoad 方法添加
withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。
shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket 。
shareTicket 有两个用途:
用户主动转发后,获取转发到目标群群信息,对应上图UI。
用户在群组中打开小程序,获取群组信息,对应上图 G1 群组中的用户。
2转发时获取群信息
当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId + openGid)。
shareTickets 是一个数组,每一项是一个 shareTicket ,对应一个转发对象,转发给用户不会包含shareTicket。
拿到 shareTicket 之后,使用 wxgetShareInfo({}) 方法传入 shareTicket 参数,wxgetShareInfo({}) 里回调函数中包含 已加密的群信息和 向量IV。
3转发到群组后打开
用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。
在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数。
4二次转发
二次转发重复前3个步骤,没什么可说的,但是有一个方向值得探讨,可否把小程序转发路径比作转发链,进而生成转发树,用数据结构方法(树、马尔科夫链)处理发现群组与群组,群组与成员之间微妙关系。
如开头那张图,我们很容易看出转发链和转发树。
转发链:U1 > G1 > G2
转发树:U1 > G1 > G2 & G3
以上就是关于小程序套用webview如何识别用户全部的内容,包括:小程序套用webview如何识别用户、微信小程序之用户数据解密、微信支付服务商-服务商小程序支付脱坑等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)