作者 郭文星

213

@@ -265,6 +265,72 @@ class Index extends Api @@ -265,6 +265,72 @@ class Index extends Api
265 //计算超时时间 265 //计算超时时间
266 $newtime=time()-43200; 266 $newtime=time()-43200;
267 $order=Db::name("order")->where("create_time",">",$newtime)->select(); 267 $order=Db::name("order")->where("create_time",">",$newtime)->select();
268 - print_r($order); 268 + foreach ($order as $k=>$v){
  269 + $res=$this->refund($v['id']);
  270 + }
  271 + }
  272 +
  273 + public function refund($id)
  274 + {
  275 + //查询订单
  276 + $order = Db::name("order")->where("id", $id)->find();
  277 + if(!$order){
  278 + print_r("id错误");
  279 + }
  280 + if ($order['is_pay'] == 1) {
  281 + if ($order['order_status'] != 1) {
  282 + print_r("该订单无法退款order_status不等于1order_status=".$order['order_status']);
  283 + }
  284 + if ($order['pay_type'] == "offlinepay") {
  285 + $relogs['update_time'] = time();
  286 + $relogs['is_pay'] = 4;
  287 + $relogs['refund_time'] = time();
  288 + $rs2 = Db::name('order')
  289 + ->where(['id' => $order['id']])
  290 + ->update($relogs);
  291 + }
  292 + //$this->error("该订单无法退款");
  293 + //拼接退款参数
  294 + $pay_fee = $order['price'];
  295 + $refund_fee = $pay_fee;
  296 + $order_sn = $order['order_no'];
  297 + $pay_type = 'wechat';
  298 + $reason = '订单退款';
  299 + $notifyurl = 'https://wyc.tenyes.cn/api/index/refundNotifyx';//退款回调地址
  300 + //直接调用退款方法传参即可
  301 + $response = \addons\epay\library\Service::submitRefund($pay_fee, $refund_fee, $order_sn, getRefundSn($order['user_id']), $pay_type, $reason, $notifyurl, '', 'miniapp');
  302 + $response = json_encode($response);
  303 + $response = json_decode($response, true);
  304 + file_put_contents("pcl_repay_v2.log", date("Y-m-d H:i:s") . "::" . json_encode($response, JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
  305 + if (!empty($response['return_code'] == 'SUCCESS')) {
  306 +
  307 + //退款成功,更新退款记录
  308 + $relogs['update_time'] = time();
  309 + $relogs['is_pay'] = 3;
  310 + $relogs['out_refund_no'] = $response['out_refund_no'];
  311 + $relogs['refund_time'] = time();
  312 + $rs2 = Db::name('order')
  313 + ->where(['id' => $order['id']])
  314 + ->update($relogs);
  315 + } else {
  316 + print_r("微信退款失败".$response);
  317 + }
  318 +
  319 + //refundSendMessage($id);//发送订阅消息
  320 + $index=new Index();
  321 + $index->senWxmsgToDriverUser($id);
  322 + print_r("退款成功".$response);
  323 +
  324 + } else {
  325 + $relogs['is_pay'] = 4;
  326 + $rs2 = Db::name('order')
  327 + ->where(['id' => $order['id']])
  328 + ->update($relogs);
  329 + //refundSendMessage($id);//发送订阅消息
  330 + $index=new Index();
  331 + $index->senWxmsgToDriverUser($id);
  332 + print_r("取消成功 id=".$id);
  333 +
  334 + }
269 } 335 }
270 } 336 }