本文带大家使用weixin4j生成wx.config所需要的参数。
说明:微信JSSDK使用的基础步骤请参考官方文档。
本文以springmvc框架restful为案例编写,仅供参考
import com.alibaba.fastjson.JSONObject;
import java.util.UUID;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.weixin4j.Configuration;
import org.weixin4j.Weixin;
import org.weixin4j.WeixinException;
import org.weixin4j.pay.JsApiTicket;
import org.weixin4j.pay.SignUtil;
@RestController
public class WxConfigController {
@GetMapping("/api/jssdk/wx-config")
public JSONObject get_wx_config() throws WeixinException {
Weixin weixin = new Weixin();
//登录微信获取Access_Token
weixin.login(Configuration.getOAuthAppId(), Configuration.getOAuthSecret());
//定义返回配置JSON对象
JSONObject config = new JSONObject();
//获取微信js-sdk开发ticket
//注意,jsapi_ticket,有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket
//请自行保存到缓存
//本示例仅演示获取流程
JsApiTicket jsApiTicket = weixin.getJsApi_Ticket();
//获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。
//签名算法
//签名生成规则如下:
//参与签名的字段包括noncestr(随机字符串),有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分)。
//对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。
//这里需要注意的是所有参数名均为小写字符。
//对string1作sha1加密,字段名和字段值都采用原始值,不进行URL转义。
//对应我们weixin4j的开发,则已经把签名算法写好了
String noncestr = UUID.randomUUID().toString().substring(0, 15);
String timestamp = System.currentTimeMillis() + "";
//注:本链接仅作为演示,实际链接请以自己业务链接为主
String url = "http://www.weixin4j.org/index.html";
String signature = SignUtil.getSignature(jsApiTicket.getTicket(), noncestr, timestamp, url);
//返回wx.config参数
config.put("appId", Configuration.getOAuthAppId());
config.put("timestamp", timestamp);
config.put("nonceStr", noncestr);
config.put("signature", signature);
return config;
}
}
欢迎加入weixin4j官方VIP群学习,QQ群:473227872