Quchen.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace app\api\complex;
  3. use think\Exception;
  4. /**
  5. * 趣辰
  6. */
  7. class Quchen implements ComplexInterface
  8. {
  9. private $channel = 'quchen';
  10. /**
  11. * ## 登陆 - 校验
  12. *
  13. * @param $data
  14. * @param $polyChannelGame
  15. *
  16. * @return false
  17. */
  18. public function getSpecialParam($data, $polyChannelGame = [])
  19. {
  20. return $data['user_id'];
  21. }
  22. // ## 登陆 - 登陆
  23. public function checkLogin($data, $polyChannelGame = [])
  24. {
  25. // 参数:user_id = userID, channel_token = token
  26. if (!isset($data['user_id']) || !isset($data['channel_token'])) {
  27. return false;
  28. }
  29. if (empty($polyChannelGame['param'])) {
  30. return false;
  31. }
  32. if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
  33. return false;
  34. }
  35. $param = [
  36. 'userID' => $data['user_id'],
  37. 'token' => $data['channel_token'],
  38. ];
  39. $res = getHttpPost('https://unionapi.zjqca.com/verifyUser', $param);
  40. $res = json_decode($res, true);
  41. if ($res['status'] == 200) {
  42. return ['user_id' => $data['user_id']];
  43. } else {
  44. return false;
  45. }
  46. }
  47. // ## 回调 - 效验
  48. public function paySign($data, $polyChannelGame = [])
  49. {
  50. $param = [
  51. 'orderID' => $data['orderID'], // 唯一订单号
  52. 'gameOrderID' => $data['gameOrderID'], // 游戏方的订单号
  53. 'userID' => $data['userID'], // 玩家ID
  54. 'username' => $data['username'], // 玩家账号
  55. 'serverName' => $data['serverName'], // 游戏服务器名称
  56. 'money' => $data['money'], // 订单金额(单位分)
  57. 'time' => $data['time'], // 时间戳(11位到秒)
  58. 'extension' => $data['extension'], // 穿透参数
  59. 'sign' => $data['sign']
  60. ];
  61. if (!$channelConfig = json_decode($polyChannelGame['param'], true)) {
  62. return false;
  63. }
  64. ksort($param);
  65. $string = "";
  66. foreach ($param as $k => $v) {
  67. if($k == 'sign'){
  68. continue;
  69. }
  70. if ($string) {
  71. $string .= "&{$k}={$v}";
  72. } else {
  73. $string = "{$k}={$v}";
  74. }
  75. }
  76. $sign = $string."&".$channelConfig['appPayKey'];
  77. $md5Res = md5($sign);
  78. if ($param['sign'] == $md5Res) {
  79. return true;
  80. }
  81. return false;
  82. }
  83. // ## 发起下单
  84. public function getOrder($data)
  85. {
  86. return ['code' => 200, 'msg' => 'success', 'param' => ['notify_url' => $data['notify_url']]];
  87. }
  88. // ## 回调 - 下单参数获取
  89. public function getData($data)
  90. {
  91. if (!isset($data['gameOrderID']) || !isset($data['money']) || !isset($data['orderID'])) {
  92. return false;
  93. }
  94. return [
  95. 'orderid' => $data['gameOrderID'], // 我方聚合订单
  96. 'amount' => formatFenToYuan($data['money']),// 充值金额(单位:元)
  97. 'sub_orderid' => $data['orderID'], // 渠道订单
  98. ];
  99. }
  100. // ## 回调 - 成功返回
  101. public function getSuccess($msg = '')
  102. {
  103. echo "SUCCESS";
  104. exit();
  105. }
  106. // ## 回调 - 失败返回
  107. public function getFail($msg = '')
  108. {
  109. echo "FAIL";
  110. exit();
  111. }
  112. }