| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace app\api\complex;
- /**
- * 游戏友 - v2.5.0
- */
- class Youxiyou implements ComplexInterface
- {
- private $channel = 'youxiyou';
- /**
- * ## 登陆 - 校验
- *
- * @param $data
- * @param $polyChannelGame
- *
- * @return false
- */
- public function getSpecialParam($data, $polyChannelGame = [])
- {
- // 参数:user_id = user_id, channel_token = token
- if (!isset($data['user_id']) || !isset($data['channel_token'])) {
- return false;
- }
- if (empty($polyChannelGame['param'])) {
- return false;
- }
- if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
- return false;
- }
- $param = [
- 'user_id' => $data['user_id'],
- 'token' => $data['channel_token'],
- ];
- $res = getHttpPost('https://sdk-api.youxiyou.cn/login_notify/login_verify', $param);
- $res = json_decode($res, true);
- if ($res['code'] == 200) {
- return $data['user_id'];
- } else {
- return false;
- }
- }
- // ## 登陆 - 登陆
- public function checkLogin($data, $polyChannelGame = [])
- {
- return true;
- }
- // ## 下单 - 客户端需要的参数
- public function getOrder($data)
- {
- return ['code' => 200, 'msg' => 'success', 'param' => []];
- }
- // ## 回调 - 效验
- public function paySign($data, $polyChannelGame = [])
- {
- $handleKeys = ['game_order', 'out_trade_no', 'pay_extra', 'pay_status', 'price', 'user_id', 'sign'];
- if (array_diff($handleKeys, array_keys($data))) {
- return false;
- }
- $param = [
- 'game_order' => $data['game_order'], // sdk下单时,游戏方透传信息(CP订单号)
- 'out_trade_no' => $data['out_trade_no'], // 平台方订单
- 'pay_extra' => $data['pay_extra'], // 透传参数
- 'pay_status' => $data['pay_status'], // 支付结果 固定值1
- 'price' => $data['price'], // 支付金额(单位:元)
- 'user_id' => $data['user_id'], // 用户唯一标识,游戏方需验证是否和发起订单一致
- 'sign' => $data['sign'],
- ];
- // $getValues = array_values($param);
- // if (empty(array_diff(['game_order', 'out_trade_no', 'pay_extra', 'pay_status', 'price', 'user_id', 'sign'], $getValues))) {
- // return false;
- // }
- if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
- return false;
- }
- $hadleSign = md5($param['game_order'].$param['out_trade_no'].$param['pay_extra'].$param['pay_status'].$param['price'].$param['user_id'].$channelConfig['game_key']);
- if ($param['sign'] == $hadleSign) {
- return true;
- }
- return false;
- }
- // ## 回调 - 下单参数获取
- public function getData($data)
- {
- if (!isset($data['game_order']) || !isset($data['price']) || !isset($data['out_trade_no'])) {
- return false;
- }
- return [
- 'orderid' => $data['game_order'], // 我方聚合订单
- 'amount' => $data['price'], // 充值金额(单位:元)
- 'sub_orderid' => $data['out_trade_no'], // 渠道订单
- ];
- }
- // ## 回调 - 成功返回
- public function getSuccess($msg = '')
- {
- echo "success";
- exit();
- }
- // ## 回调 - 失败返回
- public function getFail($msg = '')
- {
- echo "failure:" . $msg;
- exit();
- }
- }
|