1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
 
namespace app\api\controller\user;
 
use app\api\controller\Controller;
use app\api\model\order\Order as OrderModel;
use app\api\model\user\BalanceOrder as BalanceOrderModel;
use app\common\enum\order\OrderPayTypeEnum;
use app\common\enum\order\OrderTypeEnum;
use app\common\model\user\Sms as SmsModel;
use app\api\model\user\UserWeb as UserModel;
use app\api\model\plus\live\PlanOrder as PlanOrderModel;
use app\api\model\supplier\DepositOrder as DepositOrderModel;
use app\api\model\order\OrderAdvance as OrderAdvanceModel;
 
/**
 * h5 web用户管理
 */
class Userweb extends Controller
{
 
    /**
     * 用户自动登录,默认微信小程序
     */
    public function login()
    {
        $model = new UserModel;
        $user_id = $model->login($this->request->post());
        if($user_id == 0){
            return $this->renderError($model->getError() ?:'登录失败');
        }
        return $this->renderSuccess('',[
            'user_id' => $user_id,
            'token' => $model->getToken()
        ]);
    }
 
    /**
     * 短信登录
     */
    public function sendCode($mobile)
    {
        $model = new SmsModel();
        if($model->send($mobile, 'login')){
            return $this->renderSuccess();
        }
        return $this->renderError($model->getError() ?:'发送失败');
    }
 
    public function bindMobile()
    {
        $model = new UserModel;
        if($model->bindMobile($this->getUser(), $this->request->post())){
            return $this->renderSuccess('绑定成功');
        }
        return $this->renderError($model->getError() ?:'绑定失败');
    }
 
    public function payH5($order_id, $order_type = OrderTypeEnum::MASTER)
    {
        $user = $this->getUser();
        $model = null;
        $payment = null;
        $return_Url = '';
        if ($order_type == OrderTypeEnum::MASTER) {
            $params = $this->postData();
            $params['payType'] = OrderPayTypeEnum::WECHAT;
            // 构建支付请求
            $payInfo = (new OrderModel)->OrderPay($user, $params);
            $payment = $payInfo['payment'];
            $model = $payInfo;
            $return_Url = urlencode(base_url() . "h5/pages/order/myorder");
        } else if ($order_type == OrderTypeEnum::BALANCE) {
            // 订单详情
            $model = BalanceOrderModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = BalanceOrderModel::onOrderPayment($user, $model, OrderPayTypeEnum::WECHAT, 'payH5');
            $return_Url = urlencode(base_url() . "h5/pages/user/my-wallet/my-wallet");
        } else if ($order_type == OrderTypeEnum::PLAN) {
            // 订单详情
            $model = PlanOrderModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = PlanOrderModel::onOrderPayment($user, $model, OrderPayTypeEnum::WECHAT, 'payH5');
            $return_Url = urlencode(base_url() . "h5/pages/Live/live/live");
        } else if ($order_type == OrderTypeEnum::CASH) {
            // 订单详情
            $model = DepositOrderModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = DepositOrderModel::onOrderPayment($user, $model, OrderPayTypeEnum::WECHAT, 'payH5');
            $return_Url = urlencode(base_url() . "h5/pages/order/deposit-pay");
        } else if ($order_type == OrderTypeEnum::FRONT) {
            // 订单详情
            $model = OrderAdvanceModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = OrderAdvanceModel::onOrderPayment($user, $model, OrderPayTypeEnum::WECHAT, 'payH5');
            $return_Url = urlencode(base_url() . "h5/pages/order/myorder");
        }
 
        return $this->renderSuccess('',[
            'order' => $model,  // 订单详情
            'mweb_url' => $payment['mweb_url'],
            'return_Url' => $return_Url
        ]);
    }
 
    /**
     * h5下支付宝支付
     */
    public function alipayH5($order_id, $order_type = OrderTypeEnum::MASTER, $pay_source = 'payH5')
    {
        $user = $this->getUser();
        $payment = [];
        if ($order_type == OrderTypeEnum::MASTER) {
            $params = $this->postData();
            $params['payType'] = OrderPayTypeEnum::ALIPAY;
            // 构建支付请求
            $payInfo = (new OrderModel)->OrderPay($user, $params);
            $payment = $payInfo['payment'];
        } else if ($order_type == OrderTypeEnum::BALANCE) {
            // 订单详情
            $model = BalanceOrderModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = BalanceOrderModel::onOrderPayment($user, $model, OrderPayTypeEnum::ALIPAY, $pay_source);
        } else if ($order_type == OrderTypeEnum::PLAN) {
            // 订单详情
            $model = PlanOrderModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = PlanOrderModel::onOrderPayment($user, $model, OrderPayTypeEnum::ALIPAY, $pay_source);
        } else if ($order_type == OrderTypeEnum::CASH) {
            // 订单详情
            $model = DepositOrderModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = DepositOrderModel::onOrderPayment($user, $model, OrderPayTypeEnum::ALIPAY, $pay_source);
        } else if ($order_type == OrderTypeEnum::FRONT) {
            // 订单详情
            $model = OrderAdvanceModel::getUserOrderDetail($order_id, $user['user_id']);
            // 构建支付请求
            $payment = OrderAdvanceModel::onOrderPayment($user, $model, OrderPayTypeEnum::ALIPAY, $pay_source);
        }
        return $this->renderSuccess('',[
            'payment' => $payment,
        ]);
    }
}