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


接上篇;上篇我们提到需要通过访问一个链接来获取微信用户的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

5、安装好微信调试工具,进入服务器端调试,填好你本地服务的访问地址;获取外部域名:

6、复制外部域名,填入到 网页授权获取用户基本信息

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的测试已结束,下图是运行结果

后续部分待补充…

你可能感兴趣的:(微信支付)