精华内容
下载资源
问答
  • 如何利用微信jssdk调用微信扫一扫功能?具体内容如下1. 确保有 调起微信扫一扫接口 权限,测试号可能不行;2. 导入相关js3. 页面触发扫码元素4. 相关js代码var _appid = "wxz88dbd30e5580e59";var _data = {appid : ...

    如何利用微信jssdk调用微信扫一扫功能?具体内容如下

    1. 确保有 调起微信扫一扫接口 权限,测试号可能不行;

    2. 导入相关js

    3. 页面触发扫码元素

    right.jpg

    4. 相关js代码

    var _appid = "wxz88dbd30e5580e59";

    var _data = {

    appid : _appid,

    url : location.href,

    t : math.random()

    };

    var _getwechatsignurl = 'http://test.com/getwechatsign.do';

    // 获取微信签名

    $.ajax({

    url : _getwechatsignurl,

    data : _data,

    success : function(o) {

    console.log(o);

    if (o.returncode == "00") {

    wxconfig(o.detail[0].timestamp, o.detail[0].noncestr, o.detail[0].signature);

    }

    }

    });

    function wxconfig(_timestamp, _noncestr, _signature) {

    //alert('获取数据:'+_timestamp+'\n'+_noncestr+'\n'+_signature);

    console.log('获取数据:' + _timestamp + '\n' + _noncestr + '\n' + _signature);

    wx.config({

    debug : true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

    appid : _appid, // 必填,公众号的唯一标识

    timestamp : _timestamp, // 必填,生成签名的时间戳

    noncestr : _noncestr, // 必填,生成签名的随机串

    signature : _signature,// 必填,签名,见附录1

    jsapilist : [ 'onmenusharetimeline', 'onmenushareappmessage',

    'onmenushareqq', 'onmenushareweibo', 'scanqrcode' ]

    // 必填,需要使用的js接口列表,所有js接口列表见附录2

    });

    }

    function scancode() {

    wx.scanqrcode({

    needresult : 1,

    scantype : [ "qrcode", "barcode" ],

    success : function(res) {

    console.log(res)

    alert(json.stringify(res));

    var result = res.resultstr;

    },

    fail : function(res) {

    console.log(res)

    alert(json.stringify(res));

    }

    });

    }

    5. 获取签名接口getwechatsign.do各值生成方式

    timestamp

    long timestamp = system.currenttimemillis() / 1000;

    noncestr

    string noncestr = randomstringutils.randomalphanumeric(16);

    signature

    public static string getsign(string jsapi_ticket, string noncestr, long timestamp, string url)

    throws nosuchalgorithmexception {

    string shastr = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + noncestr + "×tamp=" + timestamp + "&url="

    + url;

    messagedigest mdigest = messagedigest.getinstance("sha1");

    byte[] result = mdigest.digest(shastr.getbytes());

    stringbuffer signature = new stringbuffer();

    for (int i = 0; i < result.length; i++) {

    signature.append(integer.tostring((result[i] & 0xff) + 0x100, 16).substring(1));

    }

    return signature.tostring();

    }

    6. 微信参考文档

    获取access_token

    获取jsapi_ticket

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

    展开全文
  • 有很多人在做微信的扫一扫下载。但是在微信更新之后微信将该功能给禁止掉了,也不能说是全面禁止吧,因为腾讯、微信是一家嘛,通过应用宝审核的应用好像还是可以通过扫一...微信扫一扫下载app代码片段如下所示: <
  • 实现公众号点击菜单调起扫一扫功能。1.进入微信公众平台找到左侧菜单下面的开发==》开发者工具==》公众平台测试账号。(因为本地测试所以域名填写本地地址)2.进入微信公众平台接口调试工具页面...

    实现公众号点击菜单调起扫一扫功能。

    1.进入微信公众平台找到左侧菜单下面的开发==》开发者工具==》公众平台测试账号。

    d68ffd58f819

    d68ffd58f819

    d68ffd58f819

    d68ffd58f819

    (因为本地测试所以域名填写本地地址)

    2.进入微信公众平台接口调试工具页面(https://mp.weixin.qq.com/debug)把第一步获取到的appID和secret值填写上。

    d68ffd58f819

    点击检查问题,获取到access_token的值

    d68ffd58f819

    获取jsapi_ticket的值,把上面access_token的值(13_mPhYaHxkzbhGwOY6ABZbM8GDsKNSEadbmDaigcLg...)替换ACCESS_TOKEN,

    https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

    在浏览器打开会出现

    {"errcode":0,"errmsg":"ok","ticket":"sM4AOVdWfPE4DxkXGEs8VDpIe-VjrBhnXt1QKTg84iheGL4wMMVN0Io77S33BYrZcVBQdmJxdRjElznMdRcf1Q","expires_in":7200}

    把上面获取到的ticket的值填入,

    noncestr(因为是随机所以先随便写一个:w8WdrkcRJ7mRLfcM)

    url(因为是本地服务器)

    点击生成签名下面就会出现所需要的东西signature。

    d68ffd58f819

    d68ffd58f819

    4.然后就可以写代码了(要引入微信库和jq库)

    d68ffd58f819

    5.演示

    d68ffd58f819

    展开全文
  • vue使用微信扫一扫

    2021-01-20 08:42:33
    vue使用微信扫一扫 第一步: 安装weixin-js-sdk 和 jquery 包 npm install weixin-js-sdk jquery 第二部: 配置wx.config (配置都是后端返回来的,菜鸟前端只需要按需传值过去就可) 代码如下 import wx from ...
  • 根据微信api,整理了一下调用微信扫一扫功能。如有问题请指正: 以下是具体步骤: 1、绑定域名(很关键)2、引入JS文件(很简单) script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js">script>3、通过...

    根据微信api,整理了一下调用微信扫一扫功能。如有问题请指正:

    以下是具体步骤:

    1. 绑定域名(很关键
    2. 引入JS文件(很简单)<scriptsrc="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
    3. 通过config接口注入权限验证配置(很重要
    4. 通过ready接口处理成功验证(还没用到)
    5. 通过error接口处理失败验证(还没用到)

    绑定域名(第一步):

    以下是通过config接口注入权限验证配置(第三步):

    下面是js代码:

    $.ajax({
                type : "post",
                url : "/weixin/open/weixinOAuthCallback_sign.action",
                data : {
                    "url" : location.href.split('#')[0]
                },
                dataType : "json",
                success : function(data) {
                    wx.config({ 
                        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。   
                        appId: data.appId, // 必填,公众号的唯一标识
                        timestamp: data.timestamp, // 必填,生成签名的时间戳
                        nonceStr: data.nonceStr, // 必填,生成签名的随机串
                        signature: data.signature,// 必填,签名,见附录1
                        jsApiList: [
                                      'checkJsApi',
                                      'startRecord',
                                      'stopRecord',
                                      'translateVoice',
                                      'scanQRCode',// 微信扫一扫接口
                                      'openCard'
                                   ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 
                    }); 
                    wx.error(function(res) {
                        alert("出错了:" + res.errMsg);//这个地方的好处就是wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。
                    });
    
                    wx.ready(function() {
                        wx.checkJsApi({
                             jsApiList : ['scanQRCode'],
                             success : function(res) {
    
                             }
                        });
                    });
                    //点击按钮扫描二维码
                    $("#scanQRCode").click(function(){
                        wx.scanQRCode({
                            needResult : 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
                            scanType : [ "qrCode"], // 可以指定扫二维码还是一维码,默认二者都有
                            success : function(res) {
                                var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
                                window.location.href = result;//因为我这边是扫描后有个链接,然后跳转到该页面
                            },
                            error : function(){
                                console.log('123');
                            }
                        });
                    });
                }
            });
    


    下面是后台java代码,用于获取sign签名AppID:微信公众号应用的唯一标识,AppSecret微信公众号的私匙(相当于密码)

    /**
           * 得到jsApi-ticket
           * @return
           */
          @SuppressWarnings({ "static-access", "unused" })
          private String getJsapiTicket(){
                HttpServletRequest request = ServletActionContext.getRequest();
                String code = request.getParameter("code");
            String requestUrl = "https://api.weixin.qq.com/cgi-bin/token?"; 
            String params = "grant_type=client_credential&appid=" + APPID + "&secret=" + APP_SECRET + ""; 
            String result = this.httpGet(requestUrl+params); 
            String accessToken = com.alibaba.fastjson.JSONObject.parseObject(result).getString("access_token"); 
           
            requestUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?"; 
            params = "access_token=" + accessToken + "&type=jsapi"; 
            result = this.httpGet(requestUrl+params); 
            String jsapi_ticket = com.alibaba.fastjson.JSONObject.parseObject(result).getString("ticket"); 
            return jsapi_ticket;
        }
          /**
           * 获取sign签名
           * @return
           */
          public String sign() {
                HttpServletRequest request = ServletActionContext.getRequest();
            Map ret = new HashMap();
            String url = request.getParameter("url");
            String jsapi_ticket= getJsapiTicket();
            String nonce_str = create_nonce_str();
            String timestamp = create_timestamp();
            String string1;
            String signature = "";
            int length=url.indexOf("#");
                String uri = url;
                if(length > 0){
                      uri=url.substring(0,length);//当前网页的URL,不包含#及其后面部分
                }
            //注意这里参数名必须全部小写,且必须有序
            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("appId", APPID);
            ret.put("url", uri);
            ret.put("jsapi_ticket", jsapi_ticket);
            ret.put("nonceStr", nonce_str);
            ret.put("timestamp", timestamp);
            ret.put("signature", signature);
            System.out.println(signature);
            this.setJsonString(JsonUtil.toJSONString(ret));
            return "json";
        }
        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);
        }
          /**
         * 发送get请求
         * @param url    路径
         * @return
         */ 
        public static String httpGet(String url){ 
            //get请求返回结果 
             String strResult = null; 
            try { 
                DefaultHttpClient client = new DefaultHttpClient(); 
                //发送get请求 
                HttpGet request = new HttpGet(url); 
                HttpResponse response = client.execute(request); 
      
                /**请求发送成功,并得到响应**/ 
                if (response.getStatusLine().getStatusCode() == org.apache.http.HttpStatus.SC_OK) { 
                    /**读取服务器返回过来的json字符串数据**/ 
                      strResult = EntityUtils.toString(response.getEntity()); 
                } else { 
                    logger.error("get请求提交失败:" + url); 
                } 
            } catch (IOException e) { 
                logger.error("get请求提交失败:" + url, e); 
            } 
            return strResult; 
        }
     ret = new HashMap();
            String url = request.getParameter("url");
            String jsapi_ticket= getJsapiTicket();
            String nonce_str = create_nonce_str();
            String timestamp = create_timestamp();
            String string1;
            String signature = "";
            int length=url.indexOf("#");
                String uri = url;
                if(length > 0){
                      uri=url.substring(0,length);//当前网页的URL,不包含#及其后面部分
                }
            //注意这里参数名必须全部小写,且必须有序
            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("appId", APPID);
            ret.put("url", uri);
            ret.put("jsapi_ticket", jsapi_ticket);
            ret.put("nonceStr", nonce_str);
            ret.put("timestamp", timestamp);
            ret.put("signature", signature);
            System.out.println(signature);
            this.setJsonString(JsonUtil.toJSONString(ret));
            return "json";
        }
        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);
        }
          /**
         * 发送get请求
         * @param url    路径
         * @return
         */ 
        public static String httpGet(String url){ 
            //get请求返回结果 
             String strResult = null; 
            try { 
                DefaultHttpClient client = new DefaultHttpClient(); 
                //发送get请求 
                HttpGet request = new HttpGet(url); 
                HttpResponse response = client.execute(request); 
      
                /**请求发送成功,并得到响应**/ 
                if (response.getStatusLine().getStatusCode() == org.apache.http.HttpStatus.SC_OK) { 
                    /**读取服务器返回过来的json字符串数据**/ 
                      strResult = EntityUtils.toString(response.getEntity()); 
                } else { 
                    logger.error("get请求提交失败:" + url); 
                } 
            } catch (IOException e) { 
                logger.error("get请求提交失败:" + url, e); 
            } 
            return strResult; 
        }
    

    展开全文
  • 步: 安装weixin-js-sdk 和 jquery 包 npm install weixin-js-sdk jquery 第二部: 配置wx.config (配置都是后端返回来的,菜鸟前端只需要按需传值过去就可) 代码如下 import wx from “weixin-js-sdk”; ...
  • 在自己的应用中打开微信扫一扫代码: private void toWeChatScan() { try { //利用Intent打开微信 Uri uri = Uri.parse("weixin://dl/scan"); Intent intent = new Intent(Intent.ACTION_VIEW, uri);

    微信

    在自己的应用中打开微信扫一扫代码:
    private void toWeChatScan() {
        try {
            //利用Intent打开微信
            Uri uri = Uri.parse("weixin://dl/scan");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
        } catch (Exception e) {
            //若无法正常跳转,在此进行错误处理
            Toast.makeText(context, "无法跳转到微信,请检查是否安装了微信", Toast.LENGTH_SHORT).show();
        }
    }

    使用以上代码跳转到微信(版本:6.3.18)扫一扫,会出现以下情况:

        情况:                    结果:
    安装并登陆了微信            跳转到微信扫一扫
    安装了但未登陆微信          跳转到微信登陆,登陆成功后跳转到扫一扫
    未安装微信                 Toast没安装微信
    现在微信不能直接跳转到微信扫一扫,只能跳到微信首页:
    ①方法一:将代码
    Uri uri = Uri.parse("weixin://dl/scan");

    改为

    Uri uri = Uri.parse("weixin://");
    ②方法二:通过包名打开微信
    Intent intent = getPackageManager().getLaunchIntentForPackage("com.tencent.mm");  
    startActivity(intent);

    支付宝

    private void toAliPayScan() {
        try {
            //利用Intent打开支付宝
            //支付宝跳过开启动画打开扫码和付款码的urlscheme分别是:
    	//alipayqr://platformapi/startapp?saId=10000007
            //alipayqr://platformapi/startapp?saId=20000056
            Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=10000007");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
        } catch (Exception e) {
            //若无法正常跳转,在此进行错误处理
            Toast.makeText(context, "打开失败,请检查是否安装了支付宝", Toast.LENGTH_SHORT).show();
        }
    }
    

    展开全文
  • 具体代码如下所示: let para = { opentoken : token, currUrl : location.href }; $.ajax({ type: "POST", url: url, data: para, async: false, dataType: "json", error: function (res) { t....
  • 需求概述 想让用户在微信扫描二维码或者点击就能下载APP,并统计被扫描次数。 两种实现方法: 1.一般我们用草料生成二维码,如果没有注册的话只能生成...这个指向页面内嵌了统计代码。你可以通过草料的统计功能...
  • 利用微信JSSDK调用微信扫一扫功能

    万次阅读 2017-07-24 22:52:01
    1. 确保有 调起微信扫一扫接口 权限,测试号可能不行; 2. 导入相关JS 3. 页面触发扫码元素 4. 相关JS代码 var _appId = "wxz88dbd30e5580e59"; var _data = { appId : _appId, url : location.href, ...
  • 微信扫一扫登录网站

    千次阅读 2018-08-14 16:39:13
    微信网站扫一扫登录 标签(空格分隔): wechat 科普微信授权原理 Created with Raphaël 2.1.2微信用户微信用户第三方应用第三方应用微信开发平台微信开发平台第三方应用第三方应用微信开发平台微信开发...
  • C#的ASP.net上的任意url生成二维码功能。经测试,微信扫一扫可以扫这个二维码。
  • 第二步:将下面的js附在需要调用微信扫一扫的页面上,前提是需要引入微信的js[]3.第三步:后台获取签名代码:package com.epoch.wap.common;import java.io.IOException;import java.io....
  • Java实现微信扫一扫

    万次阅读 2016-12-27 17:44:07
    这两周做了项目关于微信端的处理,主要是实现调起微信扫一扫和通过微信获取地理位置。写在前面,不要急,这些东西对第一次开发微信端的人来说很重要: 不太善于布局,大家凑合看,主要看内容哈 我先详细的解释一些...
  • 微信扫一扫功能实现-附全部代码

    千次阅读 2019-10-08 22:31:13
    这里先大概概述一下主要的流程,首先,使用微信扫一扫需要一个已经通过认证的公众号;其次,需要知道公众号的APPID以及APPSecrect,以便获取Access_Token和Ticket;再有就是需要了解.NET内部的SHA1的加密类;最后...
  • vue 调用 微信扫一扫

    2019-10-29 10:02:38
    前段时间做了个vue项目,其中有一个调用微信扫一扫的功能,上代码 前端代码 scan(){ let _this = this api.getWxConfig().then(res => { this.jsonData = res.data; wx.config({ // 开启调试模式,调用的...
  • 使用JS-SDK调用微信扫一扫,需要有公众号支持,通过公众号生成JS-SDK使用权限签名。...appId是公众号的标识,url是需要调用微信扫一扫的页面的地址,需要进行encodeURIComponent编码。 调用微信扫一扫前端页面
  • 微信开发今天产品设计了一个非常恶心的功能,手机端H5点击按钮调用扫一扫,去识别二维码。 不过有微信的开发文档,一步一个代码来的整。 大概分为几步: 1.首先得有appid和secret——>获取access_token值(可谓是...
  • @让我发会呆: 前台: wx.config({ debug: false, appId: '', timestamp: , nonceStr: '', signature: '', jsApiList: [ 'scanQRCode' ] }); 后台: if (!IsPostBack) { appId = Configuration... } 没了,就这些代码
  • Android调用微信扫一扫

    万次阅读 热门讨论 2016-06-11 12:58:39
    在自己的应用中打开微信扫一扫代码: private void toWeChatScan() { try { //利用Intent打开微信 Uri uri = Uri.parse("weixin://dl/scan"); Intent intent = new Intent(Intent.ACTION_VIE
  • 微信公众号,JS-SDK调用微信扫一扫

    千次阅读 2018-03-29 16:25:31
    微信公众号关联网页调用微信扫一扫功能,可以参照《微信公众平台技术文档》-&gt; 微信JS-SDK说明文档,官方链接地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;id=mp1421141115步骤一:绑定...
  • 所以就需要使用微信公众平台提供的JSSDK来调用扫一扫功能。仅以此来记录自己的学习过程,也希望能帮助到有此需求的一些朋友。 过程中参考文章有:https://blog.csdn.net/u011327333/article/details/50439...
  • 微信扫一扫二维码跳转指定的页面,而指定的页面获取二维码的url包括参数 在指定的页面.js 我们先以index来为列子吧 index.js onLoad: function(options) { console.log(options); //假如从微信扫一扫二维码跳转...
  • 微信开发(微信扫一扫)商品创建

    千次阅读 2016-10-06 19:15:56
    微信公众平台开放“扫一扫”功能,同时开放相关接口供有权限的品牌所有者调用。接口支持创建、管理并发布品牌所有者的商品信息,品牌所有者可选择商品条码发布。微信同时提供多种事件推送,帮助品牌所有者实现精准...
  • 今天再讲一下微信扫一扫登陆,并结合一下之前写的JWT 首先我们需要了解一下微信开发的官方文档 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 这是微信官方给...
  • 需求: H5页面调用微信扫一扫扫描二维码,获取二维码内容 技术: vue,vuex 参考文档:微信开放文档 踩坑: Android正常打开扫一扫,ios必须刷新一下才能打开(最后有解决办法) 步骤: 在vue项目npm安装微信sdk ...
  • 微信扫一扫功能调用

    万次阅读 2016-12-22 09:41:09
    第一步:设置调用微信js安全域名,就可以在该域名下调用微信的js接口 第二步:将下面的js附在需要调用微信扫一扫的页面上,前提是需要引入微信的js[] 第三步: 参考官方文档 ...
  • 微信JSSDK实现微信自定义分享,微信扫一扫 前言: 由于微信使用的越来越多,也让大多数平台或者APP与微信建立了比较深的合作关系,我们公司自主研发的产品也是比较依赖于微信,最近也写了几篇关于微信的博客,本文...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,538
精华内容 5,415
关键字:

微信扫一扫url代码