您当前的位置:网站首页>ThinkPHP>thinkphp网站支付宝异步回调验签失败问题 找thinkphp教程就上ki4.cc (>^ω^<),thinkphp,支付宝

thinkphp网站支付宝异步回调验签失败问题 找thinkphp教程就上ki4.cc (>^ω^<),thinkphp,支付宝

2020年07月04日 投稿作者: 围观人数:35

thinkphp5如何调用云片接口实现发送短信验证码找回密码功能 找thinkphp教程就上ki4.cc (>^ω^<)

思路:1、用户输入手机号,请求获取短信验证码。2、thinkphp生成短信验证码,存储,同时和其他参数一起发送请求给云片。3、云片发送短信验证码到指定手机号。4、用户输入短信验证码。5、thinkphp根据验证码是否正确、验证码是否过期两个条件判断是否验证通过。

下面由 thinkphp框架教程栏目给大家介绍thinkphp网站支付宝异步回调验签失败问题,希望对需要的朋友有所帮助!

手头一个项目,用到了支付宝手机网站支付,项目用tp做的,下载支付宝SDK后修改后调起正常,同步接口也可访问,但异步接口验签总是错误失败,fail,追踪到AopClient.php的580行,下段代码处

if ("RSA2" == $signType) {
    $result = (bool) openssl_verify($data, base64_decode($sign), $res, OPENSSL_ALGO_SHA256);//这句报错
} else {
    $result = (bool) openssl_verify($data, base64_decode($sign), $res);
}

打印print_r(openssl_error_string());,输出的是

error:0906D06C:PEM routines:PEM_read_bio:no start line

百度无果,有说证书错误的乱七八糟,本人换证书也没用。

ThinkPHP如何使用命令行 (cli) think调用 找thinkphp教程就上ki4.cc (>^ω^<)

在某些场景里,我们需要在命令行中调用代码,本文将具体实例介绍ThinkPHP如何使用命令行(cli) think调用的,希望可以帮助到大家,与大家一起学习。

后来偶然发现输入有问题,最终找到一个原因:

这里接收支付宝异步通知的时候,不能使用I函数

$data=I("post.");//项目中这样写,导致支付宝传来的数据部分特殊字符被过滤,具体主要是fund_bill_list和sign这两部分
$data=$_POST;//写成这样就好了

还有一点:

无论签名验证是否正确,openssl_error_string()始终输出error:0906D06C:PEM routines:PEM_read_bio:no start line,这是我这边的情况,具体未深究。

以上就是thinkphp网站支付宝异步回调验签失败问题的详细内容,更多请关注ki4导航其它相关文章!

ThinkPHP特点有哪些 找thinkphp教程就上ki4.cc (>^ω^<)

ThinkPHP特点有:1、采用容器统一管理对象;2、支持Facade;3、更易用的路由;4、注解路由支持;5、路由跨域请求支持;6、验证类增强;7、配置和路由目录独立;8、​取消系统常量;9、类库别名机制等等。

标签

版权说明
免责声明:本文文章内容由ki4导航网发布,但不代表本站的观点和立场,具体内容可自行甄别.