├── .gitignore
├── demo
├── log.txt
├── images
│ ├── alipay.gif
│ └── new-btn-fixed.png
├── composer.json
├── config.php
├── return_url.php
├── notify_url.php
├── alipayapi.php
├── readme.txt
└── index.html
├── cacert.pem
├── alipay_public_key.pem
├── composer.json
├── README.md
└── Alipay.php
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | composer.lock
3 | vendor
4 |
--------------------------------------------------------------------------------
/demo/log.txt:
--------------------------------------------------------------------------------
1 | 集成时请注意:
2 | 本文件log.txt请不要删除。
3 | 该文本用于写日志函数。
4 |
--------------------------------------------------------------------------------
/cacert.pem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gytai/alipay-php-sdk/master/cacert.pem
--------------------------------------------------------------------------------
/demo/images/alipay.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gytai/alipay-php-sdk/master/demo/images/alipay.gif
--------------------------------------------------------------------------------
/demo/images/new-btn-fixed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gytai/alipay-php-sdk/master/demo/images/new-btn-fixed.png
--------------------------------------------------------------------------------
/alipay_public_key.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN PUBLIC KEY-----
2 | MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRA
3 | FljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQE
4 | B/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5Ksi
5 | NG9zpgmLCUYuLkxpLQIDAQAB
6 | -----END PUBLIC KEY-----
--------------------------------------------------------------------------------
/demo/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mytharcher/alipay-sdk-test",
3 | "license": "MIT",
4 | "authors": [
5 | {
6 | "name": "mytharcher",
7 | "email": "mytharcher@gmail.com"
8 | }
9 | ],
10 | "require": {
11 | "php": ">=5.3.0",
12 | "mytharcher/alipay-php-sdk": "dev-master",
13 | "mobiledetect/mobiledetectlib": "^2.8"
14 | }
15 | }
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mytharcher/alipay-php-sdk",
3 | "version": "0.2.0",
4 | "description": "Refactored Alipay PHP SDK (include mobile version). 经重构的支付宝 PHP 开发包(含移动网页支付)",
5 | "keywords": ["Alipay", "PHP", "SDK", "支付宝"],
6 | "license": "MIT",
7 | "support": {
8 | "issues": "https://github.com/mytharcher/alipay-php-sdk/issues",
9 | "source": "https://github.com/mytharcher/alipay-php-sdk"
10 | },
11 | "authors": [
12 | {
13 | "name": "mytharcher",
14 | "email": "mytharcher@gmail.com"
15 | }
16 | ],
17 | "require": {
18 | "php": ">=5.3.0"
19 | },
20 | "autoload": {
21 | "psr-4": {"mytharcher\\sdk\\alipay\\": "./"}
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/demo/config.php:
--------------------------------------------------------------------------------
1 |
56 |
--------------------------------------------------------------------------------
/demo/return_url.php:
--------------------------------------------------------------------------------
1 |
21 |
22 |
23 |
24 |
25 |
26 | 支付宝即时到账交易接口
27 |
28 |
29 | isMobile();
33 |
34 | $alipay = new mytharcher\sdk\alipay\Alipay($alipay_config, $is_mobile);
35 | $verify_result = $alipay->verifyCallback();
36 | if($verify_result) {//验证成功
37 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
38 | //请在这里加上商户的业务逻辑程序代码
39 |
40 | //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
41 | //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
42 |
43 | //商户订单号
44 |
45 | $out_trade_no = $_GET['out_trade_no'];
46 |
47 | //支付宝交易号
48 |
49 | $trade_no = $_GET['trade_no'];
50 |
51 | //交易状态
52 | $trade_status = $_GET['trade_status'];
53 |
54 |
55 | if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
56 | //判断该笔订单是否在商户网站中已经做过处理
57 | //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
58 | //如果有做过处理,不执行商户的业务程序
59 | }
60 | else {
61 | echo "trade_status=".$_GET['trade_status'];
62 | }
63 |
64 | echo "验证成功
";
65 |
66 | //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
67 |
68 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
69 | }
70 | else {
71 | //验证失败
72 | //如要调试,请看alipay_notify.php页面的verifyReturn函数
73 | echo "验证失败";
74 | }
75 | ?>
76 |
77 |
78 |
--------------------------------------------------------------------------------
/demo/notify_url.php:
--------------------------------------------------------------------------------
1 | verifyCallback(TRUE);
26 |
27 | if($verify_result) {//验证成功
28 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
29 | //请在这里加上商户的业务逻辑程序代
30 |
31 |
32 | //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
33 |
34 | //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
35 |
36 | //商户订单号
37 |
38 | $out_trade_no = $_POST['out_trade_no'];
39 |
40 | //支付宝交易号
41 |
42 | $trade_no = $_POST['trade_no'];
43 |
44 | //交易状态
45 | $trade_status = $_POST['trade_status'];
46 |
47 |
48 | if($_POST['trade_status'] == 'TRADE_FINISHED') {
49 | //判断该笔订单是否在商户网站中已经做过处理
50 | //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
51 | //如果有做过处理,不执行商户的业务程序
52 |
53 | //注意:
54 | //该种交易状态只在两种情况下出现
55 | //1、开通了普通即时到账,买家付款成功后。
56 | //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。
57 |
58 | //调试用,写文本函数记录程序运行情况是否正常
59 | //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
60 | }
61 | else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
62 | //判断该笔订单是否在商户网站中已经做过处理
63 | //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
64 | //如果有做过处理,不执行商户的业务程序
65 |
66 | //注意:
67 | //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。
68 |
69 | //调试用,写文本函数记录程序运行情况是否正常
70 | //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
71 | }
72 |
73 | //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
74 |
75 | echo "success"; //请不要修改或删除
76 |
77 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
78 | }
79 | else {
80 | //验证失败
81 | echo "fail";
82 |
83 | //调试用,写文本函数记录程序运行情况是否正常
84 | //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
85 | }
86 | ?>
87 |
--------------------------------------------------------------------------------
/demo/alipayapi.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 支付宝即时到账交易接口接口
7 |
8 | isMobile();
66 | //建立请求
67 | $alipay = new mytharcher\sdk\alipay\Alipay($alipay_config, $is_mobile);
68 |
69 | if ($is_mobile) {
70 | $params = $alipay->prepareMobileTradeData(array(
71 | 'out_trade_no' => $out_trade_no,
72 | 'subject' => $subject,
73 | 'body' => $body,
74 | 'total_fee' => $total_fee,
75 | 'merchant_url' => 'http://'.$_SERVER['HTTP_HOST'],
76 | 'req_id' => date('Ymdhis-')
77 | ));
78 | echo $alipay->buildRequestFormHTML($params, 'get');
79 | } else {
80 | echo $alipay->buildRequestFormHTML(array(
81 | "service" => "create_direct_pay_by_user",
82 | "partner" => trim($alipay_config['partner']),
83 | "payment_type" => $alipay_config['payment_type'],
84 | "notify_url" => $alipay_config['notify_url'],
85 | "return_url" => $alipay_config['return_url'],
86 | "seller_id" => $alipay_config['partner'],
87 | "out_trade_no" => $out_trade_no,
88 | "subject" => $subject,
89 | "total_fee" => $total_fee,
90 | "body" => $body,
91 | "show_url" => $show_url,
92 | "anti_phishing_key" => $anti_phishing_key,
93 | "exter_invoke_ip" => $exter_invoke_ip,
94 | "_input_charset" => trim(strtolower($alipay_config['input_charset']))
95 | ), "post");
96 | }
97 |
98 | ?>
99 |
100 |