投票程序-微信打开投1票算1票,但APP中打开投一票算10票
微信打开投1票算1票,但APP中打开投一票算10票
做投票程序,为了推广APP需要设置APP中投票比微信投票收益更大。具体的是,微信打开投1票算1票,但APP中打开投一票算10票。这样用户在APP中投票获得的票数更多。
流程规划
打开HTML5
HTML5内容正常显示(不管登录或未登录,还是微信与APP打开,都可以先展示内容)
点击投票按钮
js判断打开方式
如果 (微信打开){
全局变量是否有unionid参数
如果(有unionid){
ajax调用投票接口,传入unionid,被投票用户
[后端]先判断用户表是否有unionid参数,无就返回给前端"unionid不存在",有就投票成功票数增加1
前端判断返回是否投票成功
如果(投票成功){
弹出提示,投票成功
} 如果 (unionid不存在){
弹出提示,用户信息错误,并清除全局变量中的unionid
} 如果 (投票失败){
弹出提示,投票失败
}
} 如果 (无unionid){
判断地址栏中有无CODE参数
如果(无code参数) {
跳转到获取code
} 如果(有code参数) {
ajax调用服务端接口获取unionid([后端]服务端记录unionid)
将unionid存入全局变量
}
}
} 如果(APP打开){
全局变量是否有access_token参数
如果(有access_token){
ajax调用投票接口,传入access_token,被投票用户
[后端]先判断用户表是否有access_token参数,无就返回给前端"access_token不存在",有就投票成功票数增加10
前端判断返回是否投票成功
如果(投票成功){
弹出提示,投票成功
} 如果 (access_token不存在){
弹出提示,用户信息错误,并清除全局变量中的access_token
} 如果 (投票失败){
弹出提示,投票失败
}
} 如果 (无access_token){
判断cookie中是否有登录了的access_token
如果(有access_token) {
ajax调用服务器接口获取用户uid([后端]服务端记录uid,access_token)
将uid,access_token记录到全局变量
} 如果(无access_token){
弹出提示,请登录APP
}
}
} 如果(其他方式打开) {
弹出框提醒下载APP
}
H5识别是微信打开还是APP打开
function checkAgent(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.indexOf('micromessenger') !== -1){
return 'wx'; // 使用微信打开h5
} else if (ua.indexOf('cpsapp') !== -1) {
return 'app'; // 使用APP打开h5
} else {
return 'other'; // 其他浏览器打开,建议做一个单独宣传页面,提供APP下载通道
}
}
微信打开获取用户标识
参考微信网页授权,按微信提供的步骤获取即可
APP打开获取用户标识
应用第三方的cookie库
使用第三方库获取http的cookie中的access_token字段信息
ajax调用接口POST:http://xxx.cn/api/v1/auth/auth/accesstoken传入参数access_token
调用成功,如果返回的存在access_token且uid>0表示access_token有效,如果返回access_token且uid=0表示无效
注意:ajax调用如果非同源需要做跨域
最后更新于 2021-09-29 18:18:52 并被添加「」标签,已有 665 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭