微信图片接口的使用,其他接口类似

232 篇文章 0 订阅
7 篇文章 0 订阅
<?php include 'header.php'; ?>
<style>
    .o-mis-bx-table-hd td{
        display: inline-block;
        margin: 5px;
    }
    .o-mis-r-cost{
        font-size: 12px;
    }
    .del{
        display: inline-block;
        float: right;
        color: #27c5de;
    }
    .o-mis-bx-table-hd,.omis-pub2-table{font-size:0.3rem;}
    .omis-pub2-table td{
        padding: 2%;

    }
</style>

<div id="img">123</div>

<form action="<?=Yii::$app->urlManager->createUrl('/Wxmsg/wximg/doadd');?>" method="post">
<input type="hidden" name="id" value="<?= $id; ?>"/>

 <input type="button" value="拍照" class="weui-qrcod-btn" id="start_qrcode_id"/>
 <input type="submit" value="提交" class="weui-qrcod-btn" id="submit"/>
</form>
<?php include 'footer.php'; ?>
<script type="application/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

<script>
    var obj = new Object();
    var images = [];
    obj.arr = [];
    var ioslocId = [];
    var localIds = 0;
    var html = '';
    //通过config接口注入权限验证配置
    wx.config({
        beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
        debug: false, // true开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: '<?=$config['appId'];?>', // 必填,企业微信的corpID
        timestamp: <?=$config['timestamp'];?>, // 必填,生成签名的时间戳
        nonceStr: '<?=$config['nonceStr'];?>', // 必填,生成签名的随机串
        signature: '<?=$config['signature'];?>',// 必填,签名,见附录1
        //jsApiList: [<?=json_encode($config['jsApiList']);?>]
        jsApiList: ['getLocalImgData','scanQRCode','chooseImage']//必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });

    wx.ready(function () {
        $("#start_qrcode_id").click(function () {
            wx.chooseImage({
                count: 1, // 默认9
                sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
                sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有'album', 'camera'
                defaultCameraMode: "batch", //表示进入拍照界面的默认模式,目前有normal与batch两种选择,normal表示普通单拍模式,batch表示连拍模式,不传该参数则为normal模式。(注:用户进入拍照界面仍然可自由切换两种模式)
                isSaveToAlbum: 0, //整型值,0表示拍照时不保存到系统相册,1表示自动保存,默认值是1
                success: function (res) {
                    var rows = '';
                    localIds = res.localIds; // 返回选定照片的本地ID列表,
                    images.push(localIds);
                    if (window.__wxjs_is_wkwebview) { //判断ios是不是用的 wkwebview 内核
                        for (var i = 0; i < localIds.length; i++) {
                            wx.getLocalImgData({ //循环调用 getLocalImgData
                                localId: localIds[i],
                                // 图片的localID
                                success: function(res) {
                                    var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
                                    localData = localData.replace('jgp', 'jpeg'); //iOS 系统里面得到的数据,类型为 image/jgp,因此需要替换一下
                                    ioslocId.push(localData); //把base64格式的图片添加到ioslocId数组里 这样该数组里的元素都是base64格式的
                                    rows = "";
                                    for (var j = 0; j < ioslocId.length; j++) {
                                        rows += `<img src="` + ioslocId[j] + `" width="100%" height="30%"/>`;
                                    }
                                    $("#img").html(rows);
                                },
                                fail: function(res) {
                                    alert("res");
                                }
                            });
                        }
                    } else {
                        //如果不是用的wkwebview 内核 或者是用的安卓系统 执行下面的xunh
                        $.each(images, function(index, el) {
                            rows += `<img src="` + el + `" width="100%" height="30%"/>`;
                            });
                        $("#img").html(rows);
                    }
                    // andriod中localId可以作为img标签的src属性显示图片;
                    // iOS应当使用 getLocalImgData 获取图片base64数据,从而用于img标签的显示(在img标签内使用 wx.chooseImage 的 localid 显示可能会不成功)
                },
                error: function (res) {
                    alert(res);
                    if (res.errMsg.indexOf('function_not_exist') > 0) {
                        alert('版本过低请升级')
                    }
                }
            });
        });
    });

    //提交验证
    $('#submit').click(function () {
        var invoice_code = $('input[name*="invoice_code"]').val();
        if (!invoice_code) {
            alert('请扫描发票');
            return false;
        }
    });

    function del(o) {
        var i = $(o).parent().find('.invoice').val();
        var n = $(o).parent().find('.number').val();
        for (var x = 0; x < obj.arr.length; x++) {
            if (i+n == obj.arr[x]) {
                obj.arr.splice(x,1);
            }
        }
        $(o).parent().remove();
    }
</script>
  public function actionQrimg()
    {
        //微信信息
        $wxmsg_moble = new QyWechat();
        $wxmsg_moble->corpId = "";
        $wxmsg_moble->appId = "";
        $wxmsg_moble->secret = "";
        $jsconfig = $wxmsg_moble->jsApiConfig();

        return $this->renderPartial('qr_img', array('config' => $jsconfig));
    }
    /**
     * 生成js 必需的config
     * 只需在视图文件输出JS代码:
     *  wx.config(<?= json_encode($wehcat->jsApiConfig()) ?>); // 默认全权限
     *  wx.config(<?= json_encode($wehcat->jsApiConfig([ // 只允许使用分享到朋友圈功能
     *      'jsApiList' => [
     *          'onMenuShareTimeline'
     *      ]
     *  ])) ?>);
     * @param array $config
     * @return array
     * @throws HttpException
     */
    public function jsApiConfig(array $config = [])
    {
        $data = [
            'jsapi_ticket' => $this->getJsApiTicket(),
            'noncestr' => Yii::$app->security->generateRandomString(16),
            'timestamp' => $_SERVER['REQUEST_TIME'],
            'url' => explode('#', Yii::$app->request->getAbsoluteUrl())[0]
        ];
        return array_merge([
            'debug' => YII_DEBUG,
            'appId' => $this->corpId,
            'timestamp' => $data['timestamp'],
            'nonceStr' => $data['noncestr'],
            'signature' => sha1(urldecode(http_build_query($data))),
            'jsApiList' => [
                'onMenuShareTimeline',
                'onMenuShareAppMessage',
                'onMenuShareQQ',
                'onMenuShareWeibo',
                'startRecord',
                'stopRecord',
                'onVoiceRecordEnd',
                'playVoice',
                'pauseVoice',
                'stopVoice',
                'onVoicePlayEnd',
                'uploadVoice',
                'downloadVoice',
                'chooseImage',
                'previewImage',
                'uploadImage',
                'downloadImage',
                'translateVoice',
                'getNetworkType',
                'openLocation',
                'getLocation',
                'hideOptionMenu',
                'showOptionMenu',
                'hideMenuItems',
                'showMenuItems',
                'hideAllNonBaseMenuItem',
                'showAllNonBaseMenuItem',
                'closeWindow',
                'scanQRCode',
                'getLocalImgData',
            ]
        ], $config);
    }

后面再整理,暂时记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值