微信小程序获取openid js及php代码


先看看小程序的前端js代码如何编写

wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId,
        console.log(res.code)
       
        wx.request({
          url: '后端php访问地址',
          method: "GET",
          data: {
            code: res.code
          },
          success: function (res) {
            if (res.statusCode == '200') {
              console.log(res);
            }
          }
        })
      }
 })
前端完了,我们来写后端代码
<?php

$appid = "wx1231312321";
$appsecret = "12312334343534534535";


$code = $_GET['code'];
if ($code == '') {
    echo json_encode([
        'code' => '201',
        'data' => 'code不能为空'
    ]);
    exit();
}

$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$appsecret.'&js_code='.$code.'&grant_type=authorization_code';
$result = http_curl($url);
$token = json_decode($result, 1);
if (isset($token['openid'])) {
    $openid = $token['openid']; //拿到openid
    echo json_encode([
        'code' => '200',
        'data' => $openid
    ]);
    exit();
}
echo json_encode([
    'code' => '201',
    'data' => "登陆失败"
]);
function http_curl($url) {
    $curlobj = curl_init();
    curl_setopt($curlobj, CURLOPT_URL, $url);
    curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, FALSE);
    $output = curl_exec($curlobj);
    curl_close($curlobj);
    return $output;
}

?>
好了,写完了,