123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- <?php
- /**
- * OrderController.php UTF-8
- * 订单处理
- *
- * @date : 2018/1/16 16:52
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace api\apple\controller\v8;
- use api\common\controller\AppleApiBaseController;
- use huo\controller\pay\Notify;
- use huo\controller\pay\PaySwitch;
- use huo\controller\pay\Sdk;
- use huo\model\order\PayAppleModel;
- use huolib\constant\GameConst;
- use huolib\constant\OrderConst;
- use huolib\status\OrderStatus;
- use think\Exception;
- class OrderController extends AppleApiBaseController {
- public function _initialize() {
- parent::_initialize();
- }
- /**
- * 游戏预下单
- * http://doc.1tsdk.com/138?page_id=2908
- * 【域名】/v8/sdk/preorder
- * 【域名】/v8/pay/preorder
- */
- public function preorder() {
- $this->checkLogin();
- $_game_rq = $this->setGameData();
- $_channel_rq = $this->setChannelData();
- $_device_rq = $this->setDeviceData();
- $_mem_rq = $this->setMemData();
- $_role_rq = $this->setRoleData();
- $_order_rq = $this->setOrderData();
- $_order = new Sdk();
- $_pay_check = OrderConst::PAY_SWITCH_NO;
- /* 判断支付切换 */
- $_from = $_device_rq->getFrom();
- if (GameConst::GAME_IOS_SWITCH == $_from) {
- $_pay_check = (new PaySwitch())->getPaySwitch(
- $_order_rq, $_role_rq, $_mem_rq, $_game_rq, $_channel_rq, $_device_rq
- );
- }
- $_preorder_rs = $_order->preorder($_order_rq, $_role_rq, $_mem_rq, $_game_rq, $_channel_rq, $_device_rq);
- if (OrderStatus::NO_ERROR != $_preorder_rs['code']) {
- $this->returnData($_preorder_rs);
- }
- $_order_id = $_preorder_rs['data']['order_id'];
- $_pay_token = $_order_rq->genPayToken($_order_id);
- $_rdata['order_id'] = $_order_id;
- $_rdata['pay_token'] = $_pay_token;
- $_rdata['check'] = $_pay_check;
- $_rdata['pay_url'] = ''; //TODO: chengbingling 2018/6/5 切换支付url
- /* 苹果下单 直接插入苹果订单表 */
- $_from = $_device_rq->getFrom();
- if (GameConst::GAME_IOS_SWITCH == $_from && OrderConst::PAY_SWITCH_NO == $_pay_check) {
- $_data['order_id'] = $_order_id;
- $_data['mem_id'] = $_mem_rq->getMemId();
- $_data['mg_mem_id'] = $_mem_rq->getMgMemId();
- $_data['apple_id'] = $_game_rq->getAppleId();
- $_data['product_id'] = $_order_rq->getProductId();
- $_data['idfv'] = $_device_rq->getMac();
- $_data['idfa'] = $_device_rq->getDeviceId();
- (new PayAppleModel())->addData($_data);
- }
- $this->success(lang('SUCCESS'), $_rdata);
- }
- /**
- * 支付页面数据
- * http://doc.1tsdk.com/138?page_id=2954
- * 【域名】/pay/info
- * 【域名】/v8/pay/info
- */
- public function getInfo() {
- $this->checkLogin();
- $_order_rq = $this->setOrderData();
- $_pay_token = get_val($this->rq_data, 'pay_token', '');
- $_rs = $_order_rq->checkPayToken($_pay_token);
- if (false == $_rs) {
- $_code = OrderStatus::TOKEN_ARGS_ERROR;
- $this->error(OrderStatus::getMsg($_code), [], $_code);
- }
- $_order_id = $_order_rq->getOrderId();
- $_rdata = (new Sdk())->getPayInfo($_order_id);
- $this->returnData($_rdata);
- }
- /**
- * 查询支付结果
- * http://doc.1tsdk.com/138?page_id=2909
- * 【域名】/v8/product/query
- */
- public function read() {
- try {
- $_order_rq = $this->setOrderData();
- $_order = new Sdk();
- $_rdata = $_order->getStatus($_order_rq->getOrderId());
- if (false == $_rdata) {
- $this->error('ERROR');
- }
- if (OrderConst::CP_STATUS_SUC != $_rdata['cp_status'] && OrderConst::PAY_STATUS_SUC == $_rdata['status']) {
- $_rs = (new Notify())->notify($_order_rq->getOrderId());
- if (OrderStatus::NO_ERROR == $_rs['code']) {
- $_rdata['status'] = OrderConst::PAY_STATUS_SUC;
- $_rdata['cp_status'] = OrderConst::CP_STATUS_SUC;
- }
- }
- $_rdata['order_id'] = $_order_rq->getOrderId();
- $this->success(lang('SUCCESS'), $_rdata);
- } catch (Exception $_e) {
- $this->error($_e->getMessage());
- }
- }
- }
|