// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\api\controller; use app\api\model\Notify as NotifyModel; use app\api\model\Order as OrderModel; use app\api\model\Merchant as MerchantModel; use app\api\model\order\Record as RecordModel; use app\common\library\wechat\WxPay; use app\common\library\leshua\LsPay; use think\response\Json; /** * 支付成功异步通知接口 * Class Notify * @package app\api\controller */ class Notify extends Controller { /** * 支付成功异步通知(微信小程序-微信支付) * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function wxpay() { // 微信支付组件:验证异步通知 $WxPay = new WxPay(); $WxPay->notify(); } /** * 支付成功异步通知(微信小程序-乐刷支付) * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function leshua() { // 微信支付组件:验证异步通知 $LsPay = new LsPay(); $LsPay->notify(); } /** * 发送通知 * @throws \app\common\exception\BaseException * @throws \think\exception\DbException */ public function sendNotify() { $model = new NotifyModel(); $array = $model->getList(); $this->saveLog("进入回调查询"); $order_status = ['10'=>'等待支付','20'=>'支付成功','30'=>'支付超时']; foreach ($array as $val){ $status = 0; //发送通知 $model = new OrderModel; $order = $model->getOrderDetailById($val['order_id']); if(is_object($order)) { $order_no = $this->getOrderNo($order['order_no']); $merchant = MerchantModel::detail($order['merchant_id']); $params = [ 'appid' => $merchant['appId'], 'name' => $order['name'], 'money' => $order['money'], 'order_no' => $order_no, 'order_no_sn' => $order['order_no_sn'], 'order_status' => $order['order_status'], 'order_status_text' => $order_status[$order['order_status']], 'create_time' => $order['create_time'], ]; //$this->saveLog("回调数据,".json_encode($params,320)); $sign = $this->makeSign($params,$merchant['appKey']); $params['sign'] = $sign; $res = $this->httpCurl($val['notify_url'], $params, 'POST'); $this->saveLog("回调通知,订单:".$order_no.",结果:".json_encode($res,320)); //var_dump($res); if ($res['code'] == '0000') { $status = 1; } $nm = NotifyModel::detail($val['notify_id']); $result = $nm->sureNotify(['status' => $status, 'num' => $nm['num'] + 1]); $this->saveLog("回调通知订单状态修改,订单:".$order_no.",结果:".$result); } } } /** * 发送通知 */ public function notify() { $res = json_decode('{"optType":"cancel_share","amount":3,"oilCardNo":"YKA2407232037340001","type":"sub","order_id":10171,"user_id":10001,"store_id":10001}',true); // 油卡变动通知 $order = OrderModel::detail(['oilCardNo'=>$res['oilCardNo'], 'amount'=>$res['amount']]); $res['order_id'] = $order['order_id']; $res['user_id'] = $order['user_id']; $res['store_id'] = $order['store_id']; $this->saveLog('油卡变动参数:'.json_encode($res)); $RecordModel = new RecordModel(); $this->saveLog('油卡变动记录写入结果:'. $RecordModel->add($res)); /*$header = [ 'method' => 'syb.notify.oilCard.share', ]; $body = [ 'shareNo' => '11', 'oilCardNo' => '22', 'saleOrderNo' => '33', 'amount' => 0.01, 'status' =>'success', 'msg' => '', 'oilCardType' => 'card', ]; $response = $this->sendRequest('http://139.129.21.253/index.php?s=/api/sybNotify/notify', $body, $header); //var_dump($response);*/ } }