| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?php
- /**
- * 顽熊 渠道
- */
- namespace app\api\complex;
- use app\common\logic\PayCallback;
- use think\Db;
- use think\Model;
- class Wanxiong
- {
- private $channel = 'wanxiong';
- private $check_url = "http://sdkapi.wx.yuekenet.com/user/v1/token/verify/";
- private $appkey = 'VkX3KLQmapIO5goD';
- private $paykey = 'jS6pmBf24kX5nQKWezwO';
- /**
- * 二次登录验证
- */
- public function checkLogin($data,$polyChannelGame = [])
- {
- return true;
- }
- /**
- * 支付签名验证
- */
- public function paySign($data,$polyChannelGame = [])
- {
- if (empty($data)) {
- return false;
- }
- if (!$paramArr = json_decode($polyChannelGame['param'], true)) {
- return false;
- }
- $params = array();
- $params['tm'] = $data['tm'];
- $params['cchid'] = $data['cchid'];
- $params['appid'] = trim($data['appid']);
- $params['m_order_no'] = $data['m_order_no']; //下级渠道的订单号
- $params['cp_order_no'] = $data['cp_order_no']; //这个才是自己聚合层(本级)的订单编号
- $params['paid_amt'] = $data['paid_amt'];
- $params['paid_state'] = $data['paid_state']; //支付状态( 1 为成功,其他都为失败)
- $params['paid_time'] = $data['paid_time'];
- $params['openid'] = $data['openid'];
- if (isset($data['server_id'])) {
- $params['server_id'] = $data['server_id'];
- }
- $params['server_name'] = urldecode($data['server_name']);
- $params['role_id'] = $data['role_id'];
- $params['role_name'] = urldecode($data['role_name']);
- $params['product_id'] = $data['product_id'];
- $params['product_name'] = urldecode($data['product_name']);
- $params['cp_ext'] = isset($data['cp_ext'])?$data['cp_ext']:'';
- $params['is_test'] = $data['is_test'];
- $sign = $data['sign'];
- $thisSign = $this->sign($params, $paramArr['paykey']);
- if ($sign == $thisSign && $params['paid_state'] == 1) {
- return true;
- }
- return false;
- }
- private function sign($param, $key)
- {
- $param = array_filter($param, function ($v, $k) {
- if ($k !== 'sign_type' && $k !== 'sign' && $v !== '') {
- return true;
- }
- }, ARRAY_FILTER_USE_BOTH);
- ksort($param);
- reset($param);
- $signStr = '';
- foreach ($param as $k => $v) {
- $signStr .= $k . '=' . $v . '&';
- }
- if (get_magic_quotes_gpc()) {
- $signStr = stripslashes($signStr);
- }
- return md5($signStr . $key);
- }
- /**
- * 系统使用参数名转换
- */
- public function getData($data)
- {
- return [
- 'orderid'=>$data['cp_order_no'],//我方聚合订单
- 'amount'=>$data['paid_amt'], // 充值金额
- 'sub_orderid'=>$data['m_order_no'],//渠道订单
- ];
- }
- public function getFail($msg = '')
- {
- echo 'FAIL';
- exit();
- }
- public function getSuccess($msg = '')
- {
- echo 'SUCCESS';
- exit();
- }
- /**
- * 获取用户id
- * @param $data
- * @return bool
- */
- public function getSpecialParam($data,$polyChannelGame = []){
- if (!$paramArr = json_decode($polyChannelGame['param'], true)) {
- return false;
- }
- $param = [
- 'tm' => time(),
- 'cchid' => $data['cchid'],
- 'appid' => $data['cappid'],
- 'access_token' => $data['channelToken'],
- ];
- $param['sign'] = $this->sign($param, $paramArr['appkey']);
- $result = getCurl($this->check_url, $param);
- log_message($this->check_url . '?' . http_build_query($param) . ' ' . $result, 'log', LOG_PATH . 'complexLoginlog/' . $this->channel . '/');
- $result = json_decode($result, true);
- if ($result['code'] == 200) {
- return $result['data']['openid'];
- } else {
- return false;
- }
- }
- }
|