Shenqi.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. namespace app\api\complex;
  3. /**
  4. * 神起渠道
  5. */
  6. class Shenqi implements ComplexInterface
  7. {
  8. private $channel = 'shenqi';
  9. // 登陆效验
  10. public function checkLogin($data, $polyChannelGame = [])
  11. {
  12. if(empty($data['channel_token'])){
  13. return false;
  14. }
  15. if (!$paramArr = json_decode($polyChannelGame['param'], true)) {
  16. return false;
  17. }
  18. $param = [
  19. 'appId' => $paramArr['app_id'],
  20. 'token' => $data['channel_token'],
  21. 'platformId' => $paramArr['platform_id'],
  22. ];
  23. $param['sign'] = $this->sign($param, $paramArr['server_key']);
  24. $result = get_http_response('https://game-api.62wy.com/api/Cp/VerifySession.do', $param);
  25. $res = json_decode($result, true);
  26. if ($res['state'] == 1) {
  27. return ['user_id' => $res['userId']];
  28. } else {
  29. return false;
  30. }
  31. }
  32. // 下单参数
  33. public function getData($data)
  34. {
  35. return [
  36. 'orderid' => $data['cpOrderId'], //我方聚合订单
  37. 'amount' => formatFenToYuan($data['money']), // 充值金额
  38. 'sub_orderid' => $data['orderId'],//渠道订单
  39. ];
  40. }
  41. // 回调效验
  42. public function paySign($data, $polyChannelGame = [])
  43. {
  44. if (!$paramArr = json_decode($polyChannelGame['param'], true)) {
  45. return false;
  46. }
  47. $newData = [
  48. 'appId' => $data['appId'],
  49. 'cpOrderId' => $data['cpOrderId'],
  50. 'extension' => $data['extension'],
  51. 'money' => $data['money'],
  52. 'orderId' => $data['orderId'],
  53. 'productId' => $data['productId'],
  54. 'sign' => $data['sign'],
  55. 'userId' => $data['userId'],
  56. 'userName' => $data['userName'],
  57. 'zoneId' => $data['zoneId'],
  58. ];
  59. $sign = $this->sign($newData, $paramArr['server_key']);
  60. if ($newData['sign'] == $sign) {
  61. return true;
  62. }
  63. return false;
  64. }
  65. // 签名
  66. public function sign($param, $key)
  67. {
  68. $newPatam = $param;
  69. ksort($newPatam);
  70. foreach ($newPatam as $k => $v) {
  71. if ($k == 'sign' || $v == '') {
  72. unset($newPatam[$k]);
  73. }
  74. }
  75. $signStr = http_build_query($newPatam);
  76. $signStr = urldecode($signStr) . $key;
  77. $sign = md5($signStr);
  78. return $sign;
  79. }
  80. public function getFail($msg = '')
  81. {
  82. echo 'FAILURE';
  83. exit();
  84. }
  85. public function getSuccess($msg = '')
  86. {
  87. echo 'SUCCESS';
  88. exit();
  89. }
  90. /**
  91. * 二次登陆效验
  92. *
  93. * @param $data
  94. * @param $polyChannelGame
  95. *
  96. * @return false
  97. */
  98. public function getSpecialParam($data,$polyChannelGame = [])
  99. {
  100. if(empty($data['channel_token'])){
  101. return false;
  102. }
  103. if (!$paramArr = json_decode($polyChannelGame['param'], true)) {
  104. return false;
  105. }
  106. $param = [
  107. 'appId' => $paramArr['app_id'],
  108. 'token' => $data['channel_token'],
  109. 'platformId' => $paramArr['platform_id'],
  110. ];
  111. $param['sign'] = $this->sign($param, $paramArr['server_key']);
  112. $result = get_http_response('https://game-api.62wy.com/api/Cp/VerifySession.do', $param);
  113. $res = json_decode($result, true);
  114. if ($res['state'] == 1) {
  115. return $res['userId'];
  116. } else {
  117. return false;
  118. }
  119. }
  120. }