- 关于小程序码 接口二的问题。
小程序生成小程序码接口B,POST参数只列出了scene 以及几个关于外观的参数,我现在有一个小程序项目,需要的小程序码数量比较多,而且必须是永久有效的,需要带一些自定义的参数,比如artical=12345&uer=654321之类的,接口B是否可以实现,另外关于二维码包括小程序码,具体扫码次数有哪些限制,好像文档都不是很明确。这些对我的项目很重要。谢谢先。
2017-06-29 - bug :关于wx.chooseImage
当我们调用wx.chooseImage时,返回的图片信息是src和size,其中src是一个生成的临时图片路径,不是这张图片在手机设备里的真实路径和文件名。而且两次调用wx.chooseImage选择同一张图片生成的临时路径名称是不一样的,这样就出现了一个问题,当我们设计一个page时,客户选择并添加了一张图片,当其再次添加图片时,没有办法确认一张图片是否已经被选择过了,造成了一种情况就是同一张图片有可能被添加多次。虽然从用户的角度可以注意不去选择已经选择过的,但是有时图片区别不大时还是容易搞错。 个人建议,程序接口生成图片的临时名称时,针对同一图片时相同的,这样就可以判断两次wx.chooseImage选择的图片有没有重复。
2017-06-21 - 关于官方示例小程序中wx.chooseImage的问题
在官方示例小程序中,wx.chooseImage的示例选择了几张图片后,若想追加图片,前面选择的图片就消失了,如何解决这个问题?(注图片总数没有超过最高限9)。 最终效果和我们发朋友圈一样,可以追加,删除图片,如何做????
2017-06-19 - wx.showModal是否可以显示图片
wx.showModal是否可以显示图片
2017-06-19 - 写了一个用于解码获取unionid的Yii2的组件,比较乱,能用。
[代码]<?php[代码][代码]/**[代码][代码] [代码][代码]* Created by PhpStorm.[代码][代码] [代码][代码]* User: Administrator[代码][代码] [代码][代码]* Date: 2017/6/14[代码][代码] [代码][代码]* Time: 10:29[代码][代码] [代码][代码]* 解码获取微信unionID[代码][代码] [代码][代码]* 小程序端:[代码][代码] [代码][代码]* 1,wx.login 后获取code[代码][代码] [代码][代码]* 2 wx.getUserInfo({withCredentials:true})获得$encrptedData和$iv[代码][代码] [代码][代码]* 3 将$session_key $encrptedData $iv 传递到客户api服务器[代码][代码] [代码][代码]*[代码][代码] [代码][代码]* 客户api服务器端[代码][代码] [代码][代码]* 1 将本类设置为组件[代码][代码] [代码][代码]* 2 code换session_key[代码][代码] [代码][代码]* https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code[代码][代码] [代码][代码]* 3 $wx = Yii::$app->WxBizDataCrypt[代码][代码] [代码][代码]* $wx->setData($session_key $encrptedData $iv)[代码][代码] [代码][代码]* $wx->decryptData()[代码][代码] [代码][代码]*/[代码][代码]namespace[代码] [代码]backend\components\wx_decode;[代码] [代码]use[代码] [代码]Yii;[代码][代码]use[代码] [代码]yii\base\Component;[代码][代码]use[代码] [代码]yii\base\Exception;[代码] [代码]class[代码] [代码]WxBizDataCrypt [代码][代码]extends[代码] [代码]Component[代码][代码]{[代码] [代码] [代码][代码]public[代码] [代码]$appid[代码] [代码]= [代码][代码]'wxaxxxxxxxxxxxxxxxxxxx'[代码][代码];[代码][代码] [代码][代码]//public $session_key;[代码][代码] [代码][代码]public[代码] [代码]$aesKey[代码][代码];[代码][代码] [代码][代码]public[代码] [代码]$aesIv[代码][代码];[代码][代码] [代码][代码]public[代码] [代码]$aesCipher[代码][代码];[代码] [代码] [代码][代码]public[代码] [代码]static[代码] [代码]$error_code[代码] [代码]= [[代码][代码] [代码][代码]'ok'[代码] [代码]=> 0,[代码][代码] [代码][代码]'IllegalAesKey'[代码] [代码]=> -41001,[代码][代码] [代码][代码]'IllegalIv'[代码] [代码]=> -41002,[代码][代码] [代码][代码]'IllegalBuffer'[代码] [代码]=> -41003,[代码][代码] [代码][代码]'DecodeBase64Error'[代码] [代码]=> -41004[代码][代码] [代码][代码]];[代码] [代码] [代码][代码]public[代码] [代码]function[代码] [代码]setData([代码][代码]$session_key[代码][代码],[代码][代码]$encryptedData[代码][代码],[代码][代码]$iv[代码][代码]){[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]strlen[代码][代码]([代码][代码]$session_key[代码][代码]) != 24) {[代码][代码] [代码][代码]return[代码] [代码]static[代码][代码]::[代码][代码]$error_code[代码][代码][[代码][代码]'IllegalAesKey'[代码][代码]];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]$this[代码][代码]->aesKey = [代码][代码]base64_decode[代码][代码]([代码][代码]$session_key[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]strlen[代码][代码]([代码][代码]$iv[代码][代码]) != 24) {[代码][代码] [代码][代码]return[代码] [代码]static[代码][代码]::[代码][代码]$error_code[代码][代码][[代码][代码]'IllegalIv'[代码][代码]];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]$this[代码][代码]->aesIv=[代码][代码]base64_decode[代码][代码]([代码][代码]$iv[代码][代码]);[代码][代码] [代码][代码]$this[代码][代码]->aesCipher=[代码][代码]base64_decode[代码][代码]([代码][代码]$encryptedData[代码][代码]);[代码][代码] [代码][代码]return[代码] [代码]true;[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]public[代码] [代码]function[代码] [代码]decryptData()[代码][代码] [代码][代码]{[代码][代码] [代码][代码]//$pc = new Prpcrypt($aesKey);[代码][代码] [代码][代码]$result[代码] [代码]= [代码][代码]$this[代码][代码]->decrypt();[代码] [代码] [代码][代码]if[代码] [代码]([代码][代码]$result[代码][代码][0] != 0) {[代码][代码] [代码][代码]return[代码] [代码]$result[代码][代码][0];[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]$dataObj[代码][代码]=json_decode( [代码][代码]$result[代码][代码][1] );[代码][代码] [代码][代码]if[代码][代码]( [代码][代码]$dataObj[代码] [代码]== NULL )[代码][代码] [代码][代码]{[代码][代码] [代码][代码]return[代码] [代码]static[代码][代码]::[代码][代码]$error_code[代码][代码][[代码][代码]'IllegalBuffer'[代码][代码]];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]if[代码][代码]( [代码][代码]$dataObj[代码][代码]->watermark->appid != [代码][代码]$this[代码][代码]->appid )[代码][代码] [代码][代码]{[代码][代码] [代码][代码]return[代码] [代码]static[代码][代码]::[代码][代码]$error_code[代码][代码][[代码][代码]'IllegalBuffer'[代码][代码]];[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]return[代码] [代码]$result[代码][代码][1];[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 对密文进行解密[代码][代码] [代码][代码]* @param string $aesCipher 需要解密的密文[代码][代码] [代码][代码]* @param string $aesIV 解密的初始向量[代码][代码] [代码][代码]* @return string 解密得到的明文[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]public[代码] [代码]function[代码] [代码]decrypt()[代码][代码] [代码][代码]{[代码] [代码] [代码][代码]try[代码] [代码]{[代码] [代码] [代码][代码]$module[代码] [代码]= mcrypt_module_open(MCRYPT_RIJNDAEL_128, [代码][代码]''[代码][代码], MCRYPT_MODE_CBC, [代码][代码]''[代码][代码]);[代码] [代码] [代码][代码]mcrypt_generic_init([代码][代码]$module[代码][代码], [代码][代码]$this[代码][代码]->aesKey, [代码][代码]$this[代码][代码]->aesIv);[代码] [代码] [代码][代码]//解密[代码][代码] [代码][代码]$decrypted[代码] [代码]= mdecrypt_generic([代码][代码]$module[代码][代码], [代码][代码]$this[代码][代码]->aesCipher);[代码][代码] [代码][代码]mcrypt_generic_deinit([代码][代码]$module[代码][代码]);[代码][代码] [代码][代码]mcrypt_module_close([代码][代码]$module[代码][代码]);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](Exception [代码][代码]$e[代码][代码]) {[代码][代码] [代码][代码]return[代码] [代码]array[代码][代码]([代码][代码]static[代码][代码]::[代码][代码]$error_code[代码][代码][[代码][代码]'IllegalBuffer'[代码][代码]], null);[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]//去除补位字符[代码][代码] [代码][代码]//$pkc_encoder = new PKCS7Encoder;[代码][代码] [代码][代码]$result[代码] [代码]= [代码][代码]$this[代码][代码]->decode([代码][代码]$decrypted[代码][代码]);[代码] [代码] [代码][代码]} [代码][代码]catch[代码] [代码](Exception [代码][代码]$e[代码][代码]) {[代码][代码] [代码][代码]//print $e;[代码][代码] [代码][代码]return[代码] [代码]array[代码][代码]([代码][代码]static[代码][代码]::[代码][代码]$error_code[代码][代码][[代码][代码]'IllegalBuffer'[代码][代码]], null);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]array[代码][代码](0, [代码][代码]$result[代码][代码]);[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 对解密后的明文进行补位删除[代码][代码] [代码][代码]* @param decrypted 解密后的明文[代码][代码] [代码][代码]* @return 删除填充补位后的明文[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]public[代码] [代码]function[代码] [代码]decode([代码][代码]$text[代码][代码])[代码][代码] [代码][代码]{[代码] [代码] [代码][代码]$pad[代码] [代码]= ord([代码][代码]substr[代码][代码]([代码][代码]$text[代码][代码], -1));[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]$pad[代码] [代码]< 1 || [代码][代码]$pad[代码] [代码]> 32) {[代码][代码] [代码][代码]$pad[代码] [代码]= 0;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]substr[代码][代码]([代码][代码]$text[代码][代码], 0, ([代码][代码]strlen[代码][代码]([代码][代码]$text[代码][代码]) - [代码][代码]$pad[代码][代码]));[代码][代码] [代码][代码]}[代码][代码]}[代码]
2017-06-19 - bug bug bug
之前发过一个帖子,关于地理位置信息错误的,上个帖子显示已解决,实际还是没有解决啊 你们是想让我们山东省德州市的人民脱离中国 加入美国吗?中国的德州不是美国的德克萨斯州。 avatarUrl:"http://wx.qlogo.cn/mmopen/vi_32/kGKbbFqdlocPYY7RXDsPBExoFN45lwSLLiahp6jrPK8eOA7UhcZB8JEibicerVlCaqApazlq6JGREgUAGJtcR547Q/0" city:"Texas" country:"CN" gender:1 language:"zh_CN" nickName:"禹城苗方祛痘养生" province:"Shandong" 上个帖子网址
2017-06-12 - 建议把扫码按钮放在微信的header上。
微信越来越多的使用扫码功能,应该吧扫码按钮放在header上,现在还要点进去才能使用,有点麻烦,支付宝就很方便。个人建议。
2017-02-01 - Bug!Bug!Bug! report!
你们的位置数据库有个Bug,我是山东省德州地区的,在开发小程序的时候,发现你们把我的位置信息识别为 shandong texas,哥们Texas是美国的德克萨斯州,简称德州,和我们中国的德州不是一回事。 如下: Object { nickName: "禹城苗方祛痘养生", avatarUrl: "http://wx.qlogo.cn/mmhead/PiajxSqBRaELicv3Cqib7rTNpcv3GsAyUicOfQbMMAEbFDqUDtDYtibwHeg/132", gender: 2, province: "Shandong", city: "Texas" }
2017-02-01