对接alipay支付遇到的问题
来源:互联网 发布:淘宝误删收藏宝贝恢复 编辑:程序博客网 时间:2024/05/20 09:26
在支付宝支付接入过程中遇到几个需要注意和理解的地方,记录一下。相比微信支付,支付宝流程上感觉还是简单不少,网上和官方给的文档和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支付遇到的问题
- iOS支付宝支付(Alipay)详细接入流程以及项目中遇到的问题分析
- iOS支付宝支付(Alipay)详细接入流程以及项目中遇到的问题分析
- 支付宝对接支付问题
- 第一次做WebService对接遇到的问题
- 对接短信遇到的编码问题
- GB28181对接中遇到的问题总结
- 支付遇到的问题
- 支付宝(alipay)集成的注意事项
- 支付宝Alipay 支付
- laravel引入laterll的alipay支付问题:Non-static method Symfony\Component\HttpFoundation\Request::getQueryStri
- iOS中 最新支付宝支付(AliPay) 韩俊强的博客
- 关于H5游戏的对接遇到的一些问题
- 支付宝支付接口对接的总结
- WEB平台对接过程中遇到的系列技术问题
- vmware对接openstack i版遇到的问题
- JdbcTemplate和mysql对接中遇到的问题总结
- 对接钉钉接口可能遇到的问题 50004 60011
- Hibernate框架1---案例引入
- Hi~
- 计算器使用
- 针对Mandelbrot Set引发的函数迭代的思考与实验(2) 以及对连续量的认识
- 白话经典算法系列之一 冒泡排序的三种实现
- 对接alipay支付遇到的问题
- 体系编程、SOC编程那些事儿
- 蓝懿 iOS 技术交流和心得分享 11.21
- 【转】一起来说 Vim 语
- 在java中,常量池、堆、栈,进而探讨equals方法和==的区别,以及在equals在object的应用
- LightOJ 1017 Brush (III)
- C语言基础学习——第11天(预处理)
- 白话经典算法系列之二 直接插入排序的三种实现
- 二叉树的创建及遍历