正确的服务器解密 是这样的:

$appid = '你的appid ';
$appsecret = '你的appsecret ';
$encryptedData = $_GET['encryptedData']; //由小程序传递
$iv = $_GET['iv'];  //由小程序传递


$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$appsecret.'&js_code='.$_GET['code'].'&grant_type=authorization_code';

$content = file_get_contents($url);
$content = json_decode($content);

$sessionKey = $content->session_key; //拿到session_key
 

由小程序传递是什么意思?

就是在小程序的JS文件中,写在wx.request函数里的data:属性里。

wx.request({
  url: 'https://www.tuziang.com/test.php',  //test.php就是上面的php文件
  data: {
    encryptedData: that.data.encryptedData,
    iv: that.data.iv,
    code: that.data.code,
  },
  method: 'GET', 
})

总结整个session_key获取的流程

1:注册微信小程序、登录后台在设置中获得appId和secret(密钥)

2:调用wx.login()接口获取登录凭证js_code

3:调用wx.request()接口把js_code发送到服务器后台

4:在服务器后台,已知appId、secret、js_code

然后调用官方提供的http接口,即可返回获取openId、session_key

获取到sessionkey后,就可以进行解密了。

小程序 php 获取openid和 微信运动步数 解密运动数据 https://www.tuziang.com/combat/280.html