| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace app\api\complex;
- use think\Request;
- /**
- * 银狐
- */
- class Yinhu implements ComplexInterface
- {
- private $channel = 'yinhu';
- // ## 渠道校验
- public function getSpecialParam($data, $polyChannelGame = [])
- {
- // 参数:extparam = token
- if (!isset($data['extparam'])) {
- return ['code' => -610, 'msg' => '对接参数有误', 'data' => []];
- }
- try {
- $res = getHttpPost('https://api.yinhushouyou.com/api/Game/user_login', ['token' => $data['extparam']]);
- $res = json_decode($res, true);
- if ($res['code'] == 1) {
- // 互通游戏必要
- return $res['data']['uid'];
- }
- } catch (\Exception $e) {
- return ['code' => -630, 'msg' => '渠道登录效验处理失败:'.$e->getMessage(), 'data' => []];
- }
- return ['code' => -600, 'msg' => '渠道登录效验失败', 'data' => []];
- }
- // ## 登陆效验
- public function checkLogin($data, $polyChannelGame = [])
- {
- return ['user_id' => $data['user_id']];
- }
- /**
- * ## 回调 - 效验
- * attach = 需要客户端传递祈盟订单号
- *
- * @param $data
- * @param $polyChannelGame
- *
- * @return array|true
- */
- public function paySign($data, $polyChannelGame = [])
- {
- $getParamKeys = ['cporderid', 'orderid', 'appid', 'uid', 'time', 'extinfo', 'amount', 'serverid', 'charid', 'sign'];
- $param = Request::instance()->only($getParamKeys);
- if (hasAllKeys($param, $getParamKeys)) {
- return false;
- }
- if (empty($param['cporderid']) || empty($param['orderid'])|| empty($param['sign'])) {
- return ['code' => -710, 'msg' => '对接参数异常', 'data' => []];
- }
- if (empty($polyChannelGame['param'])) {
- return ['code' => -720, 'msg' => '渠道缺少参数配置', 'data' => []];
- }
- if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
- return ['code' => -721, 'msg' => '渠道参数配置有误!', 'data' => []];
- }
- $sign = $param['sign'];
- unset($param['sign']);
- ksort($param);
- $signstr = http_build_query($param); //组成字符串拼接到游戏方回调地址上
- $handleSign = md5($signstr.$channelConfig['pay_key']); //加密结果为 7aa30240753d89e85d145dd459687c2a
- if ($sign == $handleSign) {
- return true;
- }
- return ['code' => -700, 'msg' => '回调处理异常!', 'data' => []];
- }
- // ## 回调 - 下单参数获取
- public function getData($data)
- {
- if (!isset($data['cporderid']) || !isset($data['amount']) || !isset($data['orderid'])) {
- return false;
- }
- return [
- 'orderid' => $data['cporderid'], // 我方聚合订单
- 'amount' => $data['amount'], // 充值金额(单位:元)
- 'sub_orderid' => $data['orderid'], // 渠道订单
- ];
- }
- // ## 回调 - 成功返回
- public function getSuccess($msg = '')
- {
- echo "success";
- exit();
- }
- // ## 回调 - 失败返回
- public function getFail($msg = '')
- {
- log_message('getFail: '.$msg, 'error', LOG_PATH."complexPaylog/{$this->channel}/");
- echo "fail:". $msg;
- exit();
- }
- }
|