<?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);
}
后面再整理,暂时记录。