<div class="step" onclick="minapps()">
<img src="${request.contextPath}/images/wechatImg/img2.png" alt="">
</div>
<!--gh_81fea41c2854 gh_81fea41c2854 /pages/mini/sacnLogin/qrlogin?random=daa&sysName=wxyh 13rem
/pages/mini/sacnLoginsacnLogin/qrloginr/qrloginr.html?andom=110006v10006614050000000722155669647170CBE2E67B&sysName=昆仑银行股份有限公司测试系统
--> <!--path="/pages/mini/sacnLogin/qrloginr">-->
<wx-open-launch-weapp id="launch-btn" username="gh_0c5a2dd326c6" path="pages/user/bushu.html">
<template>
<style>
.btn {
padding: 12px;
width: 200px;
height: 50px;
}
</style>
<button class="btn">打开</button>
</template>
</wx-open-launch-weapp>
function jingru() {
var urlst = document.URL;
alert("进化论思路2222");
$.ajax({
url: '/klbwx/applets/bushuya.htm',
type: 'get',
data:{
urls:urlst,
},
success: function (res) {
alert("响应");
alert(res);
dates = JSON.parse(res);
alert(dates.signature);
wx.config({
debug: false,
appId: 'wx1a44648aa770c8bb',
timestamp: dates.timestamp,
nonceStr: dates.nonceStr,
signature: dates.signature,
jsApiList: ['openLocation', 'chooseImage', 'previewImage', 'qrloginr', '/pages/user/bushu.html'],
openTagList: ['wx-open-launch-weapp']
});
wx.ready(function () {
var btn = document.getElementById('launch-btn');
btn.addEventListener('launch', function (e) {
});
btn.addEventListener('error', function (e) {
});
});
}
});
}
-- 后端代码
@Controller
@RequestMapping(value = "/applets")
public class XiaoChengXu {
private static Logger log = Logger.getLogger(XiaoChengXu.class);
@RequestMapping(value = "/bushuya")
@ResponseBody
public Map<String, String> messageSignUpQuery(HttpServletRequest request) {
log.info("请求进入获取参数开始“");
log.info("输出信息"+"获取参数");
String urls = request.getParameter("urls");
log.info("输出信息"+"获取参数"+urls);
String getjsapi = Sign.getjsapi();
log.info("输出信息getjsapi"+getjsapi);
Map<String, String> sign = Sign.sign(getjsapi, urls);
log.info("输出信息");
return sign;
}
}
package com.vsiteapp.klb.dianzi.server;
import com.alibaba.fastjson.JSON;
import com.aliyun.common.utils.HttpUtil;
import com.huilan.vsiteapp.util.HttpClientUtils;
import com.vsiteapp.klb.qygl.utils.PropertiesUtil;
import net.sf.json.JSONObject;
import org.apache.log4j.Logger;
import org.aspectj.weaver.ast.Var;
import org.bouncycastle.jce.provider.JDKMessageDigest;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Formatter;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import static com.csrft.util.MD5.byteToHex;
import static com.vsiteapp.klb.scancode.util.WeiXinScanUtils.sign;
public class Sign {
private static Logger log = Logger.getLogger(Sign.class);
public static void main(String[] args) {
String url = "http://weixin-dev3.klb.com.cn";
};
public static String getjsapi(){
String appid = PropertiesUtil.getStringByKey("appid");
String appSecret = PropertiesUtil.getStringByKey("appSecret");
String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid"+"="+appid+"&secret"+"="+appSecret;
String s = "";
log.info("开始获取access_token"+tokenUrl);
{
try {
s = HttpClientUtils.get(tokenUrl);
log.info("获取access_token成功");
} catch (Exception e) {
e.printStackTrace();
log.info("获取access_token"+"失败了");
}
}
JSONObject tokenUrlJson = JSONObject.fromObject(s);
log.info("获取access_token成功");
log.info(tokenUrlJson.toString());
String accessToken = tokenUrlJson.getString("access_token");
log.info("获取access_token成功"+accessToken);
String jsapiStr = "";
{
try {
jsapiStr = HttpClientUtils.get("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+accessToken+"&type=jsapi");
log.info("获取jsapi成功"+jsapiStr);
} catch (Exception e) {
e.printStackTrace();
log.info("获取jsapi"+"失败了");
}
}
JSONObject jsapistr = JSONObject.fromObject(jsapiStr);
String jsapi_ticket = jsapistr.getString("ticket");
return jsapi_ticket;
}
public static Map<String, String> sign( String jsapi_ticket, String url) {
Map<String, String> ret = new HashMap<String, String>();
String nonce_str = create_nonce_str();
String timestamp = create_timestamp();
String string1;
String signature = "";
string1 = "jsapi_ticket=" + jsapi_ticket +
"&noncestr=" + nonce_str +
"×tamp=" + timestamp +
"&url=" + url;
System.out.println(string1);
try
{
MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(string1.getBytes("UTF-8"));
signature = byteToHex(crypt.digest());
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
ret.put("url", url);
ret.put("jsapi_ticket", jsapi_ticket);
ret.put("nonceStr", nonce_str);
ret.put("timestamp", timestamp);
ret.put("signature", signature);
return ret;
}
private static String byteToHex(final byte[] hash) {
Formatter formatter = new Formatter();
for (byte b : hash)
{
formatter.format("%02x", b);
}
String result = formatter.toString();
formatter.close();
return result;
}
private static String create_nonce_str() {
return UUID.randomUUID().toString();
}
private static String create_timestamp() {
return Long.toString(System.currentTimeMillis() / 1000);
}
}