关于微信公众号调用微信分享
2016-07-08 15:23
656 查看
自从微信6.0以后,,,WeixinJSBridge.on这个方法不能被轻易使用了,解决的办法有两个,
第一个是你们的公众号去微信申请,申请成功,这个方法依然可以使用,另一个方法就是用JS-SDK,方法如下
备注:在所有操作之前微信公众号各项功能保证开通:
http://jingyan.baidu.com/article/d3b74d64c517051f77e609ed.html
一,调用接口获取access_token
返回报文为json格式,例如:
第二步:获取jsapi-ticket
第三步:获取签名算法
签名算法代码如下:
class Sign {
public static void main(String[]
args) {
String jsapi_ticket = "jsapi_ticket";
//
注意 URL 一定要动态获取,不能
hardcode
String url = "http://example.com";
Map<String, String> ret = sign(jsapi_ticket, url);
for (Map.Entry entry : ret.entrySet()) {
System.out.println(entry.getKey() +
", " + entry.getValue());
}
};
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 (UnsupportedEncodingException 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);
}
}
第一个是你们的公众号去微信申请,申请成功,这个方法依然可以使用,另一个方法就是用JS-SDK,方法如下
备注:在所有操作之前微信公众号各项功能保证开通:
http://jingyan.baidu.com/article/d3b74d64c517051f77e609ed.html
一,调用接口获取access_token
返回报文为json格式,例如:
第二步:获取jsapi-ticket
第三步:获取签名算法
签名算法代码如下:
class Sign {
public static void main(String[]
args) {
String jsapi_ticket = "jsapi_ticket";
//
注意 URL 一定要动态获取,不能
hardcode
String url = "http://example.com";
Map<String, String> ret = sign(jsapi_ticket, url);
for (Map.Entry entry : ret.entrySet()) {
System.out.println(entry.getKey() +
", " + entry.getValue());
}
};
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 (UnsupportedEncodingException 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);
}
}
相关文章推荐
- 推荐有关微信开发的十个开源项目
- 策略模式——你要用支付宝还是微信?
- 微信支付返回-1的情况和解决方式
- 微信网页开发之video标签[HTML5微信播放器video]
- Android利用微信SDK分享到微信教程,回调分享结果错误解决和注意点
- 微信公众号框架之吐槽
- 接入微信公众号:验证服务器地址的有效性
- Android和ios微信浏览器中按钮显示不一样的问题
- 微信红包(腾讯2016研发工程师编程题)
- 对接微信红包时:CA证书出错,请登录微信支付商户平台下载证书
- 微信公众平台OAuth2.0网页授权php示例
- iOS微信支付--解析失败
- 谷歌大脑科学家 Caffe缔造者 贾扬清 微信讲座
- 关于微信号的校验
- 微信主界面
- 微信公众平台开发——腾讯地图导航
- JAVA微信扫码支付模式二功能实现以及回调
- 微信上线朋友圈屏蔽提醒功能 还你刷的纯净感
- 使用Fragment实现Tab切换(高仿微信主界面)
- 微信公众号的可行之处?