我们知道通过微信公众号平台的开放API可以实现用户个性制定制的功能,我们又知道使用开放API时必须知道AppID(应用ID)AppSecret(应用密钥),而且还要配置URL(服务器地址)、Token(令牌)、EncodingAESKey(消息加解密密钥)、消息加解密方式。通过以上信息就可以获取到我们调用微信公众平台时的访问令牌(AccessToken),假设你要让第三方软件公司帮你实现个性化的定制功能就必须告知以上信息给第三方软件公司,这就会存在一定的安全性问题。为了解决这需求与安全之间的平衡问题,腾讯于是推出了公众号第三方平台。我们应该见过某些网站可以使用QQ、微信等帐号登录,公众号第三方平台也就如同这样的功能,软件公司使用公众号第三方平台提供的API实现一个登录功能,然后微信公众号平台的用户就可以直接使用公众号的帐号密码登录,然后会弹出功能授权选项,可以有选择地授权。这样第三方平台就会得到一个微信提供的访问令牌(AccessToken),使用这个访问令牌就可以调用微信公众平台的API了。

第三方开放平台的网址是:https://open.weixin.qq.com
注册之类的步骤,此处省略1024个字......

公众号第三方平台的申请资料说明

授权发起页域名:指公众号在登录授权给第三方平台方时的授权回调域名,在公众号进行登录授权流程中,必须从本域名内网页跳转到登录授权页,才可完成登录授权。授权成功后会回调授权时提供的URI,公众平台会检查URI,必须保证URI所属域名与服务申请时提供的授权域名保持一致。请注意,域名不需带有“http://”等协议内容,也不能在域名末尾附加详细目录,严格按照类似www.qq.com的写法。

授权测试公众号列表:在全网发布之前,仅该列表内公众号才可进行授权,以便测试。请填写公众号的原始ID(可在公众平台网站的公众号设置页找到),最多10个,以英文“;”隔开。请至少要填写这一个:gh_ea3c04785154,这是全网发布时必须用到的。

授权事件接收URL:用于接收取消授权通知、授权成功通知、授权更新通知,也用于接收ticket,ticket是验证平台方的重要凭据,服务方在获取component_access_token时需要提供最新推送的ticket以供验证身份合法性。此ticket作为验证服务方的重要凭据,请妥善保存。

示例代码用到相关的库:http://mp.weixin.qq.com/wiki/static/assets/a5a22f38cb60228cb32ab61d9e4c414b.zip

<?php
include_once "lib/sha1.php";
include_once "lib/xmlparse.php";
include_once "lib/pkcs7Encoder.php";
include_once "lib/errorCode.php";
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$appId=$postObj->AppId;
$encrypt=$postObj->Encrypt;
$prpcrypt=new Prpcrypt("$你的公众号消息加解密Key");
$result=$prpcrypt->decrypt($encrypt, $appId."");
if($result[0]*1==0){$result=simplexml_load_string($result[1], 'SimpleXMLElement', LIBXML_NOCDATA);if(isset($result->ComponentVerifyTicket)){$phpCode=sprintf("<?php return %s;?>", var_export(json_decode(json_encode($result),TRUE),TRUE));file_put_contents("ComponentVerifyTicketCache.php", $phpCode);}
}
echo 'success';
?>

公众号消息校验Token: 开发者在代替公众号接收到消息时,用此Token来校验消息。用法与普通公众号token一致

公众号消息加解密Key: 在代替公众号收发消息过程中使用。必须是长度为43位的字符串,只能是字母和数字。用法与普通公众号symmetric_key一致

公众号消息与事件接收URL:该URL用于接收已授权公众号的消息和事件,消息内容、消息格式、签名方式、加密方式与普通公众号接收的一致,唯一区别在于签名token和加密symmetric_key使用的是服务方申请时所填写的信息。由于消息具体内容不会变更,故根据消息内容里的ToUserName,服务方是可以区分出具体消息所属的公众号。请注意:

1、考虑到服务需要接收大量的授权公众号的消息,为了便于做业务分流和业务隔离,必须提供如下形式的url:www.abc.com/aaa/$APPID$/bbb/cgi,其中$APPID$在实际推送时会替换成所属的已授权公众号的appid。

2、第三方平台只需获得某个业务模块的授权(而不需要获得客服与菜单权限的授权),然后在收到该业务模块事件推送后,如果该事件是允许进行5秒内被动回复消息给粉丝的,那么第三方就可以被动回复(业务模块的哪些事件推送允许被动回复用户,哪些不允许,需咨询具体业务模块)

3、如果第三方希望实现实时获知公众号有新粉丝关注,只需要收到关注事件后回复success即可,不必另行回复,免得公众号出现多个第三方同时进行粉丝关注后的自动回复。

网页开发域名:网页开发域名最多可以填写3个,每个以英文“;”符号隔开。每个网页开发域名会产生2个效果(请注意,勿域名不需带有“http://”等协议内容,也不能在域名末尾附加详细目录):

1、在该域名和符合要求的下级域名内,可以代替旗下授权后公众号发起网页授权。下级域名必须是$APPID$.wx.abc.com的形式($APPID$为公众号的AppID的替换符,建议第三方用这种方式,若需可做域名映射),如果不按这种形式来做,旗下公众号违规将可能导致整个网站被封。

2、在该域名(一级域名)内,可以代替旗下授权后公众号调用JS SDK(需要配合公众号的AppID)

【其他】

白名单IP地址列表:仅当开发者IP地址在该列表中时,才被允许调用相关接口。最多填写100个IP地址,以英文“;”隔开。后续有出口IP变更时一定要先在申请资料里填写并覆盖现网,否则会被拦截。

注:对于申请资料中填写的所有完整有效url,都需要做一次echo校验,以确定该url是有效可连通的,这个与普通公众号开发模式下url校验方式一致,只是使用的token为服务方的token。

若有疑问请联系QQ:82530662

公众号第三方平台和微信公众号平台的区别与开发步骤相关推荐

  1. 微信公众号官网平台与微信公众号第三方平台的区别

    微信公众号官网平台 普通的微信公众账号只能开启编辑模式,编辑模式缺点: 1)功能有限,无法开发API丶地理位置回复等信息: 2) 文字回复有300字限制,关键字回复上限为200条; 3)关键字回复较多 ...

  2. 网络架构、云平台和微信公众号开发接入--基于嵌入式工程师的视觉

    云与后端相关的技术似乎并不属于嵌入式和物联智能硬件开发工程师的范畴,但是嵌入式开发工程师有必要认识成熟的网络架构和相关的云技术,以拓展自己在系统架构方面的视野.大数据分析是物联网背后的核心价值,物联智 ...

  3. 第三方网站调用微信公众号的图片被禁止

    第三方网站调用微信公众号的图片被禁止 借助搜狗搜索的接口来处理,让后端转码,前端调用 <meta name="referrer" content="no-refer ...

  4. Shopro商城,基于Fastadmin和Uniapp进行开发的多平台(微信公众号、微信小程序、H5网页、Android-App、IOS-App)购物商城

    Shopro商城 基于Fastadmin和Uniapp进行开发的多平台(微信公众号.微信小程序.H5网页.Android-App.IOS-App)购物商城,拥有强大的店铺装修.小程序直播.自定义模板. ...

  5. 如何开发微信公众号以及如何运营微信公众号

    微信公众号已经成为了企业.个人和组织进行品牌推广.宣传和营销的重要平台.但是,如何开发和运营微信公众号并不是一件容易的事情.本文将从以下几个方面来介绍如何开发和运营微信公众号. 一.微信公众号的开发 ...

  6. php公众号提现功能,微信公众号打赏的钱怎么提现_微信公众号打赏功能_微信公众号打赏从哪里取出来...

    微信公众号打赏的钱怎么提现,微信公众号打赏功能.微信公众号之前打赏功能可以立即取现,但是最近出现了一些变动,会有人问微信公众号打赏为什么不能立刻取现?小编为大家带来了微信公众号打赏取现时间调整. 微信 ...

  7. silk lobe资源公众号_优化政务微信公众号实现资源共享

    原标题:优化政务微信公众号实现资源共享 随着微信公众号和智能APP的兴起和广泛应用,越来越多的政府微信平台开始兴起.近年来,各级政府部门顺应大趋势,充分利用"互联网"技术开展政府服 ...

  8. 公众号支付demo java_微信公众号支付开发全过程(java版)

    文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 一.微信官方文档微信支付开发流程(公众号支付) 首先我们到微信支付的官方文档的开发步骤部分查 ...

  9. 微信公众号数据2019_历史微信公众号排名,微信公众号新榜排名

    历史微信公众号排名,微信公众号新榜排名 公众号排名优化的注意事项及细节今天给大家分享一下,作为微信公众号的排名优化对于大多数人来说都已经知道了有这个渠道的事情,其实很多的新产品及渠道出来以后有不少的人 ...

  10. python爬取微信公众号_Python爬取微信公众号(中间人代理法)

    1.环境:ubuntu16.04 + redis + mysql + python3.5 + anyproxy + android + pm2 + npm + node 一台爬虫服,python3环境 ...

最新文章

  1. UDP数据转发解决WiFi与有限以太网之间控制命令传递:RGBLink
  2. mysql-视图,触发器,事物,函数,存储过程
  3. javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件
  4. 《参考消息》出现大标题错别字硬伤
  5. Javascript中的条件语句和循环语句
  6. 枚举smb共享期间出错_大量三星手机黑屏系统崩溃,客服:闰4月计算出错
  7. 贴吧手工自动发帖软件
  8. 一些linux牛皮糖
  9. 微信录制视频转圈效果如何实现?
  10. una到底啥意思_una到底啥意思_Una_英文名Una是什么意思
  11. iPhone13或许会支持25w快充
  12. 谈业务流程全生命周期管理支撑业务流程再造(3)
  13. 将Android 根目录挂载为 可读可写RW
  14. linux常用指令汇总
  15. USB OTG的检测原理及使用
  16. 超详细Redis入门教程——Redis命令(下)
  17. 挖藕!模拟sql抓取qq密码
  18. django.db.utils.OperationalError: (1050, Table 'xxx' already exists)
  19. python爬虫工程师工资-通过自学找一份Python爬虫工程师的工作
  20. ActiveMQ配置wss

热门文章

  1. 核心案例 | 南京理工大学空地协同编队控制系统建设项目
  2. 泡沫破裂美国炒房族下场凄惨 220万人无力还贷
  3. mysql 查找相似数据_MySQL性能优化做得好的人,都懂的索引绝技
  4. Tensorflow2.0学习笔记(一)
  5. 如何查看某端口对应什么服务?
  6. Java判断一个正整数是否为质数(素数)。
  7. 泛微移动平台(E-Mobile)升级包升级操作说明
  8. CuteOne基于Python3的OneDrive多网盘挂载程序+带会员
  9. 深入探索JVM高效并发 — Java内存模型(四) 先行发生原则
  10. 为何境外IT巨头频频来华成立合资公司