Parcourir la source

开通与续费订单

shish il y a 6 ans
Parent
commit
01afa21f6c
2 fichiers modifiés avec 80 ajouts et 3 suppressions
  1. 57 3
      app/open/controllers/RenewController.php
  2. 23 0
      sql.txt

+ 57 - 3
app/open/controllers/RenewController.php

@@ -2,15 +2,69 @@
 
 namespace open\controllers;
 
+use biz\saas\services\RenewService;
+use biz\saas\services\SetMealService;
+use common\components\configDict;
 use common\components\util;
 use Yii;
 
 class RenewController extends BaseController
 {
-
-	public function action()
+	
+	//微信支付 shish 2019.12.23
+	public function actionWxPay()
 	{
-
+		ini_set('date.timezone', 'Asia/Shanghai');
+		$setId = Yii::$app->request->get('setId', 1);
+		$set = SetMealService::getById($setId);
+		if (empty($set)) {
+			util::fail('没有找到套餐');
+		}
+		$post['userId'] = $this->userId;
+		$price = $set['price'];
+		$post['prePrice'] = $price;
+		$post['actPrice'] = $price;
+		$post['payWay'] = 0;
+		$now = time();
+		$expireTime = $now + 300;//订单5分钟后过期
+		$post['createTime'] = date("Y-m-d H:i:s", $now);
+		$post['deadline'] = $expireTime;
+		$renew = RenewService::add($post);
+		$orderId = $renew['orderSn'];
+		$name = $set['name'] . '购买续费';
+		$totalFee = $price;
+		$user = $this->user;
+		$openId = $user['openId'];
+		$typeList = configDict::getConfig('capitalType');
+		$capitalType = $typeList['xhOrder']['id'];
+		$attach = 'capitalType=' . $capitalType . '&couponId=0';//将流水类型、优惠卷传过去
+		$wx = Yii::getAlias("@vendor/weixin");
+		require_once($wx . '/lib/WxPay.Api.php');
+		require_once($wx . '/example/WxPay.JsApiPay.php');
+		$input = new \WxPayUnifiedOrder();
+		$input->SetBody($name);
+		$input->SetOut_trade_no($orderId);
+		$input->SetTotal_fee($totalFee * 100);
+		$input->SetTime_start(date("YmdHis", $now));
+		$input->SetAttach($attach);
+		$input->SetTime_expire(date("YmdHis", $expireTime));//设置订单有效期5分钟
+		$input->SetNotify_url($this->frontUrl . '/notice/weixin-callback/');
+		$input->SetTrade_type("JSAPI");
+		
+		//花卉宝代为申请的微信支付
+		$merchantExtend = $this->merchantExtend;
+		if ($merchantExtend['generalMerchant'] == 1) {
+			$input->SetSub_openid($openId);
+		} else {
+			$input->SetOpenid($openId);
+		}
+		
+		$wxOrder = \WxPayApi::unifiedOrder($input, 6, $merchantExtend);
+		$tools = new \JsApiPay();
+		$jsApiParameters = $tools->GetJsApiParameters($wxOrder, $merchantExtend);
+		$newParams = json_decode($jsApiParameters, true);
+		$newParams['orderId'] = $orderId;
+		util::success($newParams);
 	}
 
 }

+ 23 - 0
sql.txt

@@ -1,3 +1,23 @@
+2019.12.24
+DROP TABLE IF EXISTS `xhRenew`;
+CREATE TABLE IF NOT EXISTS `xhRenew` (
+  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '自增id',
+  `orderSn` CHAR(30) NOT NULL DEFAULT '' COMMENT '订单编号',
+  `payWay` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '支付方式 0微信 1支付宝 2余额',
+  `payCode` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '支付返回号',
+  `prePrice` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '应付款,原价,未修改价格,打折前',
+  `actPrice` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '实际付款,实价,修改后价格,打折后',
+  `userId` INT(11) NOT NULL DEFAULT '0' COMMENT '用户id',
+  `alipayId` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '支付宝用户id',
+  `merchantId` INT(11) NOT NULL DEFAULT '0' COMMENT '续费的商家',
+  `remark` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '备注',
+  `setId` SMALLINT(6) NOT NULL DEFAULT '0' COMMENT '套餐id',
+  `beforeDeadline` INT(11) NOT NULL DEFAULT '0' COMMENT '之前到期时间',
+  `deadline` INT(11) NOT NULL DEFAULT '0' COMMENT '续费后到期时间',
+  `status` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0 待付款 1已付款',
+  `addTime` INT(11) NOT NULL DEFAULT '0' COMMENT '添加时间,时间戳格式'
+) COMMENT='开通续费订单';
+
 2019.12.23
 ALTER TABLE `xhApply` ADD UNIQUE INDEX `mobile`(`mobile`);
 ALTER TABLE `xhRenew` ADD `orderSn` CHAR(30) NOT NULL DEFAULT '' COMMENT '订单编号' AFTER `id`;
@@ -19,6 +39,9 @@ ALTER TABLE `xhWxOpenAdmin` DROP COLUMN `createTime`;
 ALTER TABLE `xhWxOpenAdmin` DROP COLUMN `updateTime`;
 ALTER TABLE `xhWxOpenAdmin` ADD `addTime` INT NOT NULL DEFAULT 0 COMMENT '添加时间' AFTER `status`;
 ALTER TABLE `xhWxOpenAdmin` MODIFY `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态 0冻结 1正常';
+ALTER TABLE `xhRenew` DROP COLUMN `payStyle`;
+ALTER TABLE `xhRenew` MODIFY `merchantId` INT NOT NULL DEFAULT 0 COMMENT '续费的商家';
+ALTER TABLE xhRenew MODIFY `payWay` TINYINT NOT NULL DEFAULT 0 COMMENT '支付方式 0微信 1支付宝 2余额';
 
 2019.12.21 10:27 平台零售业资产
 ALTER TABLE xhMerchantAsset DROP `totalWeixinFans`;