1. 获取code
1.1关注公众号后采用https://open.weixin.qq.com/connect/qrconnect
https://open.weixin.qq.com/connect/qrconnect?appid=wxd01b****c55a&redirect_uri=my-***.com%2fcheckout%2fcart&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
1.2 h5网页版采用
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx87a****09713&redirect_uri=http%3A%2F%2F10.88.75.139%3A8082%2Fpay%2Fwechat.htm&response_type=code&scope=snsapi_base&state=1#wechat_redirect
2.根据appid,secret,code获取openId
详细见http://572327713.iteye.com/blog/2388251
/*
* (non-Javadoc)
* @see com.baozun.store.manager.wechat.WechatAccessTokenService#getOpenIdByAccessTokenUrl(java.lang.String, java.lang.String)
*/
@Override
public String getOpenIdByAccessTokenUrl(String code,String authType){
// 用来存储用户的openid
String openid = "";
// 过滤无效数据
if (StringUtils.isBlank(code) || StringUtils.isBlank(authType)){
return null;
}
// 构建accessTokenUrl
String accessTokenUrl = this.buildGetAccessTokenUrl(authType, code);
LOGGER.debug("wechat get access token url is {}", accessTokenUrl);
// 从接口中取出accessToken数据
String json = HttpUtils.doGetReq(accessTokenUrl);
JSONObject jsonobject = JSONObject.fromObject(json);
// 如果调用接口成功,不会出现Errcode值
if (Validator.isNullOrEmpty(jsonobject.get("errcode"))){
openid = jsonobject.get("openid").toString();
LOGGER.info("## Get access token success,open_id is [{}]", openid);
}else{
LOGGER.error(
"## Get access token failed, status code is:[{}],errmsg is:[{}]",
jsonobject.get("errcode"),
jsonobject.get("errmsg"));
}
return openid;
}
/*
* (non-Javadoc)
* @see com.baozun.store.manager.wechat.WechatAccessTokenService#buildGetAccessTokenUrl(java.lang.String)
*/
@Override
public String buildGetAccessTokenUrl(String oAuthType,String code){
//顺序链接获取微信code的url配置参数,转换于url地址
Map<String,String> connectionParam=new LinkedHashMap<String, String>();
connectionParam.put("appid", appId);
connectionParam.put("secret", appSecret);
String getAccessTokenUrl;
// 根据授权方式选择不同url地址链接 (链接参数地址的顺序不能改变)
if (WechatConstants.AUTH_TYPE_2.equalsIgnoreCase(oAuthType) || WechatConstants.AUTH_TYPE_3.equalsIgnoreCase(oAuthType)){
connectionParam.put("code", code);
connectionParam.put("grant_type", WechatConstants.GRANT_TYPE_AUTHORIZATION_CODE);
getAccessTokenUrl=ParamUtil.addParameterSingleValueMap(oAuthAccessTokenUrl, connectionParam, null);
}else{
connectionParam.put("grant_type", WechatConstants.GRANT_TYPE_CLIENT_CREDENTIAL);
getAccessTokenUrl=ParamUtil.addParameterSingleValueMap(globalAccessTokenUrl, connectionParam, null);
}
LOGGER.info("-------buildGetAccessTokenUrl of [{}]",getAccessTokenUrl);
return getAccessTokenUrl;
}
分享到:
相关推荐
java 微信公众号支付封装类,传入回调接口、用户openid、订单号、ip、fee即可无脑验签,返回数据直接前端调用。 用户授权获取用户信息,重定向方案设定。 推送通知 封装工具类,传入openid或者 List<openid>,可单推...
内容概要:微信公众号从获取openID,到公众号支付和页面发起支付。 适合人群:刚接触微信公众号开发的开发人员,此代码为借鉴;了解微信的接口对接模式,以此为基础来对接其他接口。 阅读建议:此代码以Servlet未...
微信支付工具类,这是一个Jsp版的微信公众号支付接口及调用实例,微信网页授权获取用户基本信息,先获取 code,跳转 url 通过 code 获取 openId,URLEncoder.encode 后可以在backUri 的url里面获取传递的所有参数,...
微信h5授权获取用户openId的方法和步骤,用于用户登录和注册,代码已经封装好,下载就能用
刚完成了一个和微信公众号支付相关的功能,整理了相关资源,按下面步骤使用: 1)公众号要求能够获取用户的openid权限 2)公众号开通了微信支付功能,下载了微信支付安全证书到本机,该文件地址需要在第5步进行设置 ...
基于java原生servlet的微信公众号h5支付,包含授权获取openid方法,以最基础的方式实现,适于用初学者学习,页面用的html实现,maven构建.
微信网页授权获取当前登录用户信息参照(WeiXinWYSQ.aspx页面),红包支付参照(PayForWeiXin.ashx),获取公众号下面所有用户OpenID用户信息参照(GetRmbByUnionId.ashx),所有内容都已经调通,记得修改密钥地址和...
本篇文章给大家介绍微信公众号支付如何获取用户openid,需要授权回调页面域名等一系列途径实现此功能,需要的朋友可以参考下
基于java原生servlet的微信公众号h5支付,包含授权获取openid方法,以最基础的方式实现,适于用初学者学习,页面用的html实现,maven构建. 上次页面有个事件忘记修改,应该是doPay(),原先的是doPrePayId().
odeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能。这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支付需求。现在把开发过程重新捋一遍,以帮助更多的开发者顺利的完成微信支付功能的...
php微信授权获取openid,并且跳转到当前页面。若是无法获取到相关微信授权信息,看看php.ini是否开启openssl,或打印json_error获取错误信息。openid用处很多,你可应用在微信扫码登录,jsAPI公众号支付等场景
一个领先的整合微信公众号,微信支付(app付款,扫码支付,公众号和小程序支付)为目的微信工具类(持续更新中...) 主要提供两大类公众号wxpublic和微信wxpay wxpublic类提供方法 构造函数参数说明:interface ...
主要介绍了微信h5静默和非静默授权获取用户openId的方法和步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要是Java调用微信公众号开发接口代码。包括: 1、创建菜单接口 2、根据code获取openid 3、获取令牌token 4、根据openid获取用户基本信息 5、根据openid发送模板/客服消息 6、微信支付:微信获取统一下单包/接收...
项目采用SpringBoot框架,可直接运行,更改WxPayConfig文件和WeixinController文件appid、mch_id、key、notify_ur等参数即可完成小程序支付和公众号支付及回调功能。包含统一下单(支付接口)即WeixinController中...
使用微信登录就是为了获取openid和用户的基本信息如昵称、头像、性别、所在城市这些内容。如果为了保持多个产品线的用户统一的话,还需要unionid这个大神器,前提是把APP、小程序、公众号、网站这些内容绑定到微信...
demo的相关资料,微信支付商户号 PartnerID 通过微信支付商户资料审核后邮件发送,公众号APPID 通过微信支付商户资料审核后邮件发送,调用【网页授权获取用户信息】接口获取到用户在该公众号下的Openid。
demo的相关资料,微信支付商户号 PartnerID 通过微信支付商户资料审核后邮件发送,公众号APPID 通过微信支付商户资料审核后邮件发送,调用【网页授权获取用户信息】接口获取到用户在该公众号下的Openid。
Jsp版微信公众号支付接口及调用,微信网页授权获取用户基本信息,先获取 code,跳转 url 通过 code 获取 openId
下载后直接配置你自己的 APPID,商户号,API密钥。还有就是登陆你的微信商户平台:进入产品中心->...微信H5支付不用获取openid,而且支持开放平台申请的应用和公众号申请的服务号(亲测都行),商户号必须有开通H5支付