forked from Abbotton/alipay-sdk-php
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_callback.php
37 lines (27 loc) · 1.07 KB
/
_callback.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
/**
* @var Alipay\AopClient $aop
*/
$aop = require __DIR__ . '/_bootstrap.php';
ob_start(); // 启动输出缓冲区
// ---业务代码开始---
if (php_sapi_name() === 'cli') {
// 若为控制台环境运行此脚本,则使用输入参数解析为数组作为参数
parse_str($argv[1], $_POST);
}
try {
$passed = $aop->verify(); // 验证支付宝服务器发来的参数数据签名
} catch (\Exception $ex) {
$passed = null;
printf('%s | %s' . PHP_EOL, get_class($ex), $ex->getMessage()); // 验证过程发生错误,打印异常信息
}
if ($passed) {
print_r($params); // 签名验证通过,数据未被篡改且可靠,打印参数
}
// ---业务代码结束---
$file = fopen('logs/callback.log', 'a'); // 追加模式打开日志文件
fwrite($file, date('Y-m-d H:i:s') . PHP_EOL); // 写入当前时间
$content = ob_get_clean(); // 获取缓冲区数据,并丢弃
fwrite($file, $content . PHP_EOL); // 写入缓冲区数据
fclose($file); // 关闭文件
echo 'success'; // 输出 `success`,否则支付宝服务器将会重复通知