关于微信公众号调用微信分享

转载 2018年04月15日 09:49:39

转自:https://blog.csdn.net/u012291108/article/details/51861012

自从微信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);

    }

}


微信公众号开发 从前台到Java后台 调用微信JS接口分享朋友圈

先说明一下,文章中有的代码是我在网上找的,如果有相同的地方请原谅,我只是想告诉大家完整的步骤。我这几天做的是自定义分享到朋友圈和分享给好友,能够自己设置分享出来的标题,描述和图片。自定义分享到朋友圈需...
  • ShrMuscles
  • ShrMuscles
  • 2017-09-15 01:21:26
  • 4899

微信公众号开发(一)微信分享接入

微信分享当有微信推广活动和页面的时候都会用到微信分享,本文介绍如何在页面上处理微信分享,使用的是js+C#.NET语言。原理大体流程是这样的: 绑定域名 列表内容 引入JS文件 通过config接口注...
  • lwpoor123
  • lwpoor123
  • 2017-12-07 16:13:08
  • 154

Asp.Net页面自定义微信分享

参考微信JS-SDK说明文档, 1、先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 2、在需要调用JS接口的页面引入如下JS文件,(支持https):http://re...
  • diguaqiang
  • diguaqiang
  • 2015-06-29 14:36:50
  • 2954

ASP.NET 微信JS-SDK 签名与自定义分享内容代码

  • 2015年10月13日 14:59
  • 97KB
  • 下载

微信公众平台开发:JS-SDK之分享功能整理(Java)

在偶然间,需要做一个公众账号分享的功能,细一想~  奈何宝宝不会呀,听都没听过肿么破,当时就心累了。   言归正传,由于我所有的开发代码均是在又各位前辈在度娘中留下的辛勤汗水,再由于自己本身就渣,属于...
  • dcb_ripple
  • dcb_ripple
  • 2016-07-29 18:31:38
  • 14189

微信分享接口配置和调用

步骤一:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 步骤二:引入JS文件 在需要调用JS接口的页面引入如下JS文件,(支持https):http://...
  • wangjuan_01
  • wangjuan_01
  • 2016-07-15 17:38:31
  • 14462

微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友

微信JS-SDK分享到朋友圈和分享给朋友的代码
  • frankcheng5143
  • frankcheng5143
  • 2016-03-31 15:36:28
  • 35557

分享原创python爬取微信公众号,并分享GITHUB地址

分享原创python爬取微信公众号,并分享GITHUB地址
  • xocom
  • xocom
  • 2017-05-26 17:33:57
  • 943

.net 微信分享功能

微信在国内目前无疑是最火的社交软件,智能手机装机必备。      微信api有java,php,Python语言的demo, 为毛没有C#的范例?     1.微信帮助类:     ...
  • zjlovety
  • zjlovety
  • 2017-03-31 16:49:18
  • 1399

微信开发:织梦整合微信公众代码,微信插件下载

  • 2016年09月12日 18:24
  • 9KB
  • 下载
收藏助手
不良信息举报
您举报文章:关于微信公众号调用微信分享
举报原因:
原因补充:

(最多只允许输入30个字)