123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- /**
- * Order.php UTF-8
- * 订单事件
- *
- * @date : 2018/5/30 16:52
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\controller\queue;
- use huo\controller\member\MemCache;
- use huo\controller\pay\SdkOrderCache;
- use huo\controller\request\Channel;
- use huo\controller\request\Device;
- use huo\controller\request\Game;
- use huo\controller\request\Mem as MemRq;
- use huo\controller\request\Order as OrderRq;
- use huo\controller\request\Role as RoleRq;
- use huolib\queue\constant\EventConst;
- class Order extends SdkQueue {
- /**
- * 玩家充值下单
- * 玩家下单时调用
- * http://doc.1tsdk.com/138?page_id=3387
- *
- * @param Device $device_rq
- * @param Game $game_rq
- * @param Channel $agent_rq
- * @param MemRq $mem_rq
- * @param RoleRq $role_rq
- * @param OrderRq $order_rq
- *
- * @return array
- */
- public function create(
- Device $device_rq,
- Game $game_rq,
- Channel $agent_rq,
- MemRq $mem_rq,
- RoleRq $role_rq,
- OrderRq $order_rq
- ) {
- $this->param['event'] = EventConst::EVENT_ORDER_CREATE;
- $this->setParamDevice($device_rq);
- $this->setParamGame($game_rq);
- $this->setParamChannel($agent_rq);
- $this->setParamRole($role_rq);
- $this->setParamMem($mem_rq);
- $this->setParamOrder($order_rq);
- return $this->pushQueue();
- }
- /**
- * 充值成功
- * 记录玩家充值行为成功的日志。游戏服务端在收到第三方支付端返回的充值结果<成功或失败>,
- * 同步虚拟币到客户端,应区分该虚拟币是由充值成功获得的,在此处进行埋点。
- * http://doc.1tsdk.com/138?page_id=3388
- *
- * @param Device $device_rq
- * @param Game $game_rq
- * @param Channel $agent_rq
- * @param MemRq $mem_rq
- * @param RoleRq $role_rq
- * @param OrderRq $order_rq
- *
- * @return array
- */
- public function success(
- Device $device_rq,
- Game $game_rq,
- Channel $agent_rq,
- MemRq $mem_rq,
- RoleRq $role_rq,
- OrderRq $order_rq
- ) {
- $this->param['event'] = EventConst::EVENT_ORDER_SUCCESS;
- $this->setParamDevice($device_rq);
- $this->setParamGame($game_rq);
- $this->setParamChannel($agent_rq);
- $this->setParamRole($role_rq);
- $this->setParamMem($mem_rq);
- $this->setParamOrder($order_rq);
- $this->param['ts'] = $order_rq->getPayTime();
- return $this->pushQueue();
- }
- /**
- * 通过订单设置异步处理
- *
- * @param string $order_id
- *
- * @return array|mixed
- */
- public function fromSdkOrder($order_id = '') {
- $_soc_class = SdkOrderCache::ins();
- $_order_data = $_soc_class->getInfoByOrderId($order_id);
- if (empty($_order_data) || empty($_order_data['payext'])) {
- return $this->retErrMsg();
- }
- $_mem_id = $_order_data['mem_id'];
- $_mem_data = MemCache::ins()->getInfoById($_mem_id);
- $_me_data = MemCache::ins()->getMeInfoById($_mem_id);
- $this->setAppId($_order_data['app_id']);
- $_device_rq = new Device();
- $_game_rq = new Game();
- $_agent_rq = new Channel();
- $_mem_rq = new MemRq();
- $_role_rq = new RoleRq();
- $_order_rq = new OrderRq();
- /* 渠道 */
- $_agent_rq->setCh($_mem_data['agent_id']);
- /* 玩家 */
- $_mem_rq->setMemId($_mem_id);
- $_mem_rq->setMgMemId($_order_data['mg_mem_id']);
- $_mem_rq->setRegTime($_mem_data['create_time']);
- $_mem_rq->setLoginTime($_order_data['pay_time']);
- /* 角色 */
- $_role_rq->setServerId(get_val($_order_data['payext'], 'server_id', ''));
- $_role_rq->setServerName(get_val($_order_data['payext'], 'server_name', ''));
- $_role_rq->setRoleId(get_val($_order_data['payext'], 'role_id', ''));
- $_role_rq->setRoleName(get_val($_order_data['payext'], 'role_name', ''));
- $_role_rq->setRoleLevel(get_val($_order_data['payext'], 'role_level', ''));
- /* 订单 */
- $_order_rq->setDataFromOrder($_order_data);
- /* 设备 */
- $_device_rq->setIp(get_val($_order_data['payext'], 'ip', ''));
- $_device_rq->setDeviceId(get_val($_order_data['payext'], 'device_id', ''));
- return $this->success($_device_rq, $_game_rq, $_agent_rq, $_mem_rq, $_role_rq, $_order_rq);
- }
- }
|