欢迎光临散文网 会员登陆 & 注册

前端学习日记(1)微信小程序获取openid问题

2023-07-04 16:16 作者:乱刮  | 我要投稿

首先在wx.login()获取登录jscode,然后把appid、secret、jscode放入下面接口对应位置

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

小程序代码实际格式应该是:

url:`https://api.weixin.qq.com/sns/jscode2session?appid=${APPID}&secret=${SECRET}&js_code=${JSCODE}&grant_type=authorization_code`

(注意使用的是反引号``,大写变量名则是前面就定义好的)

访问接口后返回数据中就包含openid和session_key等信息。


然而,在微信小程序调试时允许这么访问,如果小程序要发布上线,必须把上述访问过程放到后台执行。我在网上搜到的springboot后台接口代码:

import java.util.HashMap;

import java.util.Map;

import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.github.kevinsawicki.http.HttpRequest;


@Service

public class wx_jscode2openidServiceImpl implements wx_jscode2openidService{

    @Override

    public String jscode2openid(String code) {

        Map<String, String> data = new HashMap<String, String>();

        data.put("appid", "你的appid");

        data.put("secret", "你的secret");

        data.put("js_code", code);

        data.put("grant_type", "authorization_code");


        String response = HttpRequest.get("https://api.weixin.qq.com/sns/jscode2session").form(data).body();

        System.out.println("Response was: " + response);

        JSONObject obj= JSON.parseObject(response);//将json字符串转换为json对

        //System.out.println(obj);


        return obj.toString();

    }

}


其中的code即为jscode,由微信小程序端发送到后台。


在springboot的pom文件中需要导入依赖:

<!--http requset-->

        <dependency>

            <groupId>com.github.kevinsawicki</groupId>

            <artifactId>http-request</artifactId>

            <version>6.0</version>

        </dependency>


        <!--json 解析-->

        <!--https://mvnrepository.com/artifact/com.alibaba/fastjson -->

        <dependency>

            <groupId>com.alibaba</groupId>

            <artifactId>fastjson</artifactId>

            <version>1.2.49</version>

        </dependency>


小程序发布后会提醒“session_key存在明文传输”的问题,但暂时没发现影响。


前端学习日记(1)微信小程序获取openid问题的评论 (共 条)

分享到微博请遵守国家法律