微信小程序获取手机号码

前台:微信开发者工具

后台:idea

后台jar包

1.需要的jar包

        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>

 2.java后台请求access_token码

package com.example.demo.demo;
 
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import net.sf.json.JSONObject;

public class AccessToken {
	 private static final String APPID = "";//微信appid
	 private static final String APPSECRET = "";//对应的appid的秘钥
//提示要和小程序对应在创建小程序时需要测试号或者开发号


	public static String getAccessToken() throws Exception{
	     String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
	    		 +APPID+ "&secret="+APPSECRET;
	     System.out.println("URL for getting accessToken accessTokenUrl="+accessTokenUrl);
		System.out.println(accessTokenUrl);
	     URL url = new URL(accessTokenUrl);
	     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 
	     connection.setRequestMethod("GET");
	     connection.setDoOutput(true);
	     connection.setDoInput(true);
	     connection.connect();
 
	     //获取返回的字符
	     InputStream inputStream = connection.getInputStream();
	     int size =inputStream.available();
	     byte[] bs =new byte[size];
	     inputStream.read(bs);
	     String message=new String(bs,"UTF-8");
 
	     //获取access_token
	     JSONObject jsonObject = JSONObject.fromObject(message);
	     String accessToken = jsonObject.getString("access_token");
	     String expires_in = jsonObject.getString("expires_in");
	     System.out.println("accessToken="+accessToken);
	     System.out.println("expires_in="+expires_in);
	     return accessToken;
	 }
	
	public static void main(String[] args){
	   try {
		AccessToken.getAccessToken();
	} catch (Exception e) {
	 e.printStackTrace();
	}
		
	}
}

3.用一个普通的请求来返回access_token码

//随便创建一个controller类把下面代码加入其中
@RequestMapping("/hc")
    public String aabbc() throws Exception {
        return AccessToken.getAccessToken();
}

4.前台先写一个button

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">手机号</button>

5.如果请求报错说请求不和法就请按照下面步骤操作

 

6.在其对应的ts(js)中加入

getPhoneNumber (e) {//获取手机号码需要两个东西1. code前台用户点击确认获取码 
//后台java2.access_token 
    //其中获取access_token码又需要appid也就是用户编号还需要用户秘钥
    var tehn=this;
    const aa = wx.request({
      url: 'http://localhost:8080/hc', 
      data: {

      },
      header: {
        'content-type': 'application/json'
      },
      success (res) {//res.dataaccess_token
        console.log(res.data);    
        const requestTask = wx.request({
          url: 'https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token='+res.data, 
          method:"POST",
          data: {
            code: e.detail.code ,
            // access_token:res.data
          },
          header: {
            'content-type': 'application/json'
            // 'content-type': 'application/x-www-form-urlencoded'
          },
          success (res) {
            console.log(res.data)
          }
        })
      }
    })
  }

 7.最后它会输出手机号码

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吃亏了的程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值