readme.txt
7.16 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
╭───────────────────────╮
╭────┤ 支付宝代码示例结构说明 ├────╮
│ ╰───────────────────────╯ │
│ │
│ 接口名称:支付宝即时到帐接口(create_direct_pay_by_user) │
│ 代码版本:3.1 │
│ 开发语言:PHP │
│ 版 权:支付宝(中国)网络技术有限公司 │
│ 制 作 者:支付宝商户事业部技术支持组 │
│ 联系方式:商户服务电话0571-88158090 │
│ │
╰─────────────────────────────────╯
───────
代码文件结构
───────
js_php_utf8
│
├class┈┈┈┈┈┈┈┈┈┈┈┈类文件夹
│ │
│ ├alipay_function.php┈┈┈公用函数类文件
│ │
│ ├alipay_notify.php┈┈┈┈支付宝通知处理类文件
│ │
│ └alipay_service.php ┈┈┈支付宝请求处理类文件
│
├images ┈┈┈┈┈┈┈┈┈┈┈图片、CSS样式文件夹
│
├log.txt┈┈┈┈┈┈┈┈┈┈┈日志文件
│
├alipay_config.php┈┈┈┈┈┈基础信息配置文件
│
├alipayto.php ┈┈┈┈┈┈┈┈支付宝接口入口文件
│
├index.php┈┈┈┈┈┈┈┈┈┈快速付款入口模板文件
│
├notify_url.php ┈┈┈┈┈┈┈服务器异步通知页面文件
│
├return_url.php ┈┈┈┈┈┈┈页面跳转同步通知文件
│
└readme.txt ┈┈┈┈┈┈┈┈┈使用说明文本
※注意※
需要配置的文件是:alipay_config.php、alipayto.php
index.php仅是支付宝提供的付款入口模板文件,可选择使用。
如果商户网站根据业务需求不需要使用,请把alipayto.php作为与商户网站网站相衔接页面。
如果需要使用index.php,那么alipayto.php文件无需更改,只需配置好alipay_config.php文件
拿到index.php页面在商户网站中的HTTP路径放置在商户网站中需要的位置,就能直接使用支付宝接口。
─────────
类文件函数结构
─────────
alipay_function.php
function build_mysign($sort_array,$key,$sign_type = "MD5")
功能:生成签名结果
输入:Array $sort_array 要签名的数组
String $key 安全校验码
String $sign_type 签名类型 默认值 MD5
输出:String 签名结果字符串
function create_linkstring($array)
功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
输入:Array $array 需要拼接的数组
输出:String 拼接完成以后的字符串
function para_filter($parameter)
功能:除去数组中的空值和签名参数
输入:Array $parameter 签名参数组
输出:Array 去掉空值与签名参数后的新签名参数组
function arg_sort($array)
功能:对数组排序
输入:Array $array 排序前的数组
输出:Array 排序后的数组
function sign($prestr,$sign_type)
功能:签名字符串
输入:String $prestr 需要签名的字符串
String $sign_type 签名类型
输出:String 签名结果
function log_result($word)
功能:写日志,方便测试(看网站需求,也可以改成存入数据库)
输入:String $word 要写入日志里的文本内容
function query_timestamp($partner)
功能:用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数
输入:String $partner 合作身份者ID
输出:String 时间戳字符串
function charset_encode($input,$_output_charset ,$_input_charset)
功能:实现多种字符编码方式
输入:String $input 需要编码的字符串
String $_output_charset 输出的编码格式
String $_input_charset 输入的编码格式
输出:String 编码后的字符串
function charset_decode($input,$_input_charset ,$_output_charset)
功能:实现多种字符解码方式
输入:String $input 需要解码的字符串
String $_output_charset 输出的解码格式
String $_input_charset 输入的解码格式
输出:String 解码后的字符串
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
alipay_notify.php
function alipay_notify($partner,$key,$sign_type,$_input_charset = "GBK",$transport= "https")
功能:构造函数
从配置文件中初始化变量
输入:String $partner 合作身份者ID
String $key 安全校验码
String $sign_type 签名类型
String $_input_charset 字符编码格式 默认值 GBK
String $transport 访问模式 默认值 https
function notify_verify()
功能:对notify_url的认证
输出:Bool 验证结果:true/false
function return_verify()
功能:对return_url的认证
输出:Bool 验证结果:true/false
function get_verify($url,$time_out = "60")
功能:获取远程服务器ATN结果
输入:String $url 指定URL路径地址
String $time_out 超时计时器 默认值60
输出:String 服务器ATN结果字符串
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
alipay_service.php
function alipay_service($parameter,$key,$sign_type)
功能:构造函数
从配置文件及入口文件中初始化变量
输入:Array $parameter 需要签名的参数数组
Array $key 安全校验码
Array $sign_type 签名类型
function build_form()
功能:构造表单提交HTML
输出:String 表单提交HTML文本
──────────
如何增加请求参数
──────────
在技术文档的请求参数列表中有诸多请求参数,如果因业务需求等原因要利用这些参数,那么可以按照下面的操作方法来扩充接口功能。
┉┉┉以参数it_b_pay为例┉┉┉
打开alipayto.php文件,在注释“以下参数是需要通过下单时的订单数据传入进来获得”与“/////////////////////////////////////////////////”代码段之间添加以下代码:
/////////////////////////////////////////////////
//扩展功能参数——自定义超时(若要使用,请按照注释要求的格式赋值)
//该功能默认不开通,
//申请开通方式:
//方式一:联系支付宝技术支持申请处理
//方式二:拨打0571-88158090申请
//方式三:提交集成申请(https://b.alipay.com/support/helperApply.htm?action=consultationApply)
$it_b_pay = "";
//超时时间,不填默认是15天。设置范围:1m~15d。,-分隔符,~-范围 , m-分钟,h-小时,d-天,1c-当天(无论何时创建,交易都在0点关闭)
//如:$it_b_pay = "1m~1h,2h,3h,1c";
/////////////////////////////////////////////////
在“构造要请求的参数数组,无需改动”注释下方的“数组参数$parameter”中增加数组元素【 "it_b_pay" => $it_b_pay】
/////////////////////////////////////////////////
$parameter = array(
"service" => "create_direct_pay_by_user", //接口名称,不需要修改
"payment_type" => "1", //交易类型,不需要修改
//获取配置文件(alipay_config.php)中的值
"partner" => $partner,
"seller_email" => $seller_email,
"return_url" => $return_url,
"notify_url" => $notify_url,
"_input_charset" => $_input_charset,
"show_url" => $show_url,
//从订单数据中动态获取到的必填参数
"out_trade_no" => $out_trade_no,
"subject" => $subject,
"body" => $body,
"total_fee" => $total_fee,
//扩展功能参数——网银提前
"paymethod" => $paymethod,
"defaultbank" => $defaultbank,
//扩展功能参数——防钓鱼
"anti_phishing_key" => $anti_phishing_key,
"exter_invoke_ip" => $exter_invoke_ip,
//扩展功能参数——自定义参数
"buyer_email" => $buyer_email,
"extra_common_param"=> $extra_common_param,
//扩展功能参数——分润
"royalty_type" => $royalty_type,
"royalty_parameters" => $royalty_parameters,
//扩展功能参数——自定义超时
"it_b_pay" => $it_b_pay
);
/////////////////////////////////////////////////
──────────
出现问题,求助方法
──────────
如果在集成支付宝接口时,有疑问或出现问题,可使用下面的链接,提交申请。
https://b.alipay.com/support/helperApply.htm?action=supportHome
我们会有专门的技术支持人员为您处理