小程序授权+php后端(附demo源码)

小程序授权+php后端(附demo源码)

网上关于小程序授权和php的代码很多,都是一些关键代码。是针对有一定基础的人才能看懂并提供一定帮助。

想看到具体的效果还得自己搭建。比如lz想实现一个简单的小程序授权登录并存储授权用户信息到数据库的完整流程。

本地环境:

微信小程序开发工具

phpstudy集成环境(主要提供php的web访问,也可以是wamp。宝塔等)

navicate for Mysql (数据库可视化工具,用来看数据)

1.创建一个小程序

用测试号就行,创建好之后就是一个标准的授权登录页面

然后我们写入授权登录请求,不用操心,直接将下面的代码替换index.js文件中的代码就行

//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    motto: 'Hello World',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  //事件处理函数
  bindViewTap: function () {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  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
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  getUserInfo: function (e) {
    console.log(e);
    wx.login({
      success(res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'http://localhost:8080/tp5/public/wxlogin/Login/login',
            data: {
              encryptedData: e.detail.encryptedData,
              iv: e.detail.iv,
              code: res.code,
            },
            success(res) {
              console.log(res.data);
            }
          })
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    })
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})

 至此,小程序端就不用管了,我这里请求的本地接口是:http://localhost:8080/tp5/public/wxlogin/Login/login。记得换成你自己对应的接口,当然,不换也行,我们继续往下看

2.php后端

这里不贴代码。启动我们的拿来主义就行:

链接:https://pan.baidu.com/s/1-5IGhXGINMdu0MIdL_ej0Q 
提取码:56l1 
复制这段内容后打开百度网盘手机App,操作更方便哦

把下载好的tp5文件放到你的站点下就行。tp5是thinkphp.5.0的

微信授权需要微信的sdk,这里你不用管,已经帮你引入了,在extend文件下。

因为需要存储用户信息到数据库,所以这里我们配置下数据库:application文件下的database.php

配置成你自己的就行,然后我们来建个用户表:

我们开始奔放一下:

意料之外情理之中的报错了

我们再回想一下哪个步骤出错了呢。

下面是重点:小程序授权登录获取用户信息为了安全,可不是随便一个测试号就能获取用户信息的,得注册正儿八经的小程序。

百度搜索大法启动,创建一个真正属于自己的小程序。拿到小程序的appid和appsecret。

将小程序的appid改成自己的appid

同样的,php也要改:找到tp5文件下对应的目录,修改成自己的appid和appsecret。

(悄悄告诉你,其实不想注册去申请小程序也可以,正所谓我不入地狱谁入地狱。用我的,这样只用改小程序appid为:wx4609c539165ddfe6。即可)

一切准备就绪,我们继续happy一下:ok,成功啦

因为小程序登录接口已改,所以出一篇新的博客做补充说明:

参考博客:最新小程序授权+php后端(附demo源码)_流情的博客-CSDN博客

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
ASP微信小程序授权登录和微信支付是两个常见的功能需求,下面我以一个案例demo来简单介绍它们的实现。 假设我们要开发一个在线商城的微信小程序。首先,用户需要授权登录才能使用小程序的功能。我们可以使用微信提供的API,在小程序的登录页面上调用wx.login()方法获取用户的临时登录凭证code。然后将code发送给后台服务器,通过调用微信的接口,如wx.login()、wx.getUserInfo()等,获取用户的openId和userInfo等信息,并保存在后台数据库中。这样,在小程序开发过程中就可以使用用户的openId来标识用户,实现个性化的功能。 接下来,我们需要实现微信支付功能。在用户下单购买商品时,可以调用微信支付接口来完成支付流程。用户确认订单并选择支付方式后,会生成一个支付订单,并将订单相关信息发送给后台服务器。后台服务器根据订单信息调用微信支付的接口,如wx.requestPayment(),生成一个支付参数,并将支付参数返回给小程序前端页面。小程序前端页面接收到支付参数后,可以调用wx.requestPayment()方法进行支付。支付成功后,后台服务器会收到微信向回调URL发送的支付通知,商户可以在回调接口中更新订单状态等操作。 当然,实现微信授权登录和微信支付功能还需要考虑其他方面,如登录态的维护、支付结果的处理等。这只是一个简单的示例,实际项目中还需要根据具体需求进行适当的调整和优化。 以上是关于ASP微信小程序授权登录和微信支付的案例demo的简要介绍,希望对您有所帮助。如有其他问题,请随时提问。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值