• SpringCloud : 接入 微信公众号平台(三)、获取JsSDK配置参数


    Java:

    import com.phpdragon.wechat.proxy.config.WeChatConfig;
    import lombok.extern.slf4j.Slf4j;
    import me.chanjar.weixin.common.bean.WxJsapiSignature;
    import me.chanjar.weixin.common.error.WxErrorException;
    import me.chanjar.weixin.mp.api.WxMpService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    @Slf4j
    @RequestMapping("/system/")
    @RestController
    public class SystemController {
    
        @Autowired
        private WeChatConfig weChatConfig;
    
        /**
         * 获取JsSDK配置参数
         * 参考:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62
         *
         * @param appId
         * @param currentUrl
         * @return
         * @throws WxErrorException
         */
        @CrossOrigin
        @PostMapping("/getJsSdkConfig")
        public WxJsapiSignature getJsSdkConfig(@RequestParam("app_id") String appId, @RequestParam("current_url") String currentUrl) throws WxErrorException {
            WxMpService wxMpService = weChatConfig.getWxMpService(appId);
            return wxMpService.createJsapiSignature(currentUrl);
        }
    }

    JS:

    代码参考: Java微信公众平台开发(十一)--微信JSSDK中Config配置

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width" />
    <title>JsSDK配置参数获取Demo</title>
    <script src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
    <script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"></script>
    <script>
        //用于JS调试
        var vConsole = new VConsole(); //初始化
    </script> -->
    <script type="text/javascript">
    
        function getUrlParameter(name){
            name = name.replace(/[]/,"[").replace(/[]/,"[").replace(/[]/,"\]");
            var regexS = "[\?&]"+name+"=([^&#]*)";
            var regex = new RegExp( regexS );
            var results = regex.exec(window.parent.location.href );
            if( results == null ) return ""; else {
                return results[1];
            }
        };
    
    
        function jssdk() {
            $.ajax({
                url : "https://www.phpdragon.com/system/getJsSdkConfig",
                type : 'post',
                //contentType: "application/json",
                dataType : 'json',
                data : {
                    'current_url' : location.href.split('#')[0],
                    'app_id': getUrlParameter("app_id")
                },
                async:true, 
                success : function(rsp) {
                    wx.config({
                        debug : true,
                        appId : rsp.appId,
                        timestamp : rsp.timestamp,
                        nonceStr : rsp.nonceStr,
                        signature : rsp.signature,
                        jsApiList : [ 'checkJsApi', 'onMenuShareTimeline',
                                'onMenuShareAppMessage', 'onMenuShareQQ',
                                'onMenuShareWeibo', 'hideMenuItems',
                                'showMenuItems', 'hideAllNonBaseMenuItem',
                                'showAllNonBaseMenuItem', 'translateVoice',
                                'startRecord', 'stopRecord', 'onRecordEnd',
                                'playVoice', 'pauseVoice', 'stopVoice',
                                'uploadVoice', 'downloadVoice', 'chooseImage',
                                'previewImage', 'uploadImage', 'downloadImage',
                                'getNetworkType', 'openLocation', 'getLocation',
                                'hideOptionMenu', 'showOptionMenu', 'closeWindow',
                                'scanQRCode', 'chooseWXPay',
                                'openProductSpecificView', 'addCard', 'chooseCard',
                                'openCard' ]
                    });
                },
                error : function(data){
                    alert("获取JsSDK参数异常:" + data);
                }
            });
        }
     
        function isWeiXin5() {
            var ua = window.navigator.userAgent.toLowerCase();
            var reg = /MicroMessenger/[5-9]/i;
            return reg.test(ua);
        }
    
        $(function(){
            jssdk();
        });
        
        
        function takePicture(){
            wx.chooseImage({
                count: 1, // 默认9
                sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
                sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
                success: function (res) {
                    wx.uploadImage({
                        localId: localIds.toString(), // 需要上传的图片的本地ID,由chooseImage接口获得
                        isShowProgressTips: 1, // 默认为1,显示进度提示
                        success: function (res) {
                            var mediaId = res.serverId; // 返回图片的服务器端ID,即mediaId
                            //将获取到的 mediaId 传入后台 方法savePicture
                            $.post("<%=request.getContextPath()%>/savePicture",{mediaId:mediaId},function(res){
                                if(res.t == 'success'){
    
                                }else{
                                    alert(res.msg)
                                }
                            })
                        },
                        fail: function (res) {
                            alertModal('上传图片失败,请重试')
                        }
                    }); 
                },
                fail: function (res) {
                    alertModal('上传图片失败,请重试2')
                },
                error: function (res) {
                    alertModal('上传图片失败,请重试3')
                }
            });
        }
        
        
        function checkJsApifunction () {
                 wx.checkJsApi({
                   jsApiList: [
                     'getNetworkType',
                     'previewImage',
                     "chooseImage",
                     "openLocation",
                     "getLocation",
                   ],
                   success: function (res) {
                     alert(JSON.stringify(res));
                   }
                 });
       }
       
        
    </script>
    </head>
    <body>
        <button onclick="takePicture()">拍照</button>
    </body>
    </html>

    效果:

    PS:

    微信JSSDK中Config配置

    JAVA 微信公众号调用摄像头并上传图片至服务器

    微信jssdk实现人脸拍照的代码和出现错误解决

    公众号开发文档wiki

    Java开发微信公众号之整合weixin-java-tools框架开发微信公众号

    从零实现 Spring Boot 2.0 整合 weixin-java-mp(weixin-java-tools) 获取 openId,用于微信授权

    Demo 列表

    1. 微信支付 Demo:GitHub码云
    2. 企业号/企业微信 Demo:GitHub码云
    3. 微信小程序 Demo:GitHub码云
    4. 开放平台 Demo:GitHub码云
    5. 公众号 Demo:
      • 使用 Spring MVC 实现的公众号 Demo:GitHub码云
      • 使用 Spring Boot 实现的公众号 Demo(支持多公众号):GitHub码云
      • 含公众号和部分微信支付代码的 Demo:GitHub码云
  • 相关阅读:
    lunix下的redis数据库操作——set集合
    lunix下的redis数据库操作——hash(哈希)
    lunix下的redis数据库操作——list列表
    python操作mysql
    linux修改mysql表结构
    关于wordclou的一些简单操作
    SQL NOW() 函数:返回当前系统的日期和时间
    SQL ROUND() 函数:把数值字段四舍五入为指定的小数位数
    SQL LEN() 函数:返回文本字段中值的长度
    SQL MID() 函数:从文本字段中提取字符
  • 原文地址:https://www.cnblogs.com/phpdragon/p/12557750.html
Copyright © 2020-2023  润新知