错误现象:
在Laravel中,直接引入alipay时,会报这个错误:
Symfony\Component\ErrorHandler\Error\FatalError: Cannot redeclare decrypt() (previously declared in /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:372) in file vendor/Alipay/aop/AopEncrypt.php on line 51
报错原因:
alipaySDK中定义的Encrypt()/Decrypt()函数与Laravel中定义的Encrypt()/Decrypt()函数重名了。
解决办法:
修改alipaySDK中定义的函数名称、修改引用的函数名称。
解决步骤:
在官方给的SDK中,一共有需要修改三个文件中的内容:
aop/AopEncrypt.php
aop/AopClient.php
lotusphp_runtime/Cookie/Cookie.php
最后一个cookie因为我是app支付所以找半天找不到最后发现只要吧上面有的改掉 就可以啦。
在文件中查找encrypt/decrypt替换为alipayEncrypt/alipayDecrypt即可。