微信支付--网页版-V3-(2)

时间:2022-10-25 11:47:35

接上篇;上篇我们提到需要通过访问一个链接来获取微信用户的openid。接下来,我们看看需要准备哪些工具:

  • 1)、微信测试公众号
  • 2)、内网穿透工具
  • 3)、开发工具

1、微信测试公众号,我们可以用自己的微信在http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login扫一扫登录即可。
2、内网穿透工具可以使用Ngrok,但是要墙。好了,为了省去墙的步骤,我们用QQ的微信调试工具。http://blog.qqbrowser.cc/
3、开发工具就不说了。

4、进入测试网,点击登录,扫码后,我们就能拿到测试的appid和secret
微信支付--网页版-V3-(2)
5、安装好微信调试工具,进入服务器端调试,填好你本地服务的访问地址;获取外部域名:
微信支付--网页版-V3-(2)
6、复制外部域名,填入到 网页授权获取用户基本信息
微信支付--网页版-V3-(2)
7、后面就是代码了,使用maven建立一个简单的webapp工程;操作步骤就不一一列举了,直接上jsp代码:

    //1、 获取code
final Log log = Logs.get();
log.infof("%s", "我来自测试");
String APPID = MPConfigUtils.APP_ID;
String REDIRECT_URI = "http://iwgz43dorn.proxy.qqbrowser.cc/weixin_pay/weixin_pay.jsp";
REDIRECT_URI = URLEncoder.encode(REDIRECT_URI, "UTF-8");
String getCodeUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+APPID+"&redirect_uri="+REDIRECT_URI+"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
String code = request.getParameter("code");
if(code==null){
log.infof("%s %s", "code为空,跳转,url=",getCodeUrl);
response.sendRedirect(getCodeUrl);
}else{
log.infof("%s %s", "已获取到code,值为:",code);
}

//2、获取open id
if(code!=null){
String secrest = MPConfigUtils.APPSECRET;
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="+APPID+"&secret="+secrest+"&code="+code+"&grant_type=authorization_code";
String result = HttpUtil.sendGet(url, "UTF-8");
log.infof("%s %s", "请求获取Openid,结果为:",result);
}

8、日志打印部分使用nutz的log工具类
9、到此,获取openid的测试已结束,下图是运行结果
微信支付--网页版-V3-(2)
后续部分待补充…