NotifyController.class.php
2.5 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
<?php
/**
* Created by PhpStorm.
* User: 29925
* Date: 2018/5/12
* Time: 15:09
*/
namespace Portal\Controller;
use Common\Controller\HomebaseController;
class NotifyController extends HomebaseController {
function _initialize() {
parent::_initialize(); // TODO: Change the autogenerated stub
require_once VENDOR_PATH."WxpayAPI/lib/WxPay.Api.php";
require_once VENDOR_PATH."WxpayAPI/lib/WxPay.Notify.php";
require_once VENDOR_PATH.'WxpayAPI/example/log.php';
}
// pc端微信支付回调
public function notify_web() {
$xml = $GLOBALS['HTTP_RAW_POST_DATA']; //微信的回调数据
$base = new \WxPayResults(); //实例化数据对象结果类
$data = $base->FromXml($xml);
if($base->CheckSign() == true){
if ($data["return_code"] == "SUCCESS") {
$where['order_sn'] = $data['attach'];
if(!$where['order_sn']) {
$where['order_sn'] = $data['out_trade_no'];
}
$where['price_count'] = $data['total_fee'];
$info['pay_sort'] = 1;
$info['ptime'] = time();
$info['status'] = 2;
$info['transaction_id'] = $data['transaction_id'];
$order_model = D('Common/Order');
$result = $order_model->where($where)->save($info);
if($result) {
$orderInfo = $order_model->where($where)->find();
if($orderInfo['sheet']&&$orderInfo['sheet_id']) {
$sheet_model = D('Common/'.$orderInfo['sheet'].'Apply');
$word = substr(lcfirst($orderInfo['sheet']),0,1);
$sheet_model->where(array($word.'id'=>$orderInfo['sheet_id']))->save(array('is_pay'=>1));
}
// $pay_log_model = D('Common/PayLog');
}
}
}
}
// 查询订单是否支付完成
public function searchStatus() {
if(IS_AJAX) {
$order_sn = I('post.order_sn');
$order_model = D('Common/Order');
$status = $order_model->where(array('order_sn'=>$order_sn))->getField('status');
if($status >= 2 && $status <6) {
$this->ajaxReturn(array('status'=>true,'msg'=>'支付成功'));
} else {
$this->ajaxReturn(array('status'=>false,'msg'=>'未支付完成'));
}
}
}
}