php进行支付宝开发中return_url和notify_url的区别分析


Posted in PHP onDecember 22, 2014

本文实例分析了php进行支付宝开发中return_url和notify_url的区别。分享给大家供大家参考。具体分析如下:

在支付宝处理业务中return_url,notify_url是返回些什么状态呢,我们要根据它来做一些处理就必须了解return_url,notify_url的区别,下面我就来给大家介绍介绍.

问题描述:

我在处理支付宝业务中出现过这样的问题,付费完成后,在支付宝跳转到商家指定页面时,订单状态已经更新,通过调试发现是支付宝先通知notify_url,完成了订单状态.

支付宝return_url和notify_url通知顺序问题:

顺序不一定的,请别以先后顺序来做判断,具体如何判断,是根据您当前数据库里的状态和刚从支付宝里获取到的状态做对比来判断是否有做过处理了.

关于支付宝return_url和notify_url的区别,同步通知页面特性(return_url特性):

(1) 买家在支付成功后会看到一个支付宝提示交易成功的页面,该页面会停留几秒,然后会自动跳转回商户指定的同步通知页面(参数return_url);

(2) 该页面中获得参数的方式,需要使用GET方式获取,如request.QueryString("out_trade_no")、$_GET['out_trade_no'];

(3) 该方式仅仅在买家付款完成以后进行自动跳转,因此只会进行一次;

(4) 该方式不是支付宝主动去调用商户页面,而是支付宝的程序利用页面自动跳转的函数,使用户的当前页面自动跳转;

(5) 基于(4)的原因,可在本机而不是只能在服务器上进行调试;

(6) 返回URL只有一分钟的有效期,超过一分钟该链接地址会失效,验证则会失败;

(7) 设置页面跳转同步通知页面(return_url)的路径时,不要在页面文件的后面再加上自定义参数。例如:

错误的写法:

<http://www.alipay.com/alipay/return_url.php?xx=11>

正确的写法:

<http://www.alipay.com/alipay/return_url.php>

服务器异步通知页面特性(notify_url特性):

(1) 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;

(2) 支付宝是用POST方式发送通知信息,因此该页面中获取参数的方式,如:

request.Form("out_trade_no")、$_POST['out_trade_no']。

(3) 支付宝主动发起通知,该方式才会被启用;

(4) 只有在支付宝的交易管理中存在该笔交易,且发生了交易状态的改变,支付宝才会通过该方式发起服务器通知(即时到账中交易状态为“等待买家付款”的状态默认是不会发送通知的);

(5) 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;

(6) 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到支付宝发来的处理结果通知;

(7) 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。

一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:2m,10m,10m,1h,2h,6h,15h);

(8) 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;

(9) cookies、session等在此页面会失效,即无法获取这些数据;

(10) 该方式的调试与运行必须在服务器上,即互联网上能访问;

(11) 该方式的作用主要防止订单丢失,即页面跳转同步通知没有处理订单更新,它则去处理;

(12) 通知ID(参数notify_id)只有一分钟有效期,超过一分钟该次通知会验证失败。一旦验证成功下次再验证就会失效。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
php设计模式 Facade(外观模式)
Jun 26 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
May 13 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP中SESSION过期设置
Mar 09 PHP
WebQQ最新登陆协议的用法
Dec 22 #PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 #PHP
php有道翻译api调用方法实例
Dec 22 #PHP
php匹配字符中链接地址的方法
Dec 22 #PHP
php用户注册时常用的检验函数实例总结
Dec 22 #PHP
CentOS6.5 编译安装lnmp环境
Dec 21 #PHP
在SAE上搭建最新wordpress的方法
Dec 21 #PHP
You might like
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
使用Python对Excel进行读写操作
2017/03/30 Python
浅谈python写入大量文件的问题
2018/11/09 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Python遍历字典方式就实例详解
2019/12/28 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
广告学专业自荐信范文
2014/02/24 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
反腐倡廉观后感
2015/06/08 职场文书
防溺水主题班会教案
2015/08/12 职场文书
学生会主席任命书
2015/09/21 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
python tkinter模块的简单使用
2021/04/07 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python