完整的走完一个支付业务流程后,发现还是有不少需要注意的地方,为了避免时间长了忘记一些细节,这里先对一些流程和要点进行记录。


整体业务流程

支付宝支付分很多种支付方式,例如wap、web、app、当面付(扫码和条码)等,细节上有区别,但是大的流程其实都差不多,尤其是各个支付方式的前期准备工作都差不多,整理后大致如下:

  1. 创建支付宝账号并登陆;
  2. 创建应用;
  3. 添加相应支付功能并签约,需要营业执照;
  4. 根据相应支付功能api说明进行开发,而大致的开发流程又基本如下:

1.封装请求支付信息content
2.封装待签名请求信息
3.待签名参数排序
4.根据文档说明下载私钥RSA签名验签工具生成私钥并与公钥验证
5.使用私钥对上边排序过的参数rsa2签名加密
6.发起支付请求
7.选择性同步结果(wap前台表单提交就没有)
8.异步结果通知


要点

知之不若行之,支付api看起来比较简单,但是真正的从头到尾来一遍,直到最终成功支付,还是会遇到各种各种的问题,以下是目前觉得有必要注意并记录的一些要点:

  1. 不同的支付方式,一定注意method参数不要填错,例如wap就是alipay.trade.wap.pay,app就是alipay.trade.app.pay。更多具体的参数值,都可以参考开放平台的文档说明:
    https://docs.open.alipay.com/api

2.wap支付有两种方式,一种是页面跳转,一种是系统调用,可以根据需要选择。
更多内容可以参考开放平台文档:
https://docs.open.alipay.com/203/105285/
需要注意的是,页面跳转的方式需要请求后跳转到到支付宝支付的H5界面,开放平台api文档说需要前台form表单方式提交支付请求到支付宝。前台提交就需要后台封装好数据签名加密后返回前台然后前台使用表单方式提交到支付宝。
而实际使用时发现其实直接后台提交也是可以的,使用httpclient的form表单方式提交到支付宝一样可以正常跳转支付。

3.待签名参数排序时,一定要是根据参数首字母排序,并且过滤掉空值的参数,否则签名不通过。
而签名加密实际是先签名后还要进行base64编码,详细步骤可以参考开放平台的文档:
https://docs.open.alipay.com/291/106118
我自己实现的过程中更,签名这一块实际是抄的别人代码,签名加解密这一部分还是我急需补充的技术点。

4.支付宝支付有新旧接口区分,接口地址、数据格式、参数多少等都有一定区别,也需要注意。不过,现在接入支付宝支付应该都会是使用新接口了。

5.支付宝有提供沙箱环境,但是实际测试发现似乎有些问题,同样的代码,只是把参数值以及接口等改为沙箱环境所需要的,结果却不能成功支付。

6.开放平台api中的参数说明与实际接口似乎有些不配套,也可能并没有严格校验。有些说了必选的参数,实际是可以不选,例如下边这个,我在wap支付的时候就没有设置,但是依然成功的支付。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uWBOISxY-1602638315979)(https://blog.tzxcode.cn/images/pay/quiturl.png)]


参考代码

涂宗勋的个人聚合支付demo
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eoKvSZ0T-1602638315985)(https://blog.tzxcode.cn/images/copyright.png)]

支付宝支付开发要点记录相关推荐

  1. php实现支付宝支付接口,PHP实现个人支付宝支付开发(二)

    在前面的文章<PHP实现个人支付宝支付开发(一)>中,我们为大家简单介绍了通过第三方接口平台码支付来实现个人支付宝支付功能的交易流程. 下面我们继续结合图文,给大家介绍通过码支付实现PHP ...

  2. php个人支付宝对账,PHP实现个人支付宝支付开发(一) - 免签支付接口

    ...Access2007 表中 同时 显示 明细 .小计. 总计 ? ID fullname pay 2 a ¥500.00 4 a ¥600.00 5 a ¥700.00 6 b ¥800.00 ...

  3. php开发支付宝支付密码忘记了怎么办_PHP实现个人支付宝支付开发(一)

    在网站开发过程中,特别是商城类网站,都会要求网站必须能实现在线支付的功能.此时就需要通过第三方的支付平台来实现完整的交易流程.常见的第三方支付平台就比如支付宝,那么网站实现支付宝在线支付功能就需要进行 ...

  4. 支付宝支付 第一集:没有营业执照,怎样申请一个支付宝的商家号进行开发?使用支付宝支付开发网页移动应用,一分钟申请注册一个支付宝支付沙箱账号,支付宝支付入驻、创建应用、获取AppID

    支付宝支付 第一集:没有营业执照,怎样申请一个支付宝的商家号进行开发?使用支付宝支付开发网页&移动应用,一分钟申请注册一个支付宝支付沙箱账号,支付宝支付入驻.创建应用.获取AppID 一.资源 ...

  5. 阿里支付宝支付开发详细

    无论在web开发.移动开发中,使用支付宝支付是必不可少的技能,本文将收集本人在开发中遇到的问题,也可以加入交流群244284555 和博主进行沟通 创建支付宝应用前提必须使用企业认证的支付宝账号,否则 ...

  6. 微信支付及支付宝支付开发指南

    从开始学习android开始到现在还没搞过三方支付,感觉挺遗憾的.看到最近有几篇关于微信支付和支付宝支付的文章,稍微进行一下整合,供大家参考. ---------------------------- ...

  7. 支付宝支付开发——当面付条码支付和扫码支付

    原文: http://www.cnblogs.com/txw1958/p/alipay-f2fpay.html 本文介绍支付宝中当面付下属的条码支付.扫码支付.订单查询.退款申请的集成开发过程. 本文 ...

  8. 支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付

    虽然目前相对较火的支付方式是微信支付,但是本人更喜欢支付宝支付,有积分拿,还可以部分提现免手续费,每月还有信用卡还款免手续费额度,捐步数,蚂蚁森林等等,扯远了,总之,对我来说,微信用于沟通,支付宝是支 ...

  9. iOS 支付宝支付开发集成流程,这里记载的是签名保存在前台的集成,

    1 alipay 要做支付宝支付,对于新手,首先要了解的这个支付的业务逻辑,总体逻辑,下面就是基于支付宝SDK集成的交互流程, 1,公司boss用公司账号,申请支付宝账号,向支付宝签约 获得商户ID( ...

最新文章

  1. jsp与java的关系_jsp教程中:jsp与servlet的区别和关系
  2. 在腾讯云上创建您的SQL Cluster(3)
  3. 【转】Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04
  4. tf initializer
  5. ThinkPHP系统流程
  6. java包含关系图_Java——Spring框架完整依赖关系图!再复习了解加工一下吧?
  7. C++学习笔记系列一
  8. java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用
  9. es6 Decorator类的修饰器
  10. deepin中配置jdk新建一个终端便失效
  11. jQuery Mobile 学习资料
  12. JavaScript 类型的隐式转换
  13. 网络工程师成长日记382-西部数据Juniper网络设备调试
  14. Docker-07-docker compose
  15. Hibernate的Cascade——级联操作
  16. 手机字体 html代码大全,移动端html5如何定义字体
  17. 【DBN预测】基于粒子群算法优化DBN深度置信网络实现数据预测matlab代码
  18. php如何截取出视频中的指定帧作为图片
  19. Laragon 添加MongoDB服务
  20. Qt(C++)中如何连接sqlite3数据库及如何使用

热门文章

  1. 【博客之星】坚持并专注于自己的梦想
  2. 微信小程序数组增删改查
  3. uni-app打包安卓app如何接入极光推送JG-JPush
  4. WordPress给文章内容中指定关键词添加链接
  5. 骁龙888 plus和天玑8100 哪个好
  6. 将cdr文件导入ps技巧分享
  7. 5GC移动性管理(5GS mobility management ,5GMM)
  8. 苹果承认部分iPhone12屏幕泛绿问题,对LGD是重大打击
  9. 三星A7计算机,5.5寸大屏纤薄金属机 三星GALAXY A7评测
  10. u-boot-2014.10移植第14天----在SDRAM中运行