...
|
...
|
@@ -26,26 +26,41 @@ class NotifyController extends HomebaseController { |
|
|
$data = $base->FromXml($xml);
|
|
|
if($base->CheckSign() == true){
|
|
|
if ($data["return_code"] == "SUCCESS") {
|
|
|
F('data',$data);
|
|
|
$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));
|
|
|
}
|
|
|
$orderInfo = $order_model->where($where)->find();
|
|
|
if($orderInfo['status'] == 1) {
|
|
|
$where['price_count'] = $data['total_fee'];
|
|
|
$info['pay_sort'] = 1;
|
|
|
$info['ptime'] = time();
|
|
|
$info['status'] = 2;
|
|
|
$info['transaction_id'] = $data['transaction_id'];
|
|
|
M('Order')->startTrans();
|
|
|
$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);
|
|
|
if(!$sheet_model->where(array($word.'id'=>$orderInfo['sheet_id']))->save(array('is_pay'=>1))) {
|
|
|
M('Order')->rollback();
|
|
|
}
|
|
|
} else {
|
|
|
$order_detail_model = D('Common/OrderDetail');
|
|
|
$orderDetailList = $order_detail_model->where(array('order_sn'=>$data['out_trade_no']))->select();
|
|
|
$goods_model = D('Common/Goods');
|
|
|
foreach($orderDetailList as $k=>$v) {
|
|
|
if(!$goods_model->where(array('id'=>$v['goods_id']))->setDec('num',$v['num'])) {
|
|
|
M('Order')->rollback();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
M('Order')->commit();
|
|
|
// $pay_log_model = D('Common/PayLog');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
...
|
...
|
|