一个小程序的首页对接后端实现用户注册
//index.js
//获取应用实例
const app = getApp()Page({globalData: {appid: 'wx4abc8f71681a89e0',//appid需自己提供secret: '5bf1b1597b219f8a6d77eab59314b885',//secret需自己提供,此处的
  },data: {motto: '技术带来改变',userInfo: {},openid: '',hasUserInfo: false,canIUse: wx.canIUse('button.open-type.getUserInfo')},//事件处理函数
  bindViewTap: function() {wx.switchTab({url: '../task/task'})},onLoad: function() {if (app.globalData.userInfo) {this.setData({userInfo: app.globalData.userInfo,hasUserInfo: true});} else if (this.data.canIUse) {// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况app.userInfoReadyCallback = res => {this.setData({userInfo: res.userInfo,hasUserInfo: true})}this.LoadUserSub(); //获取openid 并且注册
      } else {// 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({success: res => {app.globalData.userInfo = res.userInfothis.setData({userInfo: res.userInfo,hasUserInfo: true})}});}},getUserInfo: function(e) {app.globalData.userInfo = e.detail.userInfowx.setStorageSync('userInfo', e.detail.userInfo);//存储userInfothis.setData({userInfo: e.detail.userInfo,hasUserInfo: true})this.register();//注册
  },LoadUserSub: function () {var that = this;var user = wx.getStorageSync('user') || {};var userInfo = wx.getStorageSync('userInfo') || {};if ((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600)) && (!userInfo.nickName)) {wx.login({success: function (res) {if (res.code) {var d = that.globalData;//这里存储了appid、secret、token串  var l = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + d.appid + '&secret=' + d.secret + '&js_code=' + res.code + '&grant_type=authorization_code';wx.request({url: l,data: {},method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE,
              success: function (res) {var obj = {};obj.openid = res.data.openid;obj.expires_in = Date.now() + res.data.expires_in;wx.setStorageSync('user', obj);//存储openid
                that.setData({openid: res.data.openid,hasUser: true})}});} else {console.log('获取用户登录态失败!' + res.errMsg)}}});}},register:function(){var user = wx.getStorageSync('user') || {};var userInfo = wx.getStorageSync('userInfo') || {};var l = 'http://123.com/index.php/Home/Wechat/register';//这里的域名改下if (user.openid && userInfo.nickName) {wx.request({url: l,data: {openid: user.openid,nickName: userInfo.nickName,avatarUrl: userInfo.avatarUrl,gender: userInfo.gender,province: userInfo.province,city: userInfo.city,country: userInfo.country},method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE,
        success: function (res) {var userid = 0;wx.setStorageSync('userid', res.data);//存储userid
        }});}   }})

posted on 2019-04-04 10:11 baker95935 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/baker95935/p/10653329.html

一个小程序的首页对接后端实现用户注册相关推荐

  1. 小程序服务器搭建前后端交互,手把手带你搭一个简单的微信小程序(包括前后端)...

    开发小程序除了大家能看到的客户端,前端小程序是如何与后端服务器进行数据交互的呢? 本文将通俗易懂的讲一下.这里以nodejs为例来进行讲解 1.首先要在服务器上安装nodejs服务器: ​ wget ...

  2. 做一个小程序要多少钱?

    ​微信小程序相信大家都已经不会陌生,我们的日常生活中也会经常使用到微信小程序,从我们出门逛街买奶茶,坐公交刷地铁,偷懒不出门买菜,都会熟练的打开微信小程序- 那么问题来了,做一个小程序到底要多少钱? ...

  3. 微信小程序:独家微信社群人脉小程序源码带后端控制源码完整版端控带简单教程

    这是一款小编自营的一款人脉小程序系统 小编自营大概有三个多月了吧一直没有给大家公开 本款小程序群二维码自动采集推送的,所以大家不用担心没有群难运营 小编运营几个月不靠一丝一毫的推广每天自然流量都是一千 ...

  4. 如何从零开始开发一个小程序

    如何从零开始开发一个小程序 开始 申请账号 开发设置 开发工具 新建小程序 阅读文档 模版语法 项目架构 开始编写 基础语法 wx:for循环 wx:if判断 页面导航 自定义组件引用 样式修改 单行 ...

  5. 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么

    原标题:"Linux"小程序发布一个月后,我们发现了什么 这一个月来,这个小程序得到了八千多人的使用,一百多位贡献者实际参与了翻译贡献,其中贡献最高的"Datura st ...

  6. 一个软件公司需要多少前端_制作一个小程序商城需要多少钱?开发小程序公司哪家强?...

    搭建小程序商城能更好的为商家打造私域粉丝池,形成私域流量,因此,微信小程序自然成为了企业商家的首选. 随着线上的快速发展,微信小程序能力的升级,使小程序也存在多种类型,例如电商类.资讯类.预约类等等, ...

  7. 【项目实战课】微信小程序图像识别模型前后端部署实战

    欢迎大家来到我们的项目实战课,本期内容是<微信小程序图像识别模型前后端部署实战>.所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的实战讲解. ...

  8. c++如何让程序异常以后继续执行_微信商城小程序开发首页广告如何布局?c

    小程序的开发使得商家变现微信流量越来越便利,因此各类小程序制作数量不断增加,特别是不少商家选择制作商城类小程序.而在进行小程序制作的时候,是需要布局相应广告来进行流量转化的,那么微信商城小程序开发首页 ...

  9. 微信小程序开发打开另一个小程序的实现方法

    微信小程序打开另一个小程序,有两种方法:1.超链接:2.点击按钮. 全局配置: 跳转到其他小程序,需要在当前小程序全局配置中配置需要跳转的小程序列表,代码如下: App.json {..." ...

最新文章

  1. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)
  2. SAP UI5 应用开发教程之三十五 - 如何把本地开发的 SAP UI5 应用部署到 ABAP 服务器上试读版
  3. 1001. A+B Format
  4. docker安装文档
  5. linux /etc/group文件详解
  6. Delphi单元文件基本结构
  7. 【MySQL】ERROR 1412 (HY000) Table definition has changed, please retry transaction
  8. 转贴:Icon Design Guidelines, Android 2.0
  9. 关于verilog的一些基础知识整理
  10. 疯狂ios讲义疯狂连载之图像控件(UIImageView)
  11. 51单片机按键输入多位数_单片机实现八路抢答器实例分享
  12. 搜集的思源黑体相关的资料
  13. 高仿城通网盘php,城通网盘VIP订单存在业务隐患,可在线提权(含详细修复)
  14. 智道分析吊瓜子的营养价值
  15. java 字符串 哈希值_Java 获取字符串Hash值
  16. AE新手基础入门教程50套从新手到高手
  17. 给表格加上横向、纵向滚动条并对滚动条进行美化
  18. 【批处理DOS-CMD命令-汇总和小结】-磁盘管理和修复、磁盘和分区属性的管理、设置隐藏分区卷(convert、diskpart、chkdsk)
  19. Python 中的 astype() 和 .dtype
  20. 解决办法:git错误 error: failed to push some refs to ‘https://github.com/...

热门文章

  1. Android 使用ORMLite 操作数据库
  2. 用VS2005开发Sharepoint工作流,出现此安装不支持该项目类型。的处理
  3. 《认清C++语言》---谈谈const
  4. CSS3学习笔记1:结构性伪类选择器
  5. 使用Struts2验证框架实现输入校验
  6. easyNeurons 神经网络入门教程
  7. JVM源码分析-Java运行
  8. git cherry-pick命令
  9. 相机上的AE AF AWB AEB都表示的是什么?
  10. 人工智能是如何改变IT运维和DevOps的?