关于支付宝通知接口中,notify_id的时效性

当支付宝的接口存在页面跳转同步通知方式或服务器异步通知方式时,notify_id基本会在通知返回的url中出现。Notify_id是帮助商户校验商户获取的信息是否是支付宝发来的,这其中也包含了notify_id的时效性问题。

在页面跳转同步通知方式里(return_url),notify_id的有效性一般为1分钟,且在有效期内支持重复使用校验。

服务器异步通知方式里(notify_url),notify_id的有效性则是永久,但不支持重复使用来校验通知,即校验成功(支付宝收到了商户打印的success且支付宝不再发该次通知),此时notify_id变为无效。


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * 远程获取数据,GET模式
 * 注意:
 * 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
 * 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\\cacert.pem'
 * @param $url 指定URL完整路径地址
 * @param $cacert_url 指定当前工作目录绝对路径
 * return 远程输出的数据
 */
function getHttpResponseGET($url,$cacert_url) {
   $curl = curl_init($url);
   curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头
   curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
   //curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL证书认证
   //curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//严格认证
   //curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//证书地址
 
   $responseText = curl_exec($curl);
   //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容
   return $responseText;
}
posted @ 2017-07-18 15:38  zhangzhongxian  阅读(1320)  评论(0编辑  收藏  举报