最近在做一个使用支付宝转账的项目,其中有需求把我难到了:批量支付成功后不知道怎么接收系统返回的通知,经过朋友帮忙,此功能实现,下面小编把具体代码整理分享给大家,供大家参考
废话不多说了,直接给大家贴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
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
|
//批量付款异步通知处理 class Notify { public $notifyParams ; //处理成功的信息 protected $success = []; //处理失败的信息 protected $fail = []; //批次号 protected $batchNo ; public function save() { if (! is_array ( $this ->notifyParams)) { return false; } $alipayNotify = new AlipayNotify(); $alipayNotify ->notifyParams = $this ->notifyParams; $alipayNotify ->partner = Yii:: $app ->params[ 'Alipay.appid' ]; $alipayNotify ->key = Yii:: $app ->params[ 'Alipay.appKey' ]; if (! $alipayNotify ->verify()) { return false; } $this ->batchNo = $this ->notifyParams[ 'batch_no' ]; $this ->parseResult(); //转账成功的 if (! empty ( $this ->success)) { foreach ( $this ->success as $item ) { //......... } } //转账失败的 if (! empty ( $this ->fail)) { foreach ( $this ->fail as $item ) { //........ } } return true; } //解析结果 protected function parseResult() { if (! empty ( $this ->notifyParams[ 'success_details' ])) { $suArray = explode ( '|' , $this ->notifyParams[ 'success_details' ]); foreach ( $suArray as $item ) { $this ->success[] = explode ( '^' , $item ); } } if (! empty ( $this ->notifyParams[ 'fail_detail' ])) { $faArray = explode ( '|' , $this ->notifyParams[ 'fail_detail' ]); foreach ( $faArray as $item ) { $this ->fail[] = explode ( '^' , $item ); } } } } //用法 $model = new Notify(); $model ->notifyParams = $_POST ; if ( $model ->save()) { return 'success' ; } return 'fail' ; |
以上内容给大家讲解了纯PHP代码实现支付宝批量付款的功能,希望对大家有所帮助。