微信公众平台授权给微信开放平台第三方

微信开放平台创建公众号第三方平台


按说明申请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=你的回调地址';

如果没有错误的话,这时应该会出现一个授权验证码,让管理员扫描一下即可授权。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值