Authored by 郝肖肖

微信 支付加到期时间

@@ -325,14 +325,28 @@ class PaymentModel @@ -325,14 +325,28 @@ class PaymentModel
325 $input->SetBody('有货订单号:' . $orderCode); 325 $input->SetBody('有货订单号:' . $orderCode);
326 $input->SetOut_trade_no('YOHOBuy_' . $orderCode); // 商户订单号 326 $input->SetOut_trade_no('YOHOBuy_' . $orderCode); // 商户订单号
327 $input->SetTotal_fee($totalFee); 327 $input->SetTotal_fee($totalFee);
328 - $input->SetTime_start(date("YmdHis"));  
329 - $input->SetTime_expire(date("YmdHis", time() + 600)); 328 + //到期时间
  329 + if (!empty($orderDetail['data']['pay_expire']) && ($payExpireTime = strtotime($orderDetail['data']['pay_expire']))) {
  330 + $payExpireTime = $payExpireTime;
  331 + } else {
  332 + $payExpireTime = time();
  333 + }
  334 +
  335 + $input->SetTime_start(date("YmdHis", strtotime('-2 hours', $payExpireTime)));
  336 + //最短失效时间间隔必须大于5分钟 [https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1]
  337 + $input->SetTime_expire(date("YmdHis", $payExpireTime + 300));
330 $input->SetTrade_type("NATIVE"); 338 $input->SetTrade_type("NATIVE");
331 $input->SetProduct_id($orderCode); 339 $input->SetProduct_id($orderCode);
332 $notify = new WxPayNativePay(); 340 $notify = new WxPayNativePay();
333 $payResult = $notify->GetPayUrl($input); 341 $payResult = $notify->GetPayUrl($input);
  342 + //错误信息,EQ:超时
  343 + if (!empty($payResult['return_code']) && $payResult['return_code'] === 'FAIL') {
  344 + self::$code['message'] = $payResult['return_msg'];
  345 + break;
  346 + }
334 347
335 - if ($payResult['result_code'] === 'FAIL') { 348 + //错误信息,EQ:多次涮新
  349 + if (!empty($payResult['result_code']) && $payResult['result_code'] === 'FAIL') {
336 self::$code['message'] = $payResult['err_code_des']; 350 self::$code['message'] = $payResult['err_code_des'];
337 break; 351 break;
338 } 352 }