微信开放平台创建公众号第三方平台
按说明申请appid和secret;
写好信息后提交,审核应该立即就能通过的
第三方获取授权
创建你的授权接收地址的php文件
首先下载微信提供的解密文件,里面的readme文件有说明
http://mp.weixin.qq.com/wiki/static/assets/a5a22f38cb60228cb32ab61d9e4c414b.zip
代码如下:
<?php
include_once "wxBizMsgCrypt.php";
// 第三方发送消息给公众平台,每十分钟发送一次
$encodingAesKey = "。。";//加密key
$token = "。。";//你填写的token
$timeStamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$appId = "。。";
$appSecret = "。。";
$msg_sign = $_GET['msg_signature'];
$pc = new WXBizMsgCrypt($token, $encodingAesKey, $appId);
$postData = $GLOBALS["HTTP_RAW_POST_DATA"];//接收传输数据
$postStr = simplexml_load_string($postData,"SimpleXMLElement",LIBXML_NOCDATA);
$encrypt = $postStr->Encrypt;
$format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%s]]></Encrypt></xml>";
$from_xml = sprintf($format,$encrypt);
$msg = '';
$errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $from_xml, $msg);
if ($errCode == 0) {
creatfile($msg,c1);
$dmsg = simplexml_load_string($msg, 'SimpleXMLElement', LIBXML_NOCDATA);
$ticket = $dmsg -> ComponentVerifyTicket;
creatfile($ticket,c2);
$ticket = substr($ticket, 6);//得到的应该是ticket@@....格式的,需要把前面的ticket去掉
$get_token_url = "https://api.weixin.qq.com/cgi-bin/component/api_component_token";
$ticket_data = array('component_appid' => $appId,'component_appsecret' => $appSecret,'component_verify_ticket' => $ticket);
$jsonStr = json_encode($ticket_data);
$returnContent = http_post_json($get_token_url, $jsonStr);
$component_access_token = json_decode($returnContent) -> component_access_token;
creatfile($component_access_token,c3);
$url2 = 'https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token='.$component_access_token;
$pre_data = array('component_appid' => $appId);
$jsonStr2 = json_encode($pre_data);
$returnContent2 = http_post_json($url2, $jsonStr2);
$pre_auth_code = json_decode($returnContent2) -> pre_auth_code;//在这里我们得到了<span style="font-family: Arial, Helvetica, sans-serif;">pre_auth_code ,有效期为20分钟</span>
creatfile($pre_auth_code,c4);
} else {
print($errCode . "\n");
}
function creatfile($str,$filename){ //生成文件 方便调试
$counter_file = $filename.'.txt ';
$fopen = fopen($counter_file, 'wb');
fputs($fopen,$str);
fclose($fopen);
}
function http_post_json($url, $jsonStr) //post请求
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书,这一点很重要因为是HTTPS请求,
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($jsonStr)
)
);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return $response;
}
?>
利用上面得到的数据,我们在浏览器中进行此链接的请求即可:
https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid='.你的appId.'&pre_auth_code=你的preauthcode&redirect_uri=你的回调地址';
如果没有错误的话,这时应该会出现一个授权验证码,让管理员扫描一下即可授权。