...
|
...
|
@@ -71,13 +71,13 @@ class PayController extends WeChatBaseController |
|
|
$re=$this->checkLogin();
|
|
|
$param=$this->request->param();
|
|
|
$data=Db::name('light_order')->where('id',$param['id'])->find();
|
|
|
$money=Db::name('light')->where('id',$data['light_id'])->find()['money'];
|
|
|
$data['money']=Db::name('light')->where('id',$data['light_id'])->find()['money'];
|
|
|
$attributes = [
|
|
|
'trade_type' => 'JSAPI',
|
|
|
'body' => '十方台',
|
|
|
'detail' => '续费',
|
|
|
'out_trade_no' => $data['order_sn'],
|
|
|
'total_fee' => $money, // 单位:分
|
|
|
'total_fee' => $data['money'], // 单位:分
|
|
|
'notify_url' => url('portal/pay/notify2','','',true), // 支付结果通知网址,如果不设置则会使用配置里的默认地址
|
|
|
'openid' => $re['open_id'], // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识,
|
|
|
];
|
...
|
...
|
@@ -136,7 +136,7 @@ class PayController extends WeChatBaseController |
|
|
$update['status']=1;
|
|
|
$light=Db::name('light')->where('id',$order['light_id'])->find();
|
|
|
//寺庙金额增加
|
|
|
Db::name('temple')->where('id',$light['temple_id'])->setInc('money',$order['money']);
|
|
|
Db::name('temple')->where('id',$light['temple_id'])->setInc('money',$light['money']);
|
|
|
//硬件控制
|
|
|
$this->lightChange($order['light_id'],'01','01',$order['name']);
|
|
|
Db::name('light_order')->where('order_sn',$out_trade_no)->update($update);
|
...
|
...
|
@@ -150,7 +150,46 @@ class PayController extends WeChatBaseController |
|
|
$response->send();
|
|
|
}
|
|
|
|
|
|
public function notify2(){
|
|
|
// cache('nnn',111);
|
|
|
$app = new Application($this->options);
|
|
|
$response = $app->payment->handleNotify(function($notify, $successful){
|
|
|
cache('notify',$notify);
|
|
|
|
|
|
/*这里是支付回调逻辑处理,一下是DEMO*/
|
|
|
|
|
|
// // 使用通知里的 "微信支付订单号" 或者 "商户订单号" 去自己的数据库找到订单
|
|
|
$out_trade_no=$notify->out_trade_no;
|
|
|
$order = Db::name('light_order')->where('order_sn',$out_trade_no)->find();
|
|
|
if (!$order) { // 如果订单不存在
|
|
|
return 'Order not exist.'; // 告诉微信,我已经处理完了,订单没找到,别再通知我了
|
|
|
}
|
|
|
// // 如果订单存在
|
|
|
// // 检查订单是否已经更新过支付状态
|
|
|
if ($order['renew_time']!=null) { // 假设订单字段“支付时间”不为空代表已经支付
|
|
|
return true; // 已经支付成功了就不再更新了
|
|
|
}
|
|
|
// // 用户是否支付成功
|
|
|
if ($successful) {
|
|
|
// 回填微信的订单号
|
|
|
// $update['transaction_id']=$notify->transaction_id;
|
|
|
$update['renew_time']=time();
|
|
|
// 不是已经支付状态则修改为已经支付状态
|
|
|
$light=Db::name('light')->where('id',$order['light_id'])->find();
|
|
|
//寺庙金额增加
|
|
|
Db::name('temple')->where('id',$light['temple_id'])->setInc('money',$order['money']);
|
|
|
//硬件控制
|
|
|
// $this->lightChange($order['light_id'],'01','01',$order['name']);
|
|
|
Db::name('light_order')->where('order_sn',$out_trade_no)->update($update);
|
|
|
} else {
|
|
|
// 用户支付失败
|
|
|
Db::name('light_order')->where('order_sn',$out_trade_no)->delete();
|
|
|
}
|
|
|
return true; // 返回处理完成
|
|
|
});
|
|
|
|
|
|
$response->send();
|
|
|
}
|
|
|
protected function lightChange($id="",$status1='01',$status2='01',$u=""){
|
|
|
if ($id==""){
|
|
|
return false;
|
...
|
...
|
|