MaterMemberController.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /**
  3. * 建材商会员
  4. */
  5. namespace api\modules\v1\controllers;
  6. use common\library\Pay\WechatPay;
  7. use common\models\OpenMember;
  8. use common\models\UserMater;
  9. use yii\rest\ActiveController;
  10. use common\library\Apireturn;
  11. use yii\helpers\ArrayHelper;
  12. use yii\filters\auth\QueryParamAuth;
  13. use yii;
  14. class MaterMemberController extends ActiveController
  15. {
  16. public $modelClass = 'common\models';
  17. public function behaviors()
  18. {
  19. return ArrayHelper::merge(parent::behaviors(), [
  20. 'authenticator' => [
  21. 'class' => QueryParamAuth::className(),
  22. 'tokenParam' => "token",//access-token修改为token
  23. 'optional' => [//不需要认证方法名 array
  24. ],
  25. ]
  26. ]);
  27. }
  28. /**
  29. * 是否会员
  30. * @return array
  31. */
  32. public function actionIsmember()
  33. {
  34. $model = UserMater::find()->where(['uid'=>Yii::$app->user->id])->select('member')->one();
  35. if(empty($model))
  36. return Apireturn::sent(1,'success',200,array('member'=>0,'price'=>Yii::$app->params['memberPrice']));
  37. else
  38. return Apireturn::sent(1,'success',200,array('member'=>$model->member,'price'=>Yii::$app->params['memberPrice']));
  39. }
  40. /**
  41. * 升级会员
  42. */
  43. public function actionUpgrade()
  44. {
  45. $openid = Yii::$app->request->post('openid');
  46. if(empty($openid))
  47. return Apireturn::sent(0,'未授权',200);
  48. $model = UserMater::find()->where(['uid'=>Yii::$app->user->id])->select('member')->one();
  49. if(empty($model))
  50. return Apireturn::sent(0,'操作失败,请联系管理员',200);
  51. if($model->member == UserMater::MEMBER_YES)
  52. return Apireturn::sent(0,'您已经是会员',200);
  53. $model = new OpenMember();
  54. $model->uid = Yii::$app->user->id;
  55. $model->out_trade_no = $model->outTradeNo();
  56. $model->openid = $openid;
  57. $model->type = OpenMember::TYPE_MATER;
  58. $model->amount = Yii::$app->params['memberPrice'];
  59. $model->c_time = time();
  60. $model->u_time = time();
  61. $model->status = OpenMember::STATUS_NO;
  62. if($model->save())
  63. {
  64. $pay = new WechatPay();
  65. $result = $pay->pay($model);
  66. if($result['return_code']!='SUCCESS')
  67. return Apireturn::sent(0,$result['return_msg'],200);
  68. if($result['result_code']!="SUCCESS")
  69. return Apireturn::sent(0,"获取支付失败",200);
  70. $data['appId'] =$result['appid'];
  71. $data['timeStamp'] =time();
  72. $data['nonceStr'] =$result['nonce_str'];
  73. $data['package'] ="prepay_id=".$result['prepay_id'];
  74. $data['signType'] ="MD5";
  75. $data['paySign'] = WechatPay::getSign($data);
  76. return Apireturn::sent(1,'success',200,$data);
  77. }else{
  78. return Apireturn::sent(0,'生成支付失败',200);
  79. }
  80. }
  81. }