12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- /**
- * 建材商会员
- */
- namespace api\modules\v1\controllers;
- use common\library\Pay\WechatPay;
- use common\models\OpenMember;
- use common\models\UserMater;
- use yii\rest\ActiveController;
- use common\library\Apireturn;
- use yii\helpers\ArrayHelper;
- use yii\filters\auth\QueryParamAuth;
- use yii;
- class MaterMemberController extends ActiveController
- {
- public $modelClass = 'common\models';
- public function behaviors()
- {
- return ArrayHelper::merge(parent::behaviors(), [
- 'authenticator' => [
- 'class' => QueryParamAuth::className(),
- 'tokenParam' => "token",//access-token修改为token
- 'optional' => [//不需要认证方法名 array
- ],
- ]
- ]);
- }
- /**
- * 是否会员
- * @return array
- */
- public function actionIsmember()
- {
- $model = UserMater::find()->where(['uid'=>Yii::$app->user->id])->select('member')->one();
- if(empty($model))
- return Apireturn::sent(1,'success',200,array('member'=>0,'price'=>Yii::$app->params['memberPrice']));
- else
- return Apireturn::sent(1,'success',200,array('member'=>$model->member,'price'=>Yii::$app->params['memberPrice']));
- }
- /**
- * 升级会员
- */
- public function actionUpgrade()
- {
- $openid = Yii::$app->request->post('openid');
- if(empty($openid))
- return Apireturn::sent(0,'未授权',200);
- $model = UserMater::find()->where(['uid'=>Yii::$app->user->id])->select('member')->one();
- if(empty($model))
- return Apireturn::sent(0,'操作失败,请联系管理员',200);
- if($model->member == UserMater::MEMBER_YES)
- return Apireturn::sent(0,'您已经是会员',200);
- $model = new OpenMember();
- $model->uid = Yii::$app->user->id;
- $model->out_trade_no = $model->outTradeNo();
- $model->openid = $openid;
- $model->type = OpenMember::TYPE_MATER;
- $model->amount = Yii::$app->params['memberPrice'];
- $model->c_time = time();
- $model->u_time = time();
- $model->status = OpenMember::STATUS_NO;
- if($model->save())
- {
- $pay = new WechatPay();
- $result = $pay->pay($model);
- if($result['return_code']!='SUCCESS')
- return Apireturn::sent(0,$result['return_msg'],200);
- if($result['result_code']!="SUCCESS")
- return Apireturn::sent(0,"获取支付失败",200);
- $data['appId'] =$result['appid'];
- $data['timeStamp'] =time();
- $data['nonceStr'] =$result['nonce_str'];
- $data['package'] ="prepay_id=".$result['prepay_id'];
- $data['signType'] ="MD5";
- $data['paySign'] = WechatPay::getSign($data);
- return Apireturn::sent(1,'success',200,$data);
- }else{
- return Apireturn::sent(0,'生成支付失败',200);
- }
- }
- }
|