| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace app\api\complex;
- use ComplexThree\JuLe\joloRsa;
- /**
- * 信游
- */
- class Xinyou implements ComplexInterface
- {
- private $channel = 'xinyou';
- /**
- * ## 登陆 - 校验
- *
- * @param $data
- * @param $polyChannelGame
- *
- * @return false
- */
- public function getSpecialParam($data, $polyChannelGame = [])
- {
- // 参数:user_id = uid(客户端的uid)
- return $data['user_id'];
- }
- // ## 登陆 - 登陆
- public function checkLogin($data, $polyChannelGame = [])
- {
- return true;
- }
- // ## 下单 - 客户端需要的参数(客户端自己做了,这块暂时不用)
- public function getOrder($data)
- {
- return ['code' => 200, 'msg' => 'success', 'param' => []];
- }
- // ## 回调 - 效验
- public function paySign($data, $polyChannelGame = [])
- {
- $param = [
- 'pid' => $data['pid'], // 商户ID
- 'gid' => $data['gid'], // 游戏ID
- 'sid' => $data['sid'], // 游戏服ID
- 'uid' => $data['uid'], // 玩家id
- 'time' => $data['time'], // 时间戳(Unix time)
- 'orderid' => $data['orderid'], // orderid
- 'money' => $data['money'], // 充值金额(单位元)
- 'type' => $data['type'], // 请求类型(固定值:pay)
- 'other' => $data['other'], // 自定义参数(自定义参数)
- ];
- $getValues = array_values($param);
- if (empty(array_diff(['pid', 'gid', 'sid', 'uid', 'time', 'orderid', 'money'], $getValues))) {
- return false;
- }
- if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
- return false;
- }
- $sign = $data['sign'];
- $hadleSign = $this->paySignHandle($param, $channelConfig['pay_key']);
- if ($sign == $hadleSign) {
- return true;
- }
- return false;
- }
- // ## 回调 - 下单参数获取
- public function getData($data)
- {
- if (!isset($data['other']) || !isset($data['money']) || !isset($data['orderid'])) {
- return false;
- }
- return [
- 'orderid' => $data['other'], // 我方聚合订单
- 'amount' => $data['money'], // 充值金额(单位:元)
- 'sub_orderid' => $data['orderid'], // 渠道订单
- ];
- }
- // ## 回调 - 成功返回
- public function getSuccess($msg = '')
- {
- echo json_encode(["code" => 1, "msg" => "成功"], JSON_UNESCAPED_UNICODE);
- exit();
- }
- // ## 回调 - 失败返回
- public function getFail($msg = '')
- {
- echo json_encode(["code" => 5, "msg" => "签名错误"], JSON_UNESCAPED_UNICODE);
- exit();
- }
- // 回调签名判断
- private function paySignHandle($param, $pay_key)
- {
- // MD5(pid#gid#sid#uid#time#orderid #money#pkey)
- return md5($param['pid'] . '#' . $param['gid'] . '#' . $param['sid'] . '#' . $param['uid'] . '#' . $param['time'] . '#' . $param['orderid'] . '#' . $param['money'] . '#' . $pay_key);
- }
- }
|