介绍
WxPusher (微信推送服务)是一个使用微信公众号作为通道的,实时信息推送平台,你可以通过调用API的方式,把信息推送到微信上,无需安装额外的软件,即可做到信息实时通知。 你可以使用WxPusher来做服务器报警通知、抢课通知、抢票通知,信息更新提示等。 demo演示程序你可以访问演示程序,体验功能:https://wxpusher./demo/ 演示程序源代码:https://github.com/wxpusher/wxpusher-sdk-java/ 请一定不要调用demo程序,直接给用户发送消息!!! 效果预览微信接口调整,直接发送文本消息的方式已经下线,我们正在开发新的推送方式,敬请期待。
名词解释
对应你的一个项目 ,主要用来做鉴权,资源隔离等(类比使用高德地图SDK、微信登录等,都会先新建一个应用),每个应用拥有独立的名字,二维码,回调地址,调用资源,鉴权信息等,发送消息第一步,需要先新建一个应用。 简单的理解,你有一个抢火车票的项目,抢到票了需要给用户发送信息;你还有一个服务器报警的项目,服务器有异常的时候,给相关负责人发送信息,这2个的用途是不一样的,你就可以创建2个应用来分别发送他们的信息。 用户可以通过二维码或者链接关注这个应用,关注我们会把用户的UID回调给你指定的服务器,你可以通过UID给这个用户发送信息。
主题(Topic)是应用下面,一类消息的集合,比如创建了一个优惠相关的应用,用来给用户推送各种优惠信息,但是不同的用户关注的优惠信息不同,一部分人关注淘宝的,一部分人关注京东的。这种场景下,你就可以创建一个淘宝的主题,再创建一个京东的主题,发送信息的时候,直接发送到对应的主题即可,每个主题都有对应的订阅链接和二维码,用户订阅这个主题以后,就能接收这个主题下的信息了。 Topic只能无差别群发,不能针对用户定制消息,用户关注以后,无回调信息 。
动态二维码:二维码链接不会变,但是二维码图形会变 ,因此只能使用动态二维码链接,不对截图、打印等。 静态二维码:二维码链接和图形都不变,可以随意使用。
应用的身份标志,这个只能开发者你本人知道 ,拥有APP_TOKEN,就可以给对应的应用的用户发送消息 ,所以请严格保密,不要发送到github之类的地方。
微信用户标志,在单独给某个用户发送消息时,来说明要发给哪个用户。 快速接入整体架构在接入之前,你可以看一下架构图,有助于你理解单发,群发的区别。 注册并且创建应用https://wxpusher./admin/ ,使用微信扫码登录,无需注册,新用户首次扫码自动注册。 创建一个应用,如下图: 回调地址:可以不填写,不填写用户关注的时候,就不会有回调,你不能拿到用户的UID,参考回调说明。 设置URL:可以不填写,填写以后,用户在微信端打开「我的订阅」,可以直接跳转到这个地址,并且会携带uid作为参数,方便做定制化页面展示。 联系方式:可以不填写,告诉用户,如何联系到你,给你反馈问题。 关注提示:用户关注或者扫应用码的时候发送给用户的提示,你可以不填写,Wxpusher会提供一个默认文案。你也可以在用户关注回调给你UID的时候,再主动推送一个提示消息给用户。 说明:描述一下,你的应用,推送的是啥内容,用户通过链接关注,或者在微信端查看的时候可以看到。 获取appToken在你创建应用的过程中,你应该已经看到appToken,如果没有保存,可以通过下面的方式重制它。 打开应用的后台https://wxpusher./admin/,从左侧菜单栏,找到appToken菜单,在这里,你可以重置appToken,请注意,重置后,老的appToken会立即失效,调用接口会失败。 扫码关注应用创建应用以后,你可以看到应用的应用码和关注链接,你可以让你的用户通过下面2种方式来关注你的应用,关注你的应用以后,你就可以给他发送消息了。 获取UID目前有3种方式获取UID:
发送消息拿到UID以后,配合应用的appToken,然后调用发送接口发送消息。 HTTP接口说明所有接口均已经支持https。 发送消息
返回数据说明:
查询状态消息发送给Wxpusher,Wxpusher会缓存下来,后台异步推送给微信再分发给用户,当消息数量庞大的时候,可能会有延迟,你可以根据发送消息返回的sendRecordId,查询消息给此用户的发送状态 请求方式:GET 说明:查询消息状态,消息缓存有时效性,目前设置缓存时间为7天,7天后查询消息,可能会返回消息不存在 请求地址:https://wxpusher./api/send/query/status?sendRecordId={sendRecordId} 参数说明:
删除消息请求方式:DELETE 说明:消息发送以后,可以调用次接口删除消息,但是请注意,只能删除用户点击详情查看的落地页面,已经推送到用户的消息记录不可以删除。 请求地址:https://wxpusher./api/send/message?messageContentId=${messageContentId}&appToken=${appToken} 参数说明:
创建参数二维码有一种场景,就是需要知道当前是谁扫描的二维码,比如:论坛帖子有新消息需要推送给用户,这个如果用户扫码关注,你需要知道是谁扫的二维码,把论坛用户ID和Wxpusher用户的UID绑定,当论坛用户ID有新消息时,推送给Wxpusher用户。这种场景就需要带参数的二维码。 请求方式:POST 请求地址:https://wxpusher./api/fun/create/qrcode ContentType:application/json 说明:创建带参数二维码,用户扫码以后,会在回调里面带上参数,参考回调说明 请求body:
查询扫码用户UID用户扫描参数二维码后,设置了回调地址,我们会通过回调地址把用户的UID推送给你的服务,具体见回调说明,推荐使用这种回调的方式。 但是部分用户场景简单,或者没有后端服务,比如客户端软件,使用很不方便,因此我们增加了这个查询接口,通过上面的创建参数二维码接口创建一个二维码,你会拿到一个二维码的code,用此code配合这个接口,可以查询到最后一次扫描参数二维码用户的UID。 轮训时间间隔不能小于10秒!!禁止死循环轮训,用户退出后,必须关闭轮训,否则封号。 请求方式:GET 请求地址:https://wxpusher./api/fun/scan-qrcode-uid 请求参数(Query):
一个例子 https://wxpusher./api/fun/scan-qrcode-uid?code=xxxxx
|
说明 | 消息市场 | 消息产品列表 | 消息产品介绍 |
---|---|---|---|
示例 |
通过查询用户列表V2可以查询用户信息,其中payEndTime就是用户的订阅到期时间。
包装为产品的应用或者主题,在发送消息的时候,可以区分本条消息是否只有付费订阅期内的用户才收得到。 根据verifyPay字段来做区别
具体可以查看发送消息的接口说明,没有包装成产品的应用或者主题,verifyPay字段无效,可以不用传递。
当用户关注应用或者发送命令消息到公众号的时候,WxPusher会将消息推送给你。 如果你没有后台服务,也可以轮训,参考查询扫码用户UID接口。
给用户发送消息,需要知道用户的UID,有2种途径知道用户的UID:
{
'action':'app_subscribe',//动作,app_subscribe 表示用户关注应用回调,后期可能会添加其他动作,请做好兼容。
'data':{
'appId':123,//创建的应用ID
'appKey':'AK_xxxxxx', //关注应用的appKey,请不要再使用,将来可能会被删除
'appName':'应用名字',
'source':'scan', //用户关注渠道,scan表示扫码关注,link表示链接关注,command表示通过消息关注应用,后期可能还会添加其他渠道。
'userName':'', //新用户微信不再返回 ,强制返回空
'userHeadImg':'',//新用户微信不再返回 ,强制返回空
'time':1569416451573, //消息发生时间
'uid':'UID_xxxxxx', //用户uid
'extra':'xxx' //用户扫描带参数的二维码,二维码携带的参数。扫描默认二维码为空
}
}
对于消息产品,如果用户付费或者退款以后,开发者可能需要感知到用户的付费订阅状态。
因此当用户的付费订阅状态变化的时候,会通过下面的回调消息通知你,你可以在收到通知的时候,通过查询用户列表V2查询到用户的订阅到期时间等信息。
{
'action':'order_pay',//动作,表示用户付费或者退款。后期可能会添加其他动作,请做好兼容。
'data':{
'addTime':86400000,//付费增加的时间,毫秒。退款是负数,表示减少的订阅时间。
'amount':50,//金额,单位分,退款是负数
'appId':30630, //发生的应用id
'createTime':1664118481675,//发生时间,毫秒级时间戳
'prodId':12,//产品id
'tradeNo':'202209252308016755383125546',//支付或者退款的交易号,和用户微信账单中的商户号对应
'type':1,//1表示付款,2表示退款
'uid':'UID_xxxxxxx'//发生用户的uid
}
}
目前WxPusher已经支持指令类的上行消息,用户发送指令,WxPusher会将指令消息回调给开发者。
指令的格式为:#{appID} 内容 ,比如给演示程序发送消息,可以发送:#97 测试 ,注意中间有一个空格。
如果只发送:#{appID} ,比如:#97 ,后面没有内容,表示关注appID为97的应用,开发者不会收到回调消息。
appID可以在管理后台,应用管理-应用信息-应用id 查看。
回调使用POST方法,数据格式如下:
{
'action':'send_up_cmd',//动作,send_up_cmd 表示上行消息回调,后期可能会添加其他动作,请做好兼容。
'data':{
'uid':'UID_xxx',//用户uid
'appId':97, //应用id
'appKey':null,//废弃字段
'appName':'WxPusher演示',//应用名称
'userName':'',//新用户微信不再返回 ,强制返回空
'userHeadImg':'',//新用户微信不再返回 ,强制返回空
'time':1603002697386,//发生时间
'content':'内容' //用户发送的内容
}
}
为了更好的用户体验,我们正在努力开发更多的客户端,以提高用户的体验。
Chrome扩展是一个基于Chrome浏览器的扩展程序,只要开着浏览器,就可以接收消息,目前支持Mac、Window电脑,接收消息的体验比微信更好,欢迎体验使用。 你可以访问这里https://github.com/wxpusher/wxpusher-chrome-extensions下载和安装浏览器插件。
因为目前是基于浏览器V2 API开发的,谷歌不让上架,等我们迁移到V3后会在Chrome Store上架
WxPusher是免费的推送服务,为了能更好的服务大家,这里说明一下系统相关数据限制
|