分阶段付款 学php,项目整理-支付宝的支付问题
支付宝作为一个被广泛使用的支付工具,在是用的时候可以被广泛使用。
可以使用demo提取(由于当时开发时SDK下载路径无法下载,直接从DEMO中筛选了需要部分)
------------------我是开始开发思路的分割线--------------------------
本次主要是APP支付的流程。(本宝宝会陆续整理出前后端的详尽资料,抽空写下简单的DEMO)
这里主要整理支付宝后台交互的一些内容。
由于支付宝的签名需要和SDK关联吊起支付宝应用。这里在开始开发前需要确认两端SDK的匹配问题。
----------------------------------我是开始开发SDK文件描述的分割线-------------------------------------
与前端直接引入SDK不同。这里要注意版本的一致或对应问题
支付宝在支付的过程中有需要后台参与的主要两个部分:
一)提交签名等信息
1.预提交订单。返回前端签名后的订单信息。
二)验签名信息
1.验证前端同步的签名信息(伴读项目暂时没有这个模块)
2.获取异步回调的信息
在目前的SDK可以直接使用的类文件是
1.接入SDK的文件
2.主要的SDK接入文件
3.接入SDK生成签名所需要的类文件
-------------------我是开始开发描述的分割线-----------------------
由于本次项目是基于YII框架的PHP开发,基于框架配置将相关文件配置在项目的核心代码的辅助文件部分
(1)文件引入位置:c**e/c**-**se/he**ers/
此处由于引入相关文件的管理问题,添加Alipay路径进行统一管理。另外参照DEMO。将部分文件统一管理在aop目录下。如上图所示
(2)文件的使用。
首先去掉两眼一抓瞎的整个看文档看DEMO的前提。按照做需要的去一一实现,在实践的问题里找解决方案。
按照之前分析的必要套路:
I) 订单与生成的处理->按要求生成加密字符给前段
II) 支付同步通知(通知到前端,前端主动调取验证接口,验证签名等相应信息)->前端同步信息进行验签返回,成功通知用户支付成功
III) 支付异步回调(支付宝主动回调)->验签,确认订单信息
------------------我是开始开发代码描述的分割线—————————————
首先对于文件的引入。简单阅读示例demo和文档。根据描述配置相关的参数。
支付的业务主要在开放平台存在。在开放平台上申请应用,并申请相关业务支付金额后可以针对改应用进行详尽的设置。https://doc.open.alipay.com/docs/doc.htm?docType=1&articleId=106541这是关于产品签约的相关文档描述以及秘钥的相关配置方式。在正式开始编写代码前你需要:
(1)一个注册好应用,申请好相关业务并签约的平台账号
(2)设置好相关的秘钥。并留有相关秘钥的pem文件(没有也可以,但是一定要留下商户公钥和商户私钥的具体内容)
(3)预留下相关商户信息以便于配置,例如商户ID;APPID;支付宝公钥等
这里由于开发时间的关系没有再次封装,或对配置参数进行封装(后期开始优化,不影响直接使用)
上面是支付宝SDK在代码里的使用。
参见新的支付宝文档:
可以看出基本没什么修改的。
我的代码逻辑除了跟随前端业务要求和需求添加商户ID方便后期业务扩展几乎没有修改。
简单讲下,其实在支付宝的支付过程只要前后端的SDK对的上几乎没有坑。平缓进入第二阶段,所以,SDK版本很重要,不要随便下载一个SDK就直接使用啊亲。当然支付只是付款了是不够的!
关于回调
回调分为两部分
(1)同步回调
(2)异步回调
支付宝注重讲解了异步回调。此处也是在项目中主要实现了异步回调的问题。
先来谈谈异步回调
对于异步回调要先明确下异步回调的地址问题。在官方的平台页面上要设置notify_url
这里的url要是一个接口或一个PHP绝对路径文件。支付宝建议为绝对路径文件。但是这里个人建议仍使用和之前一致的标准接口所继承的类的文件就好。
值得注意的是
(A)这个接口不可以有参数,有cookie等,或者页面跳转重定向,当访问地址的时候是一个白页即可。仍需注意的是,这个地址必须是公网可以自由访问的。避免后期文件类的修改问题。
(B)这个地址要在生成订单的时候直接设置在回调地址的位置。
(C)回调文件会值调取。调取到的参数获取用JSON通知时使用的是$_POST
(D)文件验签的时候记得什么类型的签名就用什么类型验签,一般的签名类型为RAS2,但是DEMO上是RAS哦。
在验签和核实订单信息后就可以修改相应订单信息,记得在数据库中需改目前订单的状态
这是主要验签的核心,这里的第一个参数是支付宝回调到的信息,第二个参数是证书(pem)文件的地址,没有可以写NULL,第三个是签名加密方式。这里我们的是RSA
部分代码展示分析。
分阶段付款 学php,项目整理-支付宝的支付问题相关推荐
- JAVA-Servlet项目接入支付宝网站支付
支付宝电脑支付流程,Servlet版 原文地址:https://www.cnblogs.com/it-taosir/p/9728374.html 感谢原博主,大佬无视即可,工作一年多第一次写博客,不足 ...
- Java web集成支付宝电脑支付接口(沙箱环境)
前言 这篇博客主要介绍如何在Java web项目中集成支付宝的电脑支付接口(会稍微介绍一下服务器集成APP支付接口).目前支付宝接口更新很快,在博主查找资料的时候,很多都是即时到账接口,APP支付则是 ...
- GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...
- 三万字机器学习项目整理(基础到进阶)
如果你是学生.计算机领域的工作者,我强烈建议你学习.掌握机器学习,我不敢说它是最简单的(机器学习的确很简单),但是掌握机器学习一定是性价比最高的. 本文用浅显易懂的语言精准概括了机器学习的相关知识,内 ...
- 系统分析师备考经验分享:分阶段、分重点
下面为大家分享的系统分析师备考经验,分享过程非常细致,教大家在备考系统分析师时如何针对自身的情况进行分阶段分重点复习,各科目的备考细节也有讲到,可以说是非常系统的备考经验分享了,相信对大家通过考试也会 ...
- python支付程序源码_python项目中实现支付宝网页支付
支付流程 在一次项目中需要引入支付宝接口实现支付宝支付,使用场景如下: 用户在我方商户系统中选择了购买商品,我方商户系统生成一张支付订单,用户点击订单的支付按钮后,页面会跳转到一个支付二维码的界面. ...
- 深度学习与模式识别之项目整理
深度学习与模式识别之项目整理 3158861394@qq.com http://blog.csdn.net/luojun2007 作者:Luogz 声明: 本人一直从事图像处理,模式识别专业方向.该专 ...
- vue 微信公众号支付接口_基于vue的h5项目之支付宝支付与微信支付
本文仅记录基于vue开发h5项目过程中使用支付宝和微信支付过程中的重点与槽点,仅为前端部分,如有疏漏不正之处,请于文末评论探讨.注意:标红部分灰常重要,仔细阅读官方文档非常重要,耐心非常重要,细心非常 ...
- 9 WM配置-主数据-定义物料分阶段的范围(Staging Area)
业务背景:定义物料分阶段的范围 就是定义仓库的备料区域,将仓库的备料业务在系统中进行定义,该配置实施项目上一般不会启用,该文只是研究学习之用. 事务码:SPRO SPRO路径:SPRO->后勤执 ...
最新文章
- 鹅厂2020暑期实习第三次一面
- LeetCode Number of Boomerangs
- ACE_Service_Handler类的理解和使用
- iOS-iOS9系统SEGV_ACCERR问题处理【v3.6.3的一些bug修复】
- python装饰器详细剖析
- 交换机 BootROM 下的升级配置
- php网站mysql数据库导入工具_phpstudy通过phpMyAdmin导入mysql数据库方法
- linux 采集 bash 脚本,Linux shell脚本攻略(2)
- 简单个人网页设计作业 静态HTML个人博客主页 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业
- java程序加密_对Java代码加密的两种方式,防止反编译
- 【测绘程序设计】Excel度分秒(° ‘ “)转换度(°)模板附代码超实用版
- IE11 zh_HANS_CN国际化问题
- Excel合并单元格快捷键
- 电流测试c语言算法,电流检测电路设计方案汇总(六款模拟电路设计原理图详解)...
- C51 (矩阵键盘密码锁)
- assist 下载链接
- OpenCV 外接矩形框 cv2.boundingRect、cv2.minAreaRect
- 仿京东图片放大镜动效
- 国防科大计算机学院卢凯,国防科技大学实行本硕、硕博连读机制
- ubuntu使用自定义鼠标主题
热门文章
- android 图片 切换,Android 应用开发笔记 - 切换图片(ImageSwitcher)
- jenkins vue 打包特别慢_从零开始 使用VUE开发桌面客户端
- v380智能快配连接不上怎么办_Win7系统电脑设置连接远程桌面的操作方法
- java socket 阻塞模式_(四) 如何将socket设置为非阻塞模式
- python3.8.0安装_Python3.8.0
- pytorch: 在训练中保存模型,加载模型
- 使用conda/pip安装pytorch 0.3.1教程(mac/windos/linux) pytorch 0.2.1
- JDK源码解析之 Java.lang.Object
- 日常问题——初始化Hive仓库报错com.google.common.base.Preconditions.checkArgument
- POJ3984 迷宫问题【BFS】