Package.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\api\controller\plus\package;
  3. use app\api\controller\Controller;
  4. use app\api\model\plus\giftpackage\GiftPackage as GiftPackageModel;
  5. use app\api\model\plus\giftpackage\Order as OrderModel;
  6. use app\api\service\pay\PayService;
  7. use app\common\enum\order\OrderTypeEnum;
  8. /**
  9. * 礼包购控制器
  10. */
  11. class Package extends Controller
  12. {
  13. /**
  14. * 获取数据
  15. */
  16. public function index($package_id)
  17. {
  18. // 用户信息
  19. $user = $this->getUser(false);
  20. $params = $this->request->param();
  21. $model = new GiftPackageModel();
  22. $data = $model->getGiftPackage($package_id,$params,$user);
  23. if (!$data) {
  24. return $this->renderError($model->getError() ?: '活动不存在');
  25. }
  26. return $this->renderSuccess('', compact('data'));
  27. }
  28. /**
  29. * 礼包购
  30. */
  31. public function buy($package_id)
  32. {
  33. // 用户信息
  34. $user = $this->getUser();
  35. $params = $this->request->param();
  36. if($this->request->isGet()){
  37. $model = new GiftPackageModel();
  38. $data = $model->checkGiftPackage($package_id,$params,$user);
  39. // 是否开启支付宝支付
  40. $show_alipay = PayService::isAlipayOpen($params['pay_source'], $user['app_id']);
  41. if($data){
  42. return $this->renderSuccess('', compact('data', 'show_alipay'));
  43. }else{
  44. return $this->renderError($model->getError() ?: '购买失败');
  45. }
  46. }
  47. // 生成礼品订单
  48. $model = new OrderModel;
  49. // 创建订单
  50. if (!$model->createOrder($user, $package_id, $params)) {
  51. return $this->renderError($model->getError() ?: '订单创建失败');
  52. }
  53. // 构建支付请求
  54. $payment = OrderModel::onOrderPayment($user, $model, $params['pay_type'], $params['pay_source']);
  55. // 返回结算信息
  56. return $this->renderSuccess(['success' => '支付成功', 'error' => '订单未支付'], [
  57. 'order_id' => $model['order_id'], // 订单id
  58. 'pay_type' => $params['pay_type'], // 支付方式,仅支持微信
  59. 'payment' => $payment, // 微信支付参数
  60. 'order_type' => OrderTypeEnum::GIFT, //订单类型
  61. ]);
  62. }
  63. }