单次分账后就解封了资金,不能再分了
调用单次分账失败后,再次调用返回分账金额不足我用单次分账接口调用分账返回不成功,然后后面再请求的时候就报“分账金额不足”,但是此订单没有被分账过,也无法查到到有他的分账记录. 之后分账就一直返回不成功 提示分账金额不足。请问如何解决这个? <err_code><![CDATA[AMOUNT_OVERDUE]]></err_code> <err_code_des><![CDATA[分账金额不足]]></err_code_des>
2021-05-12亲身经历,服务器问题,安装是之前的镜像,宝塔面板,镜像里的宝塔有防火墙,导致新服务器里被444拦截了,重新安装防火墙就好了
https token验证失败 ,从后台看请求未到服务器,浏览器中输入认证url是可以访问的https token验证失败 ,从后台看请求未到服务器,浏览器中输入认证url是可以访问的
2021-04-20好人啊,data要转json
无法获取直播房间列表?"errmsg": "empty post data hint: [bQSsA[图片]
2020-03-29同样遇到这个坑,不同小程序,一样的代码,一个解密正常获取到手机号,另外一个就一直41001.
php版获取unionid,有时候解密失败环境:php5.5.7 问题: 有时候获取unionid失败,检查是openssl_decrypt解密后的数据为空 场景:假如我有一段时间没有操作微信开发者工具,第一次就会解密失败,后续都会成功 [代码]public[代码] [代码]function[代码] [代码]decryptUser([代码][代码]$sessionKey[代码][代码], [代码][代码]$encryptData[代码][代码], [代码][代码]$iv[代码][代码])[代码][代码]{[代码][代码] [代码][代码]$errorCode[代码] [代码]= [[代码][代码] [代码][代码]0=>[代码][代码]'ok'[代码][代码],[代码][代码] [代码][代码]41001=>[代码][代码]'encodingAesKey 非法'[代码][代码],[代码][代码] [代码][代码]41002=>[代码][代码]'IllegalIv'[代码][代码],[代码][代码] [代码][代码]41003=>[代码][代码]' aes 解密失败'[代码][代码],[代码][代码] [代码][代码]41004=>[代码][代码]'解密后得到的buffer非法'[代码][代码],[代码][代码] [代码][代码]41005=>[代码][代码]'base64解密失败'[代码][代码],[代码][代码] [代码][代码]41016=>[代码][代码]'base64解密失败'[代码][代码],[代码][代码] [代码][代码]];[代码][代码] [代码][代码]if[代码] [代码](mb_strlen([代码][代码]$sessionKey[代码][代码]) !== 24) {[代码][代码] [代码][代码]throw[代码] [代码]new[代码] [代码]\Exception([代码][代码]$errorCode[代码][代码][41001], 41001);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]if[代码] [代码](mb_strlen([代码][代码]$iv[代码][代码]) !== 24) {[代码][代码] [代码][代码]throw[代码] [代码]new[代码] [代码]\Exception([代码][代码]$errorCode[代码][代码][41002], 41002);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]$aesKey[代码] [代码]= [代码][代码]base64_decode[代码][代码]([代码][代码]$sessionKey[代码][代码]);[代码][代码] [代码][代码]$aesIv[代码] [代码]= [代码][代码]base64_decode[代码][代码]([代码][代码]$iv[代码][代码]);[代码][代码] [代码][代码]$aesCipher[代码] [代码]= [代码][代码]base64_decode[代码][代码]([代码][代码]$encryptData[代码][代码]);[代码][代码] [代码][代码]$result[代码] [代码]= openssl_decrypt([代码][代码]$aesCipher[代码][代码], [代码][代码]'AES-128-CBC'[代码][代码], [代码][代码]$aesKey[代码][代码], 1, [代码][代码]$aesIv[代码][代码]);[代码][代码] [代码][代码]var_dump([代码][代码]$result[代码][代码]);[代码][代码] [代码][代码]$decodeResult[代码] [代码]= json_decode([代码][代码]$result[代码][代码],true);[代码][代码] [代码][代码]var_dump([代码][代码]$decodeResult[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]empty[代码][代码]([代码][代码]$decodeResult[代码][代码])) {[代码][代码] [代码][代码]throw[代码] [代码]new[代码] [代码]\Exception([代码][代码]$errorCode[代码][代码][41003], 41003);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]$decodeResult[代码][代码][[代码][代码]'watermark'[代码][代码]][[代码][代码]'appid'[代码][代码]] !== [代码][代码]$this[代码][代码]->appid) {[代码][代码] [代码][代码]throw[代码] [代码]new[代码] [代码]\Exception([代码][代码]$errorCode[代码][代码][41003], 41003);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]$decodeResult[代码][代码];[代码][代码]}[代码]
2018-08-18如何获取第2个循环的index
【转】微信小程序入门教程--列表渲染多层嵌套循环及wx:key的使用前言入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉。 [代码]<view wx:for="{{items}}"> {{index}}: {{item.message}}</view>[代码]还有一个九九乘法表把数据直接写到wxml里的,并不是动态二维数组的列表渲染。 [代码]<view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="i"> <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="j"> <view wx:if="{{i <= j}}"> {{i}} * {{j}} = {{i * j}} </view> </view></view>[代码]那么今天,我们主要来讲讲动态多维数组和对象混合的列表渲染。 [图片] '' 讲解何为多维数组和对象混合,给个很简单的例子 [代码] twoList:[{ id:1, name:'应季鲜果', count:1, twodata:[{ 'id':11, 'name':'鸡脆骨' },{ 'id':12, 'name':'鸡爪' }] },{ id:2, name:'精致糕点', count:6, twodata:[{ 'id':13, 'name':'羔羊排骨一条' },{ 'id':14, 'name':'微辣' }] }][代码]上述例子就是一个数组,这都是我们日常开发过程中,经常会碰到的JSON格式, 该数组的元素是有对象,对象又分为属性,属于数组对象混合,可能对于刚接触小程序的童鞋,碰到这种数组对象混合的就会发难了。 一层循环[代码] oneList:[{ id:1, name:'应季鲜果', count:1 },{ id:2, name:'精致糕点', count:6 },{ id:3, name:'全球美食烘培原料', count:12 },{ id:4, name:'无辣不欢生猛海鲜', count:5 }][代码]以上数组对象混合JSON,是测试只有一层循环的,我们看看在[代码]wxml[代码]里怎么循环,我们先看一下要循环渲染到页面上的效果图。 [图片] '' [代码]<view wx:for="{{oneList}}" wx:key="id"> {{index+1}}、{{item.name}}</view>[代码]我们可以看到,这里直接用两个花括号来给[代码]view[代码] 循环列表,注意强调一下,请记得一下要用 两个花括号数据起来,如果不包起来,[代码]view[代码]也会循环出来,但并不是自己要循环的数据,而且是给了一个假象给你以为是有循环了,这里开发工具有点坑人的感觉,这个还需要多细心点,这里记住一点,只要是有数据的,就需要花括号。 另外默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item,同时我这里也顺道演示了如何使用数组变量名和下标。 二层循环[图片] '' JSON代码 [代码] twoList:[{ id:1, name:'应季鲜果', count:1, twodata:[{ 'id':11, 'name':'鸡脆骨' },{ 'id':12, 'name':'鸡爪' }] },{ id:2, name:'精致糕点', count:6, twodata:[{ 'id':13, 'name':'羔羊排骨一条' },{ 'id':14, 'name':'微辣' }] },{ id:3, name:'全球美食烘培原料', count:12, twodata:[{ 'id':15, 'name':'秋刀鱼' },{ 'id':16, 'name':'锡箔纸金针菇' }] }][代码]wxml代码 [代码] <view class="pad10" wx:for="{{twoList}}" wx:key="id"> <view> {{index+1}}、{{item.name}} </view> <view wx:for="{{item.twodata}}" wx:for-item="twodata" wx:key="id"> ----{{twodata.name}}---{{item.name}} </view> </view>[代码]以上截图和代码是二层嵌套内容。 我们在wxml代码里,很明显的看到有两个[代码]wx:for[代码]的控制属性,在二层循环的JSON代码里,我们看每个单数组里还有一级数据[代码]twodata[代码],这里是需要再循环渲染到页面上的,在第一层数据里,直接再循环[代码]item.twodata[代码]即可,请记得一定要带上花括号。 在第二层的循环里,建议把当前项的变量名改为其他,即在wxml代码里看到的[代码]wx:for-item="twodata"[代码],因为默认的当前项的变量名为[代码]item[代码],如果不改换其他的话,你是拿不到第一层循环的数据的,因为被第二层的变量名覆盖了。 所以我们在wxml代码里,在第二层循环时,可以看到还可以循环第一层的值,即[代码]----{{twodata.name}}---{{item.name}}[代码]。 三层以上的多层循环三层以上的多层的数组循环,在原理上同二层循环是一样的,能理解了二层数组循环,对于三层以及三层以上都能得心应用的。 需要注意的地方,那就是老生常谈的问题了,数据需要用花括号括起来,从第二层起,把默认的当前项的变量名改为其他,例如[代码]wx:for-item="twodata"[代码],还有细心再细心。 wx:key唯一标识符为什么会有[代码]wx:key[代码]的出现呢,官方给的解释是,如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 [代码]input[代码] 中的输入内容,[代码]switch[代码] 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。 当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。 在开发过程中,[代码]wx:key[代码]的作用对于项目作用是非常大的,如果从文字上无法理解的童鞋,可以到github clone demo到微信开发工具里,亲自体验下。 [图片] '' 我们看到这个GIF动画图,这里有一个[代码]switch[代码]的开启状态,[代码]switch[代码]的状态是在标题为[代码]羔羊排骨一条[代码]的,在对这个数组增加数据时,这个[代码]switch[代码]的状态并不跟随着[代码]羔羊排骨一条[代码],并不保持自己的状态。 那我们再看另一个例子,使用了wx:key唯一标识符。 [图片] '' 这个GIF动画图,也是点击开启了[代码]switch[代码]的状态,唯一有不同的地方,就是在新增数据时,是保持着自己的状态的。 相信通过这两个小例子,对wx:key唯一标识符应该也有所了解啦,想要提升技术,就要多折腾,自己在小程序里,写个[代码]wx:for[代码] 和 [代码]wx:key[代码] 体会下。 还有一个需要注意的地方,我们先看看以下代码 [代码]<view class="pad10" wx:for="{{twoList}}" wx:key="id"> </view>[代码][代码]wx:key="id"[代码],我们看到[代码]wx:key[代码]里的值并不需要花括号的,是的,这里是比较特别的地方,不需要花括号,同时也不需要参数名,需要是虽然数据里的一个字段名。 原作者:蓝狐锅锅(简书作者) 来自:http://www.jianshu.com/p/87cdf985b2b9
2018-08-11