失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 页面调用微信扫一扫功能

页面调用微信扫一扫功能

时间:2023-06-15 03:07:22

相关推荐

页面调用微信扫一扫功能

1.页面代码

//调用扫一扫功能

function callScaning() {

wx.config({

debug: false,

appId: '${wxJson.appId}',

timestamp: '${wxJson.timestamp}',

nonceStr: '${wxJson.nonceStr}',

signature: '${wxJson.signature}',

jsApiList: [ 'scanQRCode' ]

});

wx.error(function(res) {

alert("出错了:" + res.errMsg);//这个地方就是wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。

});

wx.scanQRCode({

needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,

scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有

success: function (res) {

var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果

alert("扫一扫结果:" + result);

}

});

}

2.后台代码

//获取参数

public String getParameter() {

StringBuffer url = new StringBuffer();

url="页面签名";

JSONObjectwxJson = TicketUtil.sign(wxJson, TicketUtil.getJsApiTicket(), url.toString());

return SUCCESS;

}

public class TicketUtil {

public static JSONObject sign(JSONObject json, String jsapi_ticket, String url) {

String nonce_str = create_nonce_str();

String timestamp = create_timestamp();

String signature = "";

// 注意这里参数名必须全部小写,且必须有序

String string1 = "jsapi_ticket=" + jsapi_ticket + "&noncestr="

+ nonce_str + "&timestamp=" + timestamp + "&url=" + url;

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 (UnsupportedEncodingException e) {

e.printStackTrace();

}

WXConfigReader configReader = WXConfigReader.getInstance();

String appId = configReader.getConfigValue("weixin.appid");

json.put("appId", appId);

json.put("url", url);

json.put("jsapi_ticket", jsapi_ticket);

json.put("nonceStr", nonce_str);

json.put("timestamp", timestamp);

json.put("signature", signature);

json.put("signUrl", url);

return json;

}

public 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;

}

public static String create_nonce_str() {

return UUID.randomUUID().toString();

}

public static String create_timestamp() {

return Long.toString(System.currentTimeMillis() / 1000);

}

public static String getJsApiTicket() {

String jsApiTicket = null;

WXConfigReader configReader = WXConfigReader.getInstance();

String appid = configReader.getConfigValue("weixin.appid");

String secret = configReader.getConfigValue("weixin.secret");

String tokenUrl = configReader.getConfigValue("weixin.access_tokenUrl") + "?grant_type=client_credential&appid=" + appid + "&secret=" + secret;

String jsapi_ticketUrl = configReader.getConfigValue("weixin.jsapi_ticketUrl");

RestAPIClient client = RestAPIClient.getInstance();

JSONObject accessTokenResult = client.call(tokenUrl);

if (accessTokenResult != null && StringUtils.isNotEmpty(accessTokenResult

.getString("access_token"))) {

String accessToken = accessTokenResult.getString("access_token");

String apiTicketUrl = jsapi_ticketUrl + "&access_token=" + accessToken;

JSONObject apiTicketResult = client.call(apiTicketUrl);

if (apiTicketResult != null

&& "ok".equalsIgnoreCase(apiTicketResult.get("errmsg") + "")) {

jsApiTicket = apiTicketResult.get("ticket") + "";

}

}

return jsApiTicket;

}

public static String accessToken() {

String accessToken = null;

WXConfigReader configReader = WXConfigReader.getInstance();

String appid = configReader.getConfigValue("weixin.appid");

String secret = configReader.getConfigValue("weixin.secret");

String tokenUrl = configReader.getConfigValue("weixin.access_tokenUrl") + "?grant_type=client_credential&appid=" + appid + "&secret=" + secret;

RestAPIClient client = RestAPIClient.getInstance();

JSONObject accessTokenResult = client.call(tokenUrl);

if (accessTokenResult != null && StringUtils.isNotEmpty(accessTokenResult.getString("access_token"))) {

accessToken = accessTokenResult.getString("access_token");

}

return accessToken;

}

}

如果觉得《页面调用微信扫一扫功能》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。