| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- /**
- * 金币套餐控制器.
- * @author zhangjunbao <junbaoz1314@gmail.com>
- * @date 2020-01-29 10:13:09
- */
- declare(strict_types=1);
- namespace Modules\Api\Controllers;
- use App\Repositories\CoinsRepository;
- use App\Repositories\Service\PaymentService;
- use App\Repositories\UserRepository;
- use Hyperf\Validation\Contract\ValidatorFactoryInterface;
- class CoinsController extends BaseController
- {
- /**
- * 金币套餐页面接口
- * @param CoinsRepository $coinsRepository
- * @return mixed
- */
- public function lists(CoinsRepository $coinsRepository)
- {
- $userInfo = make(UserRepository::class)->getUserInfoFromCache($this->getUserId());
- $result = $coinsRepository->getUserCoinsPackageData($userInfo['device_type']);
- return json_success($result);
- }
- /**
- * 购买金币套餐
- * @param CoinsRepository $coinsRepository
- * @return mixed
- */
- public function buycoins(CoinsRepository $coinsRepository)
- {
- $inputData = $this->getJsonData();
- $rules = [
- 'coin_id' => 'required|integer',
- 'pay_id' => 'required|integer',
- 'pay_type' => 'integer',
- ];
- $validator = make(ValidatorFactoryInterface::class)->make($inputData, $rules);
- if ($validator->fails()) {
- // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
- return json_fail($validator->errors()->first());
- }
- $inputData['user_id'] = $this->getUserId();
- $order = $coinsRepository->createCoinsOrder($inputData);
- if ($order) {
- //去生成支付链接
- $order['order_type'] = 2;
- $payLink = make(PaymentService::class)->getGateway($order, $inputData['pay_id']);
- if ($payLink) {
- $data = array(
- 'jump'=>'y',
- 'link'=>checkPayUrl($payLink),
- );
- return json_success($data);
- }
- }
- return json_fail('亲,请重试');
- }
- }
|