[IT]微擎“码上点餐”无法调出系统支付方式的bug解决

 2018-12-18 08:18:45   评论   9,036次浏览

我们在使用一些开源系统时,多多少少会根据实际的需要进行二次开发,这也是开源系统的一个亮点,当然,有些程序会存在一些兼容问题和bug,在开发者没有及时发现和修复的同时,我们可以通过修改原始代码来解决这些bug,毕竟等开发者更新版本还是一个不确定的时间。

近期,工程师购买了一款“码上点餐”开源系统的授权,在使用过程中发现,即使是在前台都设置了相关的参数,也会出现部分支付方式调用不出来的问题,这是一个比较令人棘手的bug,在反复测试设置问题没有错的时候,我们就找到代码的相关位置,力求微擎“码上点餐”系统支付方式无法调出bug解决完美。

找其中的一个位置为例:

码上点餐源码

我们可以看出两个if来读取对应支付方式的设置与否,当我们单独留下第一个if来看发现对应支付方式可以调出。

然后我们将第二个if加上,无法调出对应的支付方式选项,可以见的是第二个if没有起作用。

我们用 echo来读取对应函数的值,也会发现没有问题,最后就可以确定empty函数出了问题,这个函数其实是比较坑的,我们来用一个近乎等效的函数试一试。

issset

{if !isset($pay['credit'][''])}

将原有的第二个if改成这个之后,再刷新前台,我们就可以发现问题完美解决了,所以问题出在这个函数上,对于读取设置方式的函数我们还是尽量使用isset。

剩余后面的几个支付方式也是用同样的方法就可以解决。

蚂蚁森林为我浇水吧!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: