抖音小程序支付宝异步回调中验签php代码

异步回调中验签中我遇到坑:openssl_verify()总是返回0;问了支付宝技术客服才解决。已测试。可用

代码php示例:

function RSAVerify($return_data, $public_key,$ksort=true){if (empty($return_data) || !(is_array($return_data))){return false;}$public_key = chackKey($public_key);$pkeyid = openssl_pkey_get_public($public_key);if (empty($pkeyid)){return false;}$rsasign = $return_data['sign'];$sign_type = trim($return_data['sign_type'], '"');unset($return_data['sign'], $return_data['sign_type']);if ($ksort){ksort($return_data);}if (is_array($return_data) && !(empty($return_data))){$strdata = '';foreach ($return_data as $k => $v ){if (empty($v)){continue;}if (is_array($v)){$strdata .= $k . '=' . json_encode($v) . '&';}else{$strdata .= $k . '=' . $v . '&';}}}$strdata = trim($strdata, '&');$rsasign = str_replace(' ', '+', $rsasign);$rsasign = base64_decode($rsasign);if ($sign_type == 'RSA') {$rsaverify = openssl_verify($strdata, $rsasign, $pkeyid);} else if ($sign_type == 'RSA2') {$rsaverify = openssl_verify($strdata, $rsasign, $pkeyid, OPENSSL_ALGO_SHA256);}openssl_free_key($pkeyid);return $rsaverify;}function chackKey($key, $public = true){if (empty($key)) {return $key;}if ($public) {if (strexists($key, '-----BEGIN PUBLIC KEY-----')) {$key = str_replace(array('-----BEGIN PUBLIC KEY-----', '-----END PUBLIC KEY-----'), '', $key);}$head_end = '-----BEGIN PUBLIC KEY-----
{key}
-----END PUBLIC KEY-----';}else {if (strexists($key, '-----BEGIN RSA PRIVATE KEY-----')) {$key = str_replace(array('-----BEGIN RSA PRIVATE KEY-----', '-----END RSA PRIVATE KEY-----'), '', $key);}$head_end = '-----BEGIN RSA PRIVATE KEY-----
{key}
-----END RSA PRIVATE KEY-----';}$key = str_replace(array('
', '
', '
'), '', trim($key));$key = wordwrap($key, 64, '
', true);return str_replace('{key}', $key, $head_end);}function characet($data, $targetCharset) {if (!empty($data)) {$fileType = "UTF-8";if (strcasecmp($fileType, $targetCharset) != 0) {$data = mb_convert_encoding($data, $targetCharset, $fileType);}}return $data;
}/*** 校验$value是否非空*  if not set ,return true;*    if is null , return true;**/function checkEmpty($value) {if (!isset($value))return true;if ($value === null)return true;if (trim($value) === "")return true;return false;}

问题有几处1、:$public_key 记住他是支付宝公钥不是应用公钥切记好好检查一下这里是最重要出错地方

2、:openssl_pkey_get_public这里返回false那么是你的支付宝公钥位数不够,如果返回资源id,也并不说明你的公钥是正确的。这就是坑。

3、如果是RSA2类型:记得加上OPENSSL_ALGO_SHA256

4、openssl_verify总是返回0,又不告诉你错在哪里,很坑,如果你的正确了,会返回1

还有很多问题需要你自己查一下你的代码。有好的建议可以留言,大家交流一下

抖音小程序支付宝异步回调中验签php代码相关推荐

  1. 抖音小程序怎么赚钱,都有哪些变现玩法技巧。

    流量=钱? 在抖音小程序变现这个项目中不一定成立. A:第一个视频爆了100多万观看,连怼了一次爆到900万,照理说,那么大的曝光率,挂小程序应该赚很多钱? 答:没有多少收益. 为什么?因为A发的视频 ...

  2. ShopXO开源电商系统源码支持PC+H5支付宝小程序微信小程序百度小程序头条amp;抖音小程序QQ小程序APP等

    介绍: ShopXO开源电商体系,国内抢先企业级.支撑PC+H5.支付宝小程序.微信小程序.百度小程序.头条&抖音小程序.QQ小程序.APP等- 支撑多库房.多商户形式运营(组件插件化.即插即 ...

  3. ShopXO开源电商系统源码支持PC+H5支付宝小程序微信小程序百度小程序头条抖音小程序QQ小程序APP等

    介绍: ShopXO开源电商体系,国内抢先企业级.支撑PC+H5.支付宝小程序.微信小程序.百度小程序.头条&抖音小程序.QQ小程序.APP等- 支撑多库房.多商户形式运营(组件插件化.即插即 ...

  4. 2023年最新最全uniCloud入门学习,零基础入门到实战项目 uni-admin打造uniapp网页后端 微信支付宝抖音小程序后端 unicloud数据后台快速打造uniapp小程序项目

    今天开始带着大家一起零基础学习uniCloud,在下面的课程中我们就简称uniCloud为cloud吧.我这里从零基础开始教大家,后面可以带大家简单的做一个实战项目.所以不用担心自己没有基础,跟着石头 ...

  5. 抖音小程序调起支付宝支付php微擎代码和HTML代码

              抖音小程序调起支付宝支付php微擎代码和HTML代码 内部订单号生成后,下一步调支付宝支付.内部订单号没有成功的看https://blog.csdn.net/weixin_3761 ...

  6. uni-app转抖音小程序在ios中input标签的问题

    一.input标签在ios不显示 本人开发中用uni-app转字节小程序的,发现在开发工具和安卓上input标签可以正常显示,但是在ios上发现input标签不显示. 解决办法:给input加上宽度: ...

  7. 抖音小程序基础之 目前提供哪些API(教程含源码)

    抖音小程序基础之 目前提供哪些API(教程含源码) 小程序开发框架提供丰富的 字节跳动宿主 原生 API,可以方便的调起 字节跳动宿主 提供的能力,如获取系统信息等.详细介绍请参考 API 文档. 通 ...

  8. 抖音小程序入口和玩法,快速收割短视频红利!

    自2017年1月开始微信发布小程序开始,"小程序"这个词出现在我们的生活中,热度不断.随后支付宝.百度.头条加入小程序的赛道,由于小程序不需要下载.直接可使用的特性,它使用起来更加 ...

  9. 今日头条/抖音小程序开源商城,附带开源项目地址

    项目地址 https://github.com/EastWorld/tt-app-mall 头条/抖音小程序商城 头条/抖音小程序商城,头条/抖音小程序微店,长期维护版本,欢迎大家踊跃提交贡献代码: ...

最新文章

  1. vc设置ani动画光标
  2. 佳铁怎样传输程序_阿里资深开发工程师合著《Java开发手册》,影响250万程序员附pdf...
  3. HDU 5762 Teacher Bo (鸽笼原理) 2016杭电多校联合第三场
  4. linux线程池资料
  5. PostgreSQL备份恢复实现
  6. 【Spring】Spring Bean 定义继承
  7. python项目上线_django之项目部署上线
  8. 怎么改python系统路径_动态修改python系统路径
  9. 8年测试工程师,从“点点点”成长到华为测试主管——我必须告诉你这些......(共勉)
  10. ROS与PCL:在setconditionfunciton时,无法使用std::bind
  11. 线阵相机和面阵相机的区别
  12. CPU、MPU、MCU、SOC的概念与区别
  13. 计算机专业课科目,考研计算机专业课科目有哪些
  14. python extractor_Day 16: Goose Extractor —— 好用的文章提取工具
  15. 出租屋租赁系统源码带小程序
  16. win10停止更新_烦人的Windows10更新,教你如何有效的关闭。
  17. uniapp实现音视频通讯
  18. 电子合同可以被打印出来吗
  19. 普通人利用寒假一个月可以学会的四个赚钱技能
  20. java图片路径根目录_java 相对路径 绝对路径 classes bin 根目录

热门文章

  1. 从20+分公司的签约,看中通云仓的“数字商流”
  2. canvas教程4-canvas的绘制功能
  3. 低延时直播系统开发技术方案
  4. openstack 创建虚拟机后,虚拟机启动hang在cpu 检测
  5. wheelib: 一个为编程学习而生的C语言轮子库
  6. python 小甲鱼小游戏_Python 小甲鱼教程 Easygui 篇
  7. 华为小程序怎么弄出来_华为应用市场也支持“小程序”了,你get了吗?
  8. 【stm32CubeMX】STM32F103c8t6串口通信
  9. C语言:简易商品库存管理系统(简单易懂,不用指针的入门级示例,数据结构大作业)
  10. 结合Layui框架,实现SpringMVC+Spring+Mybatis,SSM整合案例CRUD(超详细代码,外加说明)