PayNotifyCallBack.php
2.33 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
<?php
require_once IA_ROOT.'/addons/zh_cjdianc/inc/Log.php';
require_once IA_ROOT.'/addons/zh_cjdianc/inc/wxlib/WxPay.Notify.php';
require_once IA_ROOT.'/addons/zh_cjdianc/inc/class/GroupOrder.php';
require_once IA_ROOT.'/addons/zh_cjdianc/inc/class/Order.php';
class PayNotifyCallBack extends WxPayNotify
{
//查询订单
public function Queryorder($data)
{
$input = new WxPayOrderQuery();
$input->SetTransaction_id($data['transaction_id']);
$input->SetMch_id($data['mch_id']);
$input->SetAppid($data['appid']);
$result = WxPayApi::orderQuery($input, 2, $data['wxkey']);
Log::debug("Queryorder:" . json_encode($result));
if (array_key_exists("return_code", $result)
&& array_key_exists("result_code", $result)
&& $result["return_code"] == "SUCCESS"
&& $result["result_code"] == "SUCCESS")
{
return true;
}
return false;
}
//重写回调处理函数
public function NotifyProcess($data, &$msg)
{
global $_W;
Log::debug("NotifyProcess:".json_encode($data));
$notfiyOutput = array();
if(!array_key_exists("transaction_id", $data)){
$msg = "输入参数不正确";
return false;
}
$_W['uniacid'] = $_W['weid'] = intval($data['attach']);
$paySettings = pdo_get('cjdc_pay', ['uniacid' => $_W['uniacid']]);
if ($paySettings) {
$data['wxkey'] = $paySettings['wxkey'];
}
//查询订单,判断订单真实性
if (!$this->Queryorder($data)) {
$msg = "订单查询失败";
return false;
}
//load()->web('common');
//load()->model('mc');
//load()->func('communication');
//$_W['uniaccount'] = $_W['account'] = uni_fetch($_W['uniacid']);
//$_W['acid'] = $_W['uniaccount']['acid'];
//$paySetting = uni_setting($_W['uniacid'], array('payment'));
$out_trade_no = $data['out_trade_no'];
//拼团订单
$groupResult = GroupOrder::afterOrderPay($out_trade_no, $data);
// 正常订单
$orderResult = Order::afterOrderPay($out_trade_no, $data);
if (!$groupResult and !$orderResult) {
return false;
}
return true;
}
}