| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- namespace app\api\complex;
- /**
- * 乐岛联运安卓
- */
- class Ledao implements ComplexInterface
- {
- private $channel = 'ledao';
- /**
- * ## 登陆 - 校验
- *
- * @param $data
- * @param $polyChannelGame
- *
- * @return false
- */
- public function getSpecialParam($data, $polyChannelGame = [])
- {
- // 参数:user_id = userID, 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 = [
- 'userID' => $data['user_id'],
- 'token' => $data['channel_token'],
- ];
- $signStr = sprintf('userID=%stoken=%s%s', $param['userID'], $param['token'], $channelConfig['app_secret']);
- $param['sign'] = md5($signStr);
- $res = get_http_response('http://unionapi.ezjhy.com/user/verifyAccount', $param);
- $res = json_decode($res, true);
- if ($res['state'] == 1) {
- 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 = ['productID', 'orderID', 'userID', 'channelID', 'gameID', 'serverID', 'extension', 'roleID', 'currency', 'signType', 'sign'];
- if (array_diff($handleKeys, array_keys($data))) {
- return false;
- }
- $param = [
- 'productID' => $data['productID'],
- 'orderID' => $data['orderID'],
- 'userID' => $data['userID'],
- 'channelID' => $data['channelID'],
- 'gameID' => $data['gameID'],
- 'serverID' => $data['serverID'],
- 'money' => $data['money'],
- 'extension' => $data['extension'],
- 'roleID' => $data['roleID'],
- 'currency' => $data['currency'],
- 'signType' => $data['signType'],
- 'sign' => $data['sign'],
- ];
- if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
- return false;
- }
- $hadleSign = $this->signNotify($param, $channelConfig['app_secret']);
- if ($data['sign'] == $hadleSign) {
- return true;
- }
- return false;
- }
- // ## 回调处理相关参数
- public function getData($data)
- {
- if (!isset($data['extension']) || !isset($data['money']) || !isset($data['orderID'])) {
- return false;
- }
- return [
- 'orderid' => $data['extension'], // 我方聚合订单
- 'amount' => formatFenToYuan($data['money']), // 充值金额(单位:元)
- 'sub_orderid' => $data['orderID'], // 渠道订单
- ];
- }
- // ## 回调 - 成功返回
- public function getSuccess($msg = '')
- {
- echo 'SUCCESS';
- exit();
- }
- // ## 回调 - 失败返回
- public function getFail($msg = '')
- {
- echo 'FAIL';
- exit();
- }
- // 回调签名
- private function signNotify($param, $app_key)
- {
- $oldSign = $param['sign'];
- unset($param['sign']);
- unset($param['signType']);
- unset($param['orderTime']);
- unset($param['orderCompleteTime']);
- ksort($param);
- $string = '';
- foreach ($param as $k => $v) {
- $string .= $k . '=' . $v.'&';
- }
- $sign = $string . $app_key;
- $md5Res = md5($sign);
- trace('str=' . $sign . ' - sign: ' . $oldSign . ' - ' . $md5Res, 'Ledao@signNotify.result');
- return $md5Res;
- }
- }
|