微信小程序开发,请求服务器API的方法使用的是微信官方提供的wx.request()方法。在开发中发现,每一个请求都会生成一个独立的PHPSESSID,如下图示:

搜索后得知,这是由于wx.request()造成的。如果直接使用浏览器请求并不会出现这种情况。

解决方式如下:

  通过登录接口获取到用户的session_key 和 open_id,设置session信息如下:

  $3rd_session = md5(session_key . $open_id)
  $_SESSION[$3rd_session ] = session_key . '|' . $open_id;

  服务器生成此用户的session_id,接口返回 3rd_session 和 session_id。

  在其他接口请求中,在header中设置cookie的值:session_id:

  header = header || {
  'content-type': 'application/x-www-form-urlencoded;',
  'Cookie': 'PHPSESSID=session_id值'
  }

  并在接口中带上参数session=3rd_session,此时服务端获取到的就是同一个session_id,根据3rd_session从$_SESSION得到用户的openid

  

微信小程序请求API接口PHPSESSID变化的解决方式的更多相关文章

  1. 微信小程序通过api接口将json数据展现到小程序示例

    这篇文章主要介绍了微信小程序通过api接口将json数据展现到小程序示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧实现知乎客户端的一个重要知识前提就是,要知道怎么通过 ...

  2. 微信小程序通过api接口将json数据展现到小程序上

    实现知乎客户端的一个重要知识前提就是,要知道怎么通过知乎新闻的接口,来把数据展示到微信小程序端上. 那么我们这一就先学习一下,如何将接口获取到的数据展示到微信小程序上. 1.用到的知识点 <1& ...

  3. 微信小程序之 ----API接口

    1. wx.request 接口    可在文件 wxs中操作,连接服务器处理数据    参数    ① url ② data ③ header ④ method ⑤ dataType   回调   ...

  4. 微信小程序调用api接口

    请求的第三方微信url大概有3种 1)$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&s ...

  5. 微信小程序 请求签名接口超时 踩坑路。。

    我们公司一般做开发都是先用测试机的接口调试功能,等功能都调试的差不多了,再换成线上的正式接口,因为正式接口要验证签名. 这几个功能都调试的差不多了,准备换成线上正式接口了,结果却出了问题,提示请求超时 ...

  6. 微信小程序request(ajax)接口请求封装

    微信小程序request(ajax)接口请求封装 最近在进行小程序的编写,需要调用后端接口,经常要用到wx.request方法,所以就自己封装了一下,简化一下代码,如果能给大家提供帮助更好,在封装的时 ...

  7. 微信小程序wx.request接口

    微信小程序wx.request接口 wx.request是小程序客户端与服务器端交互的接口 HTTPS 请求 一个微信小程序,只能同时(同时不能大于5个)有5个网络请求 wx.request(OBJE ...

  8. 微信小程序请求数据

    微信小程序请求数据,在页面展示,可以在onLoad生命周期中进行请求. 1.新建目录http,新建文件http.js 2.在js文件中暴露需要使用的变量 var baseUrl = 'http://1 ...

  9. 图解微信小程序---调用API操作步骤

    图解微信小程序---调用API操作步骤 什么是API API(Application Programming Interface,应用程序编程接口:是一些预先定义的函数,目的是提供应用程序与开发人员基 ...

随机推荐

  1. 【工具】Idea GenerateAllSetter

    使用工具自动生成setter方法调用,不是idea原生态生成getter/setter https://github.com/gejun123456/intellij-generateAllSetMe ...

  2. MFC-注册热键

    0.测试环境 VS2015专业版,基于对话框的MFC程序, 例子地址:http://pan.baidu.com/s/1qX9IRec 1.MFC工程设置 类向导->消息->WM_HOTKE ...

  3. android调试工具 adb命令学习

    查看Android版本号 adb shell getprop ro.build.version.release getprop ro.build.version.release 5.1 查看Andro ...

  4. sqlserver2008 批量插入数据

    private DataTable GetTableSchema() { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataCol ...

  5. 20175305张天钰Java结对编程四则运算(二)

    Java结对编程四则运算(二) 一.题目描述及要求 Git提交粒度不要太粗,建议一个文件/一个类/一个函数/一个功能/一个bug修复都进行提交,不能一天提交一次,更不能一周一次,参考Commit Me ...

  6. PTA_输入符号及符号个数打印沙漏(C++)

    思路:想将所有沙漏所需符号数遍历一遍,然后根据输入的数判断需要输出多少多少层的沙漏,然后分两部分输出沙漏.   #include<iostream> #include<cstring ...

  7. 理解WindowManagerService

    --摘自<Android进阶解密> *WMS的职责* 1)窗口管理 WMS负责窗口的启动.添加和删除,另外窗口的大小和层级也是由WMS进行管理的 2)窗口动画 WMS的动画子系统Windo ...

  8. CICD - Teamcity 配置之二:SSIS Package 自动部署

    首先需要将SSIS Project check in 到 git 中, Teamcity 会到 git 上取到code, build, 然后publish 到指定的服务器上,比如:Dev, QA, S ...

  9. STM8L052低功耗模式

    Stm8L系列单片机的低功耗有五种模式: § wait模式 § Lowpower run模式 § Lowpower wait模式 § Active-haltwith full RTC模式 § Halt ...

  10. Linux top命令的用法详细详解

    首先介绍top中一些字段的含义: VIRT:virtual memory usage 虚拟内存1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等2.假如进程申请100m的内存,但实际只使用 ...