微信小程序> 微信小程序获取用户头像+昵称+openid,小程序登录!小程序发送模板消息

微信小程序获取用户头像+昵称+openid,小程序登录!小程序发送模板消息

浏览量:491 时间: 来源:晴天Smile
<!--index.wxml--><view class="container">  <view class="userinfo">    <button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>    <block wx:else>      <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>      <text class="userinfo-nickname">{{userInfo.nickName}}</text>    </block>  </view>  <view class="usermotto">    <text class="user-motto">{{motto}}</text>  </view></view>
//index.js//获取应用实例const app = getApp() Page({  data: {    motto: 'Hello World',    userInfo: {},    hasUserInfo: false,    canIUse: wx.canIUse('button.open-type.getUserInfo')  },   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)    app.globalData.userInfo = e.detail.userInfo     //获取openid    wx.login({      success: function (res) {        console.log(res.code)        //发送请求获取openid        wx.request({          url: '你的域名/openid.php?code=code', //接口地址          data: { code: res.code },          header: {            'content-type': 'application/json' //默认值          },          success: function (res) {            //返回openid            console.log(res.data.openid)            //向数据库注册用户,验证用户            var that = this;            wx.request({              url: '你的域名/server.php?nickname=' + e.detail.userInfo.nickName + '&avatarUrl=' + e.detail.userInfo.avatarUrl + '&openid=' + res.data.openid,              data: {               },              header: {                'content-type': 'application/json'              },              success: function (res) {                //打印用户信息                console.log(res.data)              }            })          }        })      }    })          this.setData({      userInfo: e.detail.userInfo,      hasUserInfo: true,    })  }})
<?php//声明CODE,获取小程序传过来的CODE$code = $_GET["code"];//配置appid$appid = "你的小程序APPID";//配置appscret$secret = "你的小程序APPSRCRET";//api接口$api = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";//获取GET请求function httpGet($url){    $curl = curl_init();    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);    curl_setopt($curl, CURLOPT_TIMEOUT, 500);    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);    curl_setopt($curl, CURLOPT_URL, $url);    $res = curl_exec($curl);    curl_close($curl);    return $res;}//发送$str = httpGet($api);echo $str;?>
<?phpheader("Content-type:text/html;charset=utf8");$nickname = $_GET["nickname"];$avatarUrl = $_GET["avatarUrl"];$openid = $_GET["openid"];$con = mysql_connect("数据库地址","数据库账号","数据库密码");mysql_select_db("数据库名", $con);mysql_query("INSERT INTO 表名 (nickname, avatarUrl, openid) VALUES ('$nickname', '$avatarUrl', '$openid')");echo "注册成功!";mysql_close($con);?>

微信模板消息

<form bindsubmit="submit" report-submit='true' >  <input type='text' value='填写openid' name="openid"></input>  <input type='text' value='填写ACCESS_TOKEN' name="token"></input>  <input type='text' value='填写模板ID' name="template"></input>  <input type='text' value='模板的第1个关键词' name="keyword1"></input>  <input type='text' value='模板的第2个关键词' name="keyword2"></input>  <input type='text' value='模板的第3个关键词' name="keyword3"></input>  <input type='text' value='模板的第4个关键词' name="keyword4"></input>  <input type='text' value='模板的第5个关键词' name="keyword5"></input>  <button form-type="submit" type="default">推送</button></form>// pages/mubanxiaoxi/mubanxiaoxi.jsPage({  data: {        },    submit: function (e) {    var openid = e.detail.value.openid;    var access = e.detail.value.token;    var template = e.detail.value.template;    var keyword1 = e.detail.value.keyword1;    var keyword2 = e.detail.value.keyword2;    var keyword3 = e.detail.value.keyword3;    var keyword4 = e.detail.value.keyword4;    var keyword5 = e.detail.value.keyword5;    var that = this;    wx.request({      url: '域名/muban.php?openid=' + e.detail.value.openid + '&token=' + e.detail.value.token + '&template=' + e.detail.value.template + '&formid=' + e.detail.formId + '&keyword1=' + e.detail.value.keyword1 + '&keyword2=' + e.detail.value.keyword2 + '&keyword3=' + e.detail.value.keyword3 + '&keyword4=' + e.detail.value.keyword4 + '&keyword5=' + e.detail.value.keyword5, //接口地址,我学习就用get,建议用post      data: {        open_id: openid,        tok_en: access,        temp_late: template,        form_id: e.detail.formId,        keyword_1: keyword1,        keyword_2: keyword2,        keyword_3: keyword3,        keyword_4: keyword4,        keyword_5: keyword5      },      success: function (res) {              // console.log(e.detail.formId);      // console.log(res.data);      }    })  }})//后端:muban.php<?php    //GET参数    $access_token=$_GET['token'];    $openid=$_GET['openid'];    $templateid=$_GET['template'];    $formid=$_GET['formid'];    $keyword1=$_GET['keyword1'];    $keyword2=$_GET['keyword2'];    $keyword3=$_GET['keyword3'];    $keyword4=$_GET['keyword4'];    $keyword5=$_GET['keyword5'];    echo $keywordd1;    //此处开始处理数据    $dataa=array(        "keyword1"=>array(                            "value"=>$keyword1,                            "color"=>"#9b9b9b"),        "keyword2"=>array(                            "value"=>$keyword2,                            "color"=>"#9b9b9b"),        "keyword3"=>array(                            "value"=>$keyword3,                            "color"=>"#9b9b9b"),        "keyword4"=>array(                            "value"=>$keyword4,                            "color"=>"#9b9b9b"),        "keyword5"=>array(                            "value"=>$keyword5,                            "color"=>"#9b9b9b")                );       $data=array();    $data['touser']=$openid;    $data['template_id']=$templateid;    $data['form_id']=$formid;    $data['data']=$dataa;           $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token;      $type="json";        if($type=='json'){//json $_POST=json_decode(file_get_contents('php://input'), TRUE);            $headers = array("Content-type: application/json;charset=UTF-8","Accept: application/json","Cache-Control: no-cache", "Pragma: no-cache");            $data=json_encode($data);        }        $curl = curl_init();        curl_setopt($curl, CURLOPT_URL, $url);        curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);        if (!empty($data)){            curl_setopt($curl, CURLOPT_POST, 1);            curl_setopt($curl, CURLOPT_POSTFIELDS,$data);        }        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers );        $output = curl_exec($curl);        if (curl_errno($curl)) {            echo 'Errno'.curl_error($curl);//捕抓异常        }        curl_close($curl);        echo $output;?>

 

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎