微信支付服务端接入报错
服务端 php 5.6 接的是 wechatpay-guzzle-middleware,运行代码报错如下:
download failed, message=[AEAD_AES_256_GCM需要PHP 7.1以上或者安装libsodium-php] exception 'RuntimeException' with message 'AEAD_AES_256_GCM需要PHP 7.1以上或者安装libsodium-php'
由于php版本5.6,比较旧的版本,按照提示安装的libsodium-php
下载libsodium 1.0.6 版本,扩展成功
运行代码还是失败,
function_exists('\Sodium\crypto_aead_aes256gcm_is_available' ) 可以检测到方法,但是返回false
\Sodium\crypto_aead_aes256gcm_decrypt 方法不存在,
请问有没有人遇到这个问题啊,怎么解决呢?
老项目要上新功能,建议混合PHP版本开发, PHP7.1及以上使用 wechatpay-php 做个内部http接口服务,php56直接调用这个http服务,省却折腾环境了。
另外,从crypto_aead_aes256gcm_is_available 方法的官方文档看,貌似是你的硬件不支持AESGCM,详细见: https://www.php.net/manual/en/function.sodium-crypto-aead-aes256gcm-is-available.php