业务需求 使用支付宝小程序获取用户手机号 遇到的问题 - 和 js/java 对接接口时,遇到 php 端拿不到 POST 的数据问题 - mcrypt_decrypt() 函数的坑,解决了, 关键词 PHPAES 密钥 - 支付宝小程序:后端解密测试 - 解密成功之后得到的明文是:ISV权限不足,建议在开发者中心检查对应功能是否已经添加,解决办法详见:https://docs.open.alipay.com/common/isverror 问题解决过程 php 端拿不到 POST 的数据问题 https://www.cnblogs.com/tugenhua0707/p/8975615.html 关键点在于:HTTP请求中 request payload 和 formData 区别 $this->request->input(\'json_decode\', true); 或者 js 端请求时加上:headers:{\'content-type\':\'application/x-www-form-urlencoded\'} mcrypt_decrypt() 函数的坑 mcrypt_decrypt() 在调用时报出了 warning:mcrypt_decrypt() Encryption mode requires an initialization vector of size 16
对比alipay_sdk的最新版本 AopEncrypt.php 中的解密方法decrypt($str,$screct_key),发现 $iv 只定义了但是没有用到,不知道是当时开发的人漏掉了还是?
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);
$encrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);
果断下载新版 alipay_sdk 拿来 AopEncrypt.php 中的解密方法decrypt($str,$screct_key) 用了。
下载新版 alipay_sdk 时发生了一个小插曲,下载后的zip文件不可用,bing.com 查了一下,用 safari 下载成功了。
https://opendocs.alipay.com/mini/introduce/getphonenumber 获取会员手机号,产品介绍,里面说到:目前,获取会员手机号功能仅对企业开发者开放。
在设置应用网关时注意:服务器对支付宝的接口地址,不用写全的,要写 https://xx.xx.cn/api
资料清单https://opendocs.alipay.com/mini/introduce/getphonenumber 获取会员手机号,产品介绍,里面说到:目前,获取会员手机号功能仅对企业开发者开放。
https://blog.csdn.net/diandianxiyu_geek/article/details/86250490 PHP 获取用户敏感信息手机号 验签解密 RSA解密 AES解密
https://www.jianshu.com/p/54a027ed96f8 这篇把PHP的AES加解密说的很细致