Authored by 郝肖肖

支付宝和直联加支付到期时间

@@ -42,8 +42,6 @@ class Service extends PayAbstract @@ -42,8 +42,6 @@ class Service extends PayAbstract
42 public function getPayRequestPars(Reqparams $params) 42 public function getPayRequestPars(Reqparams $params)
43 { 43 {
44 // $baseUrl = $this->getBaseNoticeUrl($params->isTest); 44 // $baseUrl = $this->getBaseNoticeUrl($params->isTest);
45 -// $loseTime = intval(($params->orderTime + 7200 - time()) / 60);  
46 - // $loseTime = intval((strtotime(date("Y-m-d 10:00:00", strtotime("+1 day")))-time())/60);  
47 UdpLog::info("【{$this->logProjectPrefix}-支付宝银行支付】,function:getPayRequestPars,参数", $params); 45 UdpLog::info("【{$this->logProjectPrefix}-支付宝银行支付】,function:getPayRequestPars,参数", $params);
48 $parameter = array( 46 $parameter = array(
49 'service' => $this->config->service, 47 'service' => $this->config->service,
@@ -58,7 +56,7 @@ class Service extends PayAbstract @@ -58,7 +56,7 @@ class Service extends PayAbstract
58 'payment_type' => $this->config->payment_type, 56 'payment_type' => $this->config->payment_type,
59 'defaultbank' => $params->paymentParameter, 57 'defaultbank' => $params->paymentParameter,
60 'seller_email' => $this->config->sellerMail, 58 'seller_email' => $this->config->sellerMail,
61 -// 'it_b_pay' => $loseTime . 'm' 59 + 'it_b_pay' => $params->payExpireMinute . 'm',
62 ); 60 );
63 if ($this->config->anti_fishing['timestamp_enable']) { 61 if ($this->config->anti_fishing['timestamp_enable']) {
64 $anti_phishing_key = $this->getTimestamp(); 62 $anti_phishing_key = $this->getTimestamp();
@@ -47,8 +47,6 @@ class Service extends PayAbstract @@ -47,8 +47,6 @@ class Service extends PayAbstract
47 { 47 {
48 UdpLog::info("【{$this->logProjectPrefix}-支付宝支付】,function:getPayRequestPars,参数", $params); 48 UdpLog::info("【{$this->logProjectPrefix}-支付宝支付】,function:getPayRequestPars,参数", $params);
49 // $baseUrl = $this->getBaseNoticeUrl($params->isTest); 49 // $baseUrl = $this->getBaseNoticeUrl($params->isTest);
50 -// $loseTime = intval(($params->orderTime + 7200 -time())/60);  
51 -// $loseTime = intval((strtotime(date("Y-m-d 10:00:00", strtotime("+1 day")))-time())/60); //第二天十点  
52 $parameter = array( 50 $parameter = array(
53 'service' => $this->config->service, 51 'service' => $this->config->service,
54 'partner' => $this->config->partner, 52 'partner' => $this->config->partner,
@@ -58,13 +56,14 @@ class Service extends PayAbstract @@ -58,13 +56,14 @@ class Service extends PayAbstract
58 /* 业务参数 */ 56 /* 业务参数 */
59 'subject' => $params->goodsName, 57 'subject' => $params->goodsName,
60 'out_trade_no' => $params->orderCode, 58 'out_trade_no' => $params->orderCode,
61 -// 'it_b_pay' => $loseTime . 'm', 59 + 'it_b_pay' => $params->payExpireMinute . 'm',
62 'total_fee' => $params->totalFee / 100, //单位为元 60 'total_fee' => $params->totalFee / 100, //单位为元
63 'payment_type' => $this->config->payment_type, 61 'payment_type' => $this->config->payment_type,
64 'seller_email' => $this->config->sellerMail, 62 'seller_email' => $this->config->sellerMail,
65 'sign_id_ext' => $params->uid, 63 'sign_id_ext' => $params->uid,
66 'sign_name_ext' => $params->userName 64 'sign_name_ext' => $params->userName
67 ); 65 );
  66 +
68 if ($this->config->anti_fishing['timestamp_enable']) { 67 if ($this->config->anti_fishing['timestamp_enable']) {
69 $anti_phishing_key = $this->getTimestamp(); 68 $anti_phishing_key = $this->getTimestamp();
70 if (!empty($anti_phishing_key)) { 69 if (!empty($anti_phishing_key)) {
@@ -11,17 +11,25 @@ namespace WebPlugin\Pay; @@ -11,17 +11,25 @@ namespace WebPlugin\Pay;
11 class Reqparams 11 class Reqparams
12 { 12 {
13 13
14 - public function __construct($_orderCode, $_totalFee, $_goodName, $client_ip, $_orderTime, $_paymentParameter="", $_isTest=false, $uid=0, $userName='') 14 + public function __construct($_orderCode, $_totalFee, $_goodName, $client_ip, $_orderTime, $_paymentParameter="", $_isTest=false, $uid=0, $userName='', $_payExpire = '')
15 { 15 {
16 - $this->orderCode = $_orderCode;  
17 - $this->totalFee = $_totalFee;  
18 - $this->goodsName = $_goodName;  
19 - $this->spbill_create_ip = $client_ip;  
20 - $this->orderTime = $_orderTime;  
21 - $this->paymentParameter = $_paymentParameter;  
22 - $this->isTest = $_isTest;  
23 - $this->uid = $uid;  
24 - $this->userName = $userName; 16 + //到期时间,默认为当前时间加2个小时的时间戳
  17 + $_payExpire = empty($_payExpire) ? strtotime('+2 hours') : strtotime($_payExpire);
  18 + $payExpireMinute = 0;//剩余分钟数
  19 + if ($_payExpire && ($expireTime = $_payExpire - time()) > 0) {
  20 + $payExpireMinute = floor($expireTime / 60);
  21 + }
  22 +
  23 + $this->orderCode = $_orderCode;
  24 + $this->totalFee = $_totalFee;
  25 + $this->goodsName = $_goodName;
  26 + $this->spbill_create_ip = $client_ip;
  27 + $this->orderTime = $_orderTime;
  28 + $this->payExpireMinute = $payExpireMinute;
  29 + $this->paymentParameter = $_paymentParameter;
  30 + $this->isTest = $_isTest;
  31 + $this->uid = $uid;
  32 + $this->userName = $userName;
25 } 33 }
26 34
27 /** 35 /**
@@ -283,7 +283,10 @@ class PayModel @@ -283,7 +283,10 @@ class PayModel
283 $paymentParameter = $alipayToken; 283 $paymentParameter = $alipayToken;
284 } 284 }
285 285
286 - $reqParams = new Reqparams($orderCode, $totalFee, '有货订单号:' . $orderCode, '', $orderDetail['data']['create_time'], $paymentParameter, $isTest, $uid, $userName); 286 + $reqParams = new Reqparams(
  287 + $orderCode, $totalFee, '有货订单号:' . $orderCode, '', $orderDetail['data']['create_time'],
  288 + $paymentParameter, $isTest, $uid, $userName, $orderDetail['data']['pay_expire']
  289 + );
287 $reqPars = $payService->getPayRequestPars($reqParams); 290 $reqPars = $payService->getPayRequestPars($reqParams);
288 if (empty($reqPars)) { 291 if (empty($reqPars)) {
289 $result['error'] = true; 292 $result['error'] = true;
@@ -522,7 +522,10 @@ class PaymentModel @@ -522,7 +522,10 @@ class PaymentModel
522 $paymentParameter = $alipayToken; 522 $paymentParameter = $alipayToken;
523 } 523 }
524 524
525 - $reqParams = new Reqparams($orderCode, $totalFee, '有货订单号:' . $orderCode, '', $orderDetail['data']['create_time'], $paymentParameter, $isTest, $uid, $userName); 525 + $reqParams = new Reqparams(
  526 + $orderCode, $totalFee, '有货订单号:' . $orderCode, '', $orderDetail['data']['create_time'],
  527 + $paymentParameter, $isTest, $uid, $userName, $orderDetail['data']['pay_expire']
  528 + );
526 $reqPars = $payService->getPayRequestPars($reqParams); 529 $reqPars = $payService->getPayRequestPars($reqParams);
527 UdpLog::info( 530 UdpLog::info(
528 "【支付-参数】,function:getPayData,orderCode:{$orderCode},接口返回", 531 "【支付-参数】,function:getPayData,orderCode:{$orderCode},接口返回",