| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- namespace app\api\complex;
- /**
- * 当乐
- */
- class Dangle implements ComplexInterface
- {
- private $channel = 'dangle';
- /**
- * ## 登陆 - 校验
- *
- * @param $data
- * @param $polyChannelGame
- *
- * @return false
- */
- public function getSpecialParam($data, $polyChannelGame = [])
- {
- // 参数:user_id = umid, channel_token = access_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 = [
- 'appid' => $channelConfig['app_id'],
- 'token' => $data['channel_token'],
- 'umid' => $data['user_id'],
- ];
- $param['sig'] = md5(sprintf("%s|%s|%s|%s", $param['appid'], $channelConfig['app_key'], $param['token'], $param['umid']));
- $res = getHttpGet('https://ctmaster.d.cn/api/cp/checkToken', $param);
- $res = json_decode($res, true);
- if ($res['msg_code'] == 2000) {
- return $data['user_id'];
- } else {
- return false;
- }
- }
- // ## 登陆 - 登陆
- public function checkLogin($data, $polyChannelGame = [])
- {
- return true;
- }
- // ## 下单 - 客户端需要的参数
- public function getOrder($data)
- {
- if (!$channelConfig = json_decode($data['channel_info']['param'], true)) {
- return false;
- }
- $param = [
- "cpOrder" => $data['pay_info']['orderid'],
- "ext" => "ext",
- "money" => number_format($data['amount'], 2),
- "roleId" => $data['roleid'],
- "umid" => $data['member_info']['complex_id'],
- ];
- $sign = md5("{$param['cpOrder']}|{$param['ext']}|{$param['money']}|{$param['roleId']}|{$param['umid']}|{$channelConfig['pay_key']}");
- return ['code' => 200, 'msg' => 'success', 'param' => ['sign' => $sign]];
- }
- // ## 回调 - 效验
- public function paySign($data, $polyChannelGame = [])
- {
- $param = [
- 'result' => $data['result'], // 商户ID
- 'money' => $data['money'], // 游戏ID
- 'order' => $data['order'], // 游戏服ID
- 'mid' => $data['mid'], // 玩家id
- 'time' => $data['time'], // 时间戳(Unix time)
- 'ext' => $data['ext'], // orderid
- 'cpOrder' => $data['cpOrder'], // 充值金额(单位元)
- 'signature' => $data['signature'], // 自定义参数(自定义参数)
- ];
- $getValues = array_values($param);
- if (empty(array_diff(['result', 'money', 'order', 'mid', 'time', 'ext', 'cpOrder', 'signature'], $getValues))) {
- return false;
- }
- if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
- return false;
- }
- $hadleSign = md5("order={$param['order']}&money={$param['money']}&mid={$param['mid']}&time={$param['time']}&result={$param['result']}&cpOrder={$param['cpOrder']}&ext={$param['ext']}&key={$channelConfig['pay_key']}");
- if ($param['signature'] == $hadleSign) {
- return true;
- }
- return false;
- }
- // ## 回调 - 下单参数获取
- public function getData($data)
- {
- if (!isset($data['cpOrder']) || !isset($data['money']) || !isset($data['order'])) {
- return false;
- }
- return [
- 'orderid' => $data['cpOrder'], // 我方聚合订单
- 'amount' => $data['money'], // 充值金额(单位:元)
- 'sub_orderid' => $data['order'], // 渠道订单
- ];
- }
- // ## 回调 - 成功返回
- public function getSuccess($msg = '')
- {
- echo "success";
- exit();
- }
- // ## 回调 - 失败返回
- public function getFail($msg = '')
- {
- echo "failure";
- exit();
- }
- }
|