或者
问答详情页顶部banner图
您的位置:首页 >开发 > 前端开发 > JS开发 > 微信个人公众号可以使用js-sdk开发么?

微信个人公众号可以使用js-sdk开发么?

提问者:云客网官方问答  |   分类:JS开发  |   浏览262次  |   悬赏分:0积分 2017-03-06 11:05:46

我申请了一个微信个人公众号(不是企业公众号),但是我在使用JS-SDK 开发一个页面分享功能(参考http://demo.open.weixin.qq.com/jssdk )时候点了按钮什么反应都没有,前后...

我要回答

提 交

匿名

  • 女神

    微信js分享接口 测试测试测试 后台处理请求 WeixinController.java @RequestMapping(value = "/share", method = RequestMethod.POST) @ResponseBody public Map share(String url) throws Exception { Map ret = new HashMap(); String jsapi_ticket = WeixinUtil.getJsapiTicket(); String timestamp = Long.toString(System.currentTimeMillis() / 1000); String nonceStr = UUID.randomUUID().toString(); String signature = SignUtil.getSignature( jsapi_ticket, nonceStr, timestamp, url); ret.put("url", url); ret.put("jsapi_ticket", jsapi_ticket); ret.put("nonceStr", nonceStr); ret.put("timestamp", timestamp); ret.put("signature", signature); ret.put("appid", "wxc6599d2c37b5e478"); return ret; } 3.获取accessToken /** * 获取accessToken * * @return * @throws ParseException * @throws IOException */ public static AccessToken getAccessToken() throws ParseException, IOException { AccessToken token = new AccessToken(); String url = ACCESS_TOKEN_URL.replace("APPID", APPID).replace("APPSECRET", APPSECRET); JSONObject jsonObject = doGetStr(url); if (jsonObject != null) { token.setToken(jsonObject.getString("access_token")); token.setExpiresIn(jsonObject.getInt("expires_in")); } return token; } 4.获取jsapi_ticket /** * * 获取jsapi_ticket * * @return * @throws IOException * @throws ParseException */ public static String getJsapiTicket() throws ParseException, IOException { AccessToken token = WeixinUtil.getAccessToken(); String url = JSAPI_TICKET.replace("ACCESS_TOKEN", token.getToken()); JSONObject jsonObject = doGetStr(url); String jsapi_ticket = null; if (jsonObject != null) { jsapi_ticket = jsonObject.getString("ticket"); } return jsapi_ticket; } 5.获取签名 SignUtil .Java import java.security.MessageDigest; public class SignUtil { /** * 获得分享链接的签名。 * @param ticket * @param nonceStr * @param timeStamp * @param url * @return * @throws Exception */ public static String getSignature(String ticket, String nonceStr, String timeStamp, String url) throws Exception { String sKey = "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "×tamp=" + timeStamp + "&url=" + url; System.out.println(sKey); return getSignature(sKey); } /** * 验证签名。 * * @param signature * @param timestamp * @param nonce * @return */ public static String getSignature(String sKey) throws Exception { String ciphertext = null; MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[] digest = md.digest(sKey.toString().getBytes()); ciphertext = byteToStr(digest); return ciphertext.toLowerCase(); } /** * 将字节数组转换为十六进制字符串 * * @param byteArray * @return */ private static String byteToStr(byte[] byteArray) { String strDigest = ""; for (int i = 0; i < byteArray.length; i++) { strDigest += byteToHexStr(byteArray[i]); } return strDigest; } /** * 将字节转换为十六进制字符串 * * @param mByte * @return */ private static String byteToHexStr(byte mByte) { char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; char[] tempArr = new char[2]; tempArr[0] = Digit[(mByte >>> 4) & 0X0F]; tempArr[1] = Digit[mByte & 0X0F]; String s = new String(tempArr); return s; } } 以上是大部分代码,稍加修改就可实现

    2017-06-08 10:46:41
    评论0  |   0
  • g***e

    可以使用,只是权限不一样,你搜一下bestsdk的论坛内,有一些讲解

    2017-03-06 11:05:46
    评论0  |   0
问答详情中间banner