info.php代码
class MediaInfo {
// 由微校提供
const API_KEY = '7359CF1815D2E44B';
const API_SECRET = '*************'; public function getInfo() {
$media_id = 'gh_594c04b29acc';
//$open_url = 'http://weixiao.qq.com/common/get_media_info';
$open_url = 'http://xuan.hscxmt.cn/demo/api.php';
$param_array = array(
'media_id' => $media_id,
'api_key' => self::API_KEY,
'timestamp' => time(),
'nonce_str' => $this->genNonceStr(),
); $param_array['sign'] = $this->calSign($param_array);
$reponse = $this->post($open_url, json_encode($param_array));
echo $reponse;
} /**
* 生成32位随机字符串
* @return string
*/
public function genNonceStr() {
return strtoupper(md5(time() . mt_rand(0, 10000) . substr('abcdefg', mt_rand(0, 7))));
} /**
* curl post 请求
* @param string $url
* @param string $json_data json字符串
* @return json
*/
public function post($url, $json_data, $https = true) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
if ($https) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json_data);
$response = curl_exec($curl);
curl_close($curl);
return $response;
} /**
* 计算签名
* @param array $param_array
* @return string
*/
public function calSign($param_array) {
$names = array_keys($param_array);
sort($names, SORT_STRING); $item_array = array();
foreach ($names as $name) {
$item_array[] = "{$name}={$param_array[$name]}";
} $str = implode('&', $item_array) . '&key=' . self::API_SECRET;
return strtoupper(md5($str));
}
}$object = new MediaInfo();
$object->getInfo();
api.php代码
$API_SECRET = '*********';$post_data = file_get_contents('php://input');
$param_array = json_decode($post_data, true);
//print_r($param_array);
$sign = $param_array['sign'];
unset($param_array['sign']);
$cal_sign = calSign($param_array,$API_SECRET);
//print_r($cal_sign);if ($cal_sign == $sign) {
$interval = time() - $param_array['timestamp'];
if ($interval >= 0 && $interval < 10) {
/** OK返回正确的json格式数据 */
return json_encode(array(
'errcode' => 0,
'errmsg' => '正确返回',
'token' => 'weixin',
'is_config' => 1,
));
}
}else{
return json_encode(array('errcode' => 5003,'errmsg' => '请求接口失败'));
}
function calSign($param_array,$API_SECRET) {
$names = array_keys($param_array);
sort($names, SORT_STRING);
$item_array = array();
foreach ($names as $name) {
$item_array[] = "{$name}={$param_array[$name]}";
} $str = implode('&', $item_array) . '&key=' . $API_SECRET;
return strtoupper(md5($str));
}我网上百度了下,相关内容很少,所以特地问下各位大佬这怎么解决啊
结尾行可以: echo $object->getInfo();