飞信公众平台接口文档Word下载.docx
《飞信公众平台接口文档Word下载.docx》由会员分享,可在线阅读,更多相关《飞信公众平台接口文档Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
1.1.2申请消息接收接口
公众平台消息接口为开发者提供了一种新的消息处理方式。
申请消息接收接口步骤如下图
开发者可以把公众号设为开发模式,当用户发送消息给相应的公众号时,将跳过平台处理逻辑,直接将消息转发给开发者备案的url地址
在页面相应地址点击申请,填写网址url和keyStr,其中keyStr由开发者填写,用作生成签名。
keyStr是由数字和字母组成的6-32个字符串。
url用来接收平台转发的消息,所提供的url地址必须可访问。
且请求时间需在5秒以内,如果超过5秒仍没有返回信息,系统将主动断开连接。
提交信息时,平台会校验url地址的有效性,同时开发者也可以通过校验规则检查是否是来自公众平台的请求。
url校验流程如下图
公众平台用户提交信息后,公众服务器将发送POST请求到填写的URL上,并且带上以下四个参数:
参数描述
Sign加密签名
Timestamp时间戳
Nonce随机数
echoStr随机字符串
开发者通过检验sign对请求进行校验(下面有校验方式)。
若确认此次POST请求来自公众服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。
sign结合了开发者填写的keyStr参数和请求中的timestamp参数、nonce参数以及开发者账号信息。
加密/校验流程:
将token、timestamp、nonce三个参数进行字典序排序
将以上排序后的参数表进行字符串连接,如key1value1key2value2key3value3...keyNvalueN
将clientID作为前缀,将clientSecret作为后缀,对该字符串进行SHA-1计算,并转换成大写
开发者获得加密后的字符串可与sign对比,标识该请求来源于公众平台
1.1.3申请token
token是开发者访问公众接口的唯一凭证,任何接口都需要附带token。
开发者通过网络令牌直接与公众服务器交互,实现媒体文件上传、媒体文件获取、发送消息等功能,达到开发者与公众服务器交互的目的。
调用接口所需要的token必须通过获取凭证接口获取。
在使用公众接口前,你需要做以下两步工作:
拥有一个公众账号,并获取到clientID和clientSecret(在公众平台申请内测资格,审核通过后可获得)
通过获取凭证接口获取到access_token
获取token流程如下图
1.1.4调用消息接口
用户发送信息到接入方公众端口号,飞信公众平台透传消息到接入方,接入方回调发送消息接口发送消息
群发类消息,每天单个用户仅能接收一次群发类信息,短信群发会统一扣除短信配额
互动类消息用户一次上行接入方可以发送5条以内(含5条)消息,超出部分会扣除接入方短信包
所有的消息必须是与公众账号存在好友关系
消息接口处理流程如下图
1.2实施步骤
1、注册飞信公众平台用户,网址:
2、申请成为开发者,填写接收飞信公众平台数据网址URL及校验信息。
3、飞信公众平台分配clientid。
4、修改inc/config.inc.php文件中的CLIENTID及SECRET(第2步填写的校验信息)。
5、运行gettoken.php文件更新token.txt
6、使用飞信帐号与公众帐号发消息,测试是否正常。
7、查看log/request_log.txt内容获取useruri、ppid修改sendmessage.php文件。
9、运行sendmessage.php测试公众帐号主动发送消息是否正常。
9、根据实际情况修改inc/config.inc.php中的DEBUG,true为开启日志记录,false为关
闭日志记录。
1.3飞信公众平台接口服务器配置信息
IP地址:
221.176.30.209
端口:
80
路径:
/op/
飞信公众平台接口服务器出口IP地址:
221.176.30.1、221.176.30.2
2接口说明
信息传递方式:
HTTPPOST
消息编码:
UTF-8
2.1参数介绍
名称
备注
clientid
第三方开发者ID,注册飞信公众平台时系统分配。
timestamp
时间戳,秒级
nonce
随机数,10000-99999整数
token
用于发送消息,需要向飞信公众平台接口申请。
同一时间只有一个有效token,token超时后自助失效,需要申请新的token。
message
收发消息的内容xml。
secret
用于申请token、校验消息有效性使用,由用户注册飞信公众平台时填写。
sign
用于申请token、校验消息有效性,根据算法生成。
2.2sign生成算法
1.对除clientid以外的所有请求参数进行字典升序排列;
2.将secret、timestamp、nonce排序后的参数表进行字符串连接,如key1value1key2value2key3value3...keyNvalueN;
3.将clientid作为前缀,对该字符串进行SHA-1计算,并转换成16进制编码;
4.转换为全大写形式后即获得sign。
PHP参考代码如下:
//生成校验飞信公众平台的加密字符串
publicfunctioncreateSign($timestamp,$nonce){
$codes="
clientid"
.$clientid;
$params["
keystr"
]=$secret;
timestamp"
]=$timestamp;
nonce"
]=$nonce;
ksort($params);
while(list($key,$val)=each($params)){
$key=strtolower($key);
$codes.=($key.$val);
}
$sign=strtoupper(sha1($codes));
return$sign;
}
2.3消息内容xml结构
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
Dataversion=”1.0”>
PPID>
分配的公众号<
/PPID>
UserURI>
用户的URI<
/UserURI>
MsgType>
消息类型<
/MsgType>
Content>
消息内容<
/Content>
CallID>
会话编号<
/CallID>
CseqValue>
消息顺序号<
/CseqValue>
MsgID>
消息编号<
/MsgID>
ClientType>
渠道类型<
/ClientType>
PackageID>
应用编号<
/PackageID>
UserType>
用户类型<
/UserType>
/Data>
2.4获取token接口
第三方向飞信公众平台申请。
飞信公众平台API需要通过签名来访问,签名的过程是将请求参数串以及密钥根据一定签名算法生成的签名值。
token将以消息的形式发送至第三方注册飞信公众平台时的填写的URL上。
请求参数:
clientid、timestamp、nonce、sign
接口反馈:
接口状态码
token返回参数:
clientid、timestamp、nonce、sign、token
接口地址:
http:
//221.176.30.209/op/gettoken.php
注:
token发送至第三方的接收消息接口,请保存token用于发送消息时使用。
2.5发送消息
第三方向飞信公众平台发送。
参数:
clientid、timestamp、nonce、token、message
//221.176.30.209/op/get.php
2.6接收消息
飞信公众平台向第三方发送。
当普通飞信用户向公众账号发消息时,飞信公众平台服务器将POST该消息到第三方填写的URL上。
clientid、timestamp、nonce、sign、message
消息有效性校验:
根据sign算法生成sign,新生成的sign与飞信公众平台POST的sign一致,验证信息有效。
token通过此接口接收,请保存token用于发送消息时使用。
36、注意事项:
请保证HTTP请求数据编码务必为UTF-8格式,URL也务必为UTF-8编码格式。
所有信息传递采用HTTPPOST
3.1接口权限
请先确保公众账号已经拥有接口调用权限。
默认每个公众帐号都不能超过下面的频率限制。
当超出调用接口频率限制,调用对应接口将会收到如下错误信息:
接口调用频率限制:
获取token请求:
5(次/月)
主动上行每个MsgID可以上行5次(用户向公众帐号发送一次消息,可通过接口向用户免费发送5次消息)
单条消息超时时间为:
30分钟。
4常见问题
1、DEBUG配置为true时日志文件没有记录,请确认日志文件是否有写权限
2、无法发送主动上行消息,请确认token是否正常。
3、调试sendmessage.php及sendmessage_m.php报错414,开发测试期间开发者主动上行权限受限制不能发送主动上行。
4、如何用手机客户端关注公众帐号,8月25号之后,手机客户端可以关注公众帐号。
5、如何主动给用户发消息,可以使用sendmessage.php中的例子发送消息,UserURI通过用户日常聊天时获取(主动给用户发消息需要申请权限请与商务人员联系)。
6、客户发送到公众平台的消息是否有提示?
客户发送到公众平台的消息有列队,是发送成功的状态,公众平台到第三方开发者服务器,现在的处理方式是,如果连接超时,本条消息就丢失。
5接口状态码
200
操作成功
400
操作失败
414
参数不正确
415
Hash异常
416
token异常
418
xml解析失败
421
用户飞信状态变更
422
400号不正确
423
token生成次数超限
424
msgid到达上限(最多5次)
425
token不可用
435
扣减短信包不成功
436
短信包无可用余额
500
未知系统错误
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)