在支付宝支付接入过程中遇到几个需要注意和理解的地方,记录一下。相比微信支付,支付宝流程上感觉还是简单不少,网上和官方给的文档和demo还是很全的。在我的支付逻辑中包括:发起支付请求、用户支付、支付通知(支付成功后自动发货)、订单状态更新。

以下是几个问题:

1).支付完成后同步通知和异步通知区别,有问题就要去好好看看支付宝文档(https://cshall.alipay.com/support/help_detail.htm?help_id=397355)!!!

同步通知(return_url):

1、 构造请求数据
商户通过提供的接口代码示例,通过代码示例的规则,程序构造与运算得到sign加密结果以及构造后的请求给支付宝的数据集合。GET方式下是URL地址链接,POST方式下是支付宝网关地址及参数集合。
2、 发送请求数据
把构造完成的数据集合,通过页面链接跳转或表单提交的方式传递给支付宝。
3、 请求的交易
支付宝得到这些集合后,会先做安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求。
4、 返回相应数据
支付宝对处理完成的交易,程序上自动进行重新构造成URL地址链接,以自动跳转的方式跳回商家在请求时设定好的页面路径地址(参数return_url,商家没设定,则不会跳回)。
5、 对相应的数据进行处理
商家的返回页面(参数return_url指定页面文件)得到支付宝返回的数据,把这些数据结合自身网站情况,进行数据处理(如:订单更新)。

异步通知(notify_url):

前提:若要支付宝能主动通知,需商户在请求时设定好通知的页面路径(参数notify_url),且该页面文件完全空白,无任何字符。
1、 发起通知
一旦交易状态发生变更(如:买家已付款,等待卖家发货),支付宝便会根据自动进行数据处理,并主动调用商户在请求时设定好通知的页面路径(参数notify_url)
2、 对通知数据进行处理
商户网站收到支付宝发送过来的通知数据,把这些数据结合自身网站情况,进行数据处理,如:处理返回页(参数return_url)漏掉的订单,做订单更新,即补单措施。
3、 在页面上输出success
商户网站处理完成所有的数据处理以后,即程序运行最后,返回写页面“success”这7个字符(页面上只允许输出success),以表示自己已经成功处理完成自己的业务。
4、 完成处理该次通知,不再发送通知
支付宝得到商户反馈回来的“success”7个字符信息,进行核对与验证,结束此次通知流程。
注意:
如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。在25小时内完成6~10次通知(通知频率:5s,2m,10m,15m,1h,2h,6h,15h)

特别注意:
在异步通知中接收到支付宝的通知请求后,根据返回的支付状态码处理自己逻辑,处理完成后一定要返回“success”这7个字符,在页面上不能有任何其他html标签!否则会一直接重复收到通知。

2)关于乱码问题
一般乱码问题的结果是通知返回时sign与mysign为什么不相等(解决办法https://cshall.alipay.com/support/help_detail.htm?help_id=397351)。
注意在下载的demo中多看看注释,初始时不用对构建的请求参数进行转码。如果发现乱码问题再加上处理乱码的代码即可。

3)在支付流程中要添加必要的日志
支付状态、订单状态、异常信息记录的全一些便于查找问题。

对接alipay支付遇到的问题相关推荐

  1. Django对接支付宝Alipay支付接口

    最新文章更新见我的个人主页: https://xzajyjs.cn 我们在使用Django构建网站时常需要对接第三方支付平台的支付接口,这里就以支付宝为例(其他平台大同小异),使用支付宝开放平台的沙箱 ...

  2. java 对接支付宝支付

    2019独角兽企业重金招聘Python工程师标准>>> 对接支付宝支付的前提: 1,商户开通支付能力 登录蚂蚁金服 开放平台:https://open.alipay.com/plat ...

  3. JAVA对接支付宝支付(超详细,一看就懂)

    Java对接支付宝支付 更多内容 冷文博客: 传送门 引入 为什么要发这篇帖子呢?原因很简单,就是因为在一个稍稍正规一点的应用上都会有支付这个环节,我们日常的在线支付如今包括支付宝,微信钱包,QQ钱包 ...

  4. 对接微信支付之网页支付详解

    对接微信支付之网页支付详解 声明:转载请注明出处 阅读对象:本文针对的是网页中的扫码支付 温馨提示:微信支付坑比较多,阅读时请仔细一些,不要放过所有需要注意的内容 , 本人一路踩坑过来,希望大家引以为 ...

  5. zkeys阿帕云对接易支付插件,支持zkeys阿帕云最新版(亲测可用)

    阿帕云对接易支付的文件,可以让你的阿帕云具有对接易支付的接口. zkeys已经改名为阿帕云 以下版本都可以使用 ZKEYS云管平台(大陆版)更新至v5.3.3版本 ZKEYS分销平台更新至v5.2.3 ...

  6. java对接支付宝支付

    java对接支付宝支付演示 现在有不少的项目都需要对接支付,这里主要是进行讲解对接支付宝H5支付 废话不多说 上代码 引入支付宝官方的sdk <!-- https://mvnrepository ...

  7. java对接支付宝支付(手机网站支付)

    记录一下对接支付宝支付的过程,既是对这段时间工作的总结,也希望能对之后需要对接支付宝手机网站支付的小伙伴一点帮助. 1.查看官方文档,具体对接流程(https://docs.open.alipay.c ...

  8. SpringBoot+vue3对接支付宝支付详细教程

    SpringBoot+vue3对接支付宝支付详细教程 本人也是第一次做这个,是一个刚刚学习自学支付的萌新,目的是在于学习,只是为了记录自己的学习过程,怕以后会忘记,因为我没有企业账号,所以用的是自己的 ...

  9. Java对接第三方支付渠道之支付宝支付

    提示:支付宝相对于微信支付更人性化,且细节做得更好. Java对接第三方支付渠道之支付宝支付 一.前期准备工作 二.导入依赖 三.书写配置类 四.书写配置文件 五.调用相关支付接口 1.流程图 2.创 ...

最新文章

  1. 华为实习日记——第二十二天
  2. bugzilla dbd-mysql_在Red Hat Linux下安装配置Bugzilla
  3. 【Java 数据库】Connections.getTables() 方法 获取数据库的元数据
  4. 在内存中建立文件_磁盘与文件,搞懂它
  5. LeetCode 516. 最长回文子序列(动态规划)
  6. C++学习之路 | PTA乙级—— 1037 在霍格沃茨找零钱 (20 分)(精简)
  7. tensorflow numpy版本匹配_在Matlab中使用tensorflow (1)
  8. ApacheBench测试Web并发
  9. 安装paramiko的方法
  10. 网维大师icafe网吧管理软件 v6.0.3.3 官方
  11. windows下解压xxx.war文件
  12. 阿里巴巴 开源软件列表
  13. “21天好习惯”第一期- 11 反爬虫机制详解(3)
  14. 《一代大商孟洛川》经典台词
  15. ZOJ Problem 1005 jugs
  16. 解决PC微信版本过低 1.0.7.33版本及以上版本方法
  17. 电脑故障(一)台式电脑看网络直播屏幕黑屏
  18. oracle 行转列后列名,Oracle 多行转多列,列值转为列名
  19. TensorFlow 1.x 深度学习秘籍:1~5
  20. 谷粒商城三阶段课件_高二地理必修三11:(课件)第2章 区域生态环境建设第2节 森林的开发和保护——以亚马孙热带雨林为例...

热门文章

  1. flume内存溢出解决
  2. 数据的逻辑结构和存储结构
  3. 阿布云 运用到 scrapy
  4. 关于 MMKV 你该了解哪些?
  5. 微信小程序之生命周期
  6. 晋南讲堂之Java抽象类(abstract)与接口(interface)区分
  7. 开源应用架构之​Selenium WebDriver
  8. 苹果报告揭秘:你的个人隐私是这样泄露的
  9. ClickHouse Query执行流程浅析
  10. 手机获取百度地图定位