签名和验签在APP端也是可以完成的,考虑到安全问题,签名和验签最好在服务端完成,支付宝官方建议也是这样的,所以php端需要把签名好的参数传给APP端。详细步骤见正文:
一、 下载php支付宝sdk
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.eCtVsf&treeId=54&articleId=103419&docType=1 (旧)
https://docs.open.alipay.com/54/103419/(新)
二、 查看支付宝App支付请求参数文档,拼接请求参数,签名
App支付请求参数说明
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.wM4mV1&treeId=204&articleId=105465&docType=1(旧)
https://docs.open.alipay.com/204/105465/(新)
先是参数拼接生成签名,再把前面的参数和签名进行组装。核心代码如下:

    require_once '/Alipay/aop/AopClient.php';$private_path =  "/Alipay/key/rsa_private_key.pem";//私钥路径//构造业务请求参数的集合(订单信息)$content = array();$content['subject'] = "商品的标题/交易标题/订单标题/订单关键字等";$content['out_trade_no'] = "商户网站唯一订单号";$content['timeout_express'] = "该笔订单允许的最晚付款时间";$content['total_amount'] = "订单总金额(必须定义成浮点型)";$content['product_code'] = "QUICK_MSECURITY_PAY";/销售产品码,固定值$con = json_encode($content);//$content是biz_content的值,将之转化成json字符串
    //公共参数$Client = new \AopClient();//实例化支付宝sdk里面的AopClient类,下单时需要的操作,都在这个类里面$param['app_id'] = '支付宝分配给开发者的应用ID';$param['method'] = 'alipay.trade.app.pay';//接口名称,固定值$param['charset'] = 'utf-8';//请求使用的编码格式$param['sign_type'] = 'RSA2';//商户生成签名字符串所使用的签名算法类型$param['timestamp'] = date("Y-m-d Hi:i:s");//发送请求的时间$param['version'] = '1.0';//调用的接口版本,固定为:1.0$param['notify_url'] = '支付宝服务器异步回调地址';$param['biz_content'] = $con;//业务请求参数的集合,长度不限,json格式,即前面一步得到的$paramStr = $Client->getSignContent($param);//组装请求签名参数$sign = $Client->alonersaSign($paramStr, $private_path, 'RSA2', true);//生成签名$param['sign'] = $sign;$str = $Client->getSignContentUrlencode($param);//最终请求参数

请求的说明,支付宝说的很清楚,这里再重新附上截图:

三、验签
App 支付成功后会有返回字符串,客服端也需要判断,这里不罗嗦,如下图:

下一步就是在php服务端进行验签,支付宝异步会以post方式返回数据到异步回调地址:

function notify(){require_once('/alipay/aop/AopClient.php');$aop = new \AopClient;//$public_path = "key/rsa_public_key.pem";//公钥路径$aop->alipayrsaPublicKey = "支付宝公钥";//此处验签方式必须与下单时的签名方式一致$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");//验签通过后再实现业务逻辑,比如修改订单表中的支付状态。/***  ①验签通过后核实如下参数out_trade_no、total_amount、seller_id*  ②修改订单表**///打印success,应答支付宝。必须保证本界面无错误。只打印了success,否则支付宝将重复请求回调地址。echo 'success';}

后记:
之前一直验签失败,找了好久,终于解决了。文档中说,验签用的是支付宝公钥,并不是RSA2公钥,这里需要特别注意,不要用错了

请看截图:

支付宝APP支付-php后台签名以及验签相关推荐

  1. 支付宝请求签名php,支付宝APP之php后台签名以及验签实现方法

    签名和验签在APP端也是可以完成的,考虑到安全问题,签名和验签最好在服务端完成,支付宝官方建议也是这样的,所以php端需要把签名好的参数传给APP端.详细步骤见正文: 一. 下载php支付宝sdk h ...

  2. app支付宝支付java后台_支付宝app支付java后台流程demo

    支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...

  3. 支付宝app支付java后台流程demo

    支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...

  4. 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)

    java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写      一.流程步骤          1.执行流程            当手机端app(就是你公司开发的app) ...

  5. 支付宝支付API之签名与验签

    支付宝开发平台支付API文档: https://docs.open.alipay.com/291/106130 对接支付API出现问题的主要原因:数据被转义,所以在调试时先把数据可以写死 注意:在调试 ...

  6. 微信支付API v3签名与验签-APP支付问题

    目录 使用API v3微信支付遇到的问题: 1.微信请求客户端配置 2.生成预付款订单 3.拼接字符串使用API v3签名 4.微信支付成功后通知 使用API v3微信支付遇到的问题: 1.jdk版本 ...

  7. 支付宝开放平台2.0签名、验签失败以及PHP-SDK使用说明

    前言: 你一定像我一样对支付流程还算熟悉,但打死不从头阅读文档(逐字逐句理解),还对过往的经验沾沾自喜.盲目自大,造成验签失败! 如果你用心再看一遍官方文档,那么接下来的内容不看也罢.仅对接支付接口. ...

  8. android 支付宝 40247,支付宝 app支付异常摘记 -- ALI40247

    一. 支付 1. 系统繁忙,请稍后重试.(ALI40247): 签名错误. 我的问题来源(两个问题): ① 签名串sign=签名串,这个签名串是不带双引号的,我不小心两头有双引号: ② 签名流程是: ...

  9. 支付宝APP支付(java后台版)

    本实例是基于springBoot框架编写 一.流程步骤          1.执行流程            当手机端app在支付页面时,调起服务端创建订单(自己公司业务接口)接口,后台把需要调起支付 ...

最新文章

  1. c++入门代码_Golang Gin 实战(一)| 快速安装入门
  2. map和hasmap的区别
  3. apache php隐藏头信息的方法,科技常识:nginx/apache/php隐藏http头部版本信息的实现方法...
  4. Java中常见的十八种异常!
  5. 查找linux所有目录中包含字符,Linux查找目录下包含有某字符串的全部文件
  6. UVAoj 348 - Optimal Array Multiplication Sequence
  7. 【响应式编程的思维艺术】 (2)响应式Vs面向对象
  8. 怎么配置java ee_如何配置Java EE Eclipse+Tomcat开发环境
  9. prim算法求最小生成树_最小生成树的两种方法(Kruskal算法和Prim算法)
  10. Windows7 品牌机OEM原版光盘镜像下载大全
  11. IMX6Q获取序列号方法
  12. 人工智能简史�_人工智能简史
  13. AlertDialog.Builder setPositiveButton 点击时不关闭dialog
  14. InfoPath 2007 --来自microsoft.com
  15. 运维 技术支持 人在香港 硬件维护 经验
  16. ios真机测试,Ineligible Devices,不可以选中真机
  17. C语言——将数字和数字字符输入给char型变量会如何?
  18. 谷歌创始人拉里·佩奇不为人知的故事
  19. IDEA 离线安装lombok插件
  20. pyecharts折现面积图例题

热门文章

  1. optitrack学习(4):动补系统marker点设置与刚体建立
  2. 最全GIS开发编程语言汇总及分类
  3. android气泡聊天消息背景,Android使用贝塞尔曲线仿QQ聊天消息气泡拖拽效果
  4. Android如何控制iPhone,王者荣耀安卓转苹果怎么操作 安卓转苹果操作方法
  5. 免费的车辆违章车首页接口封装
  6. 2021年熔化焊接与热切割最新解析及熔化焊接与热切割新版试题
  7. php调用蓝奏云下载接口
  8. Pig搭建环境、安装与应用
  9. 喜茶原创冷冻萃取牛乳饮品--超厚牛乳波波登陆上海
  10. 行业报告 | AIGC发展研究