关于网站建设的论文,网站建设有前途,购买主机可以做网站吗,wordpress 旅游预订回调模式在回调模式下#xff0c;企业不仅可以主动调用企业号接口#xff0c;还可以接收成员的消息或事件。接收的信息使用XML数据格式、UTF8编码#xff0c;并以AES方式加密。企业号的每个应用都有自己的回调模式开关。在管理端开启并设置好相关参数后#xff0c;此应用的…回调模式在回调模式下企业不仅可以主动调用企业号接口还可以接收成员的消息或事件。接收的信息使用XML数据格式、UTF8编码并以AES方式加密。企业号的每个应用都有自己的回调模式开关。在管理端开启并设置好相关参数后此应用的回调模式才生效。针对加解密的处理微信提供了各种语言的库企业可以在附录中下载。开启应用的回调模式当你开启应用的回调模式时企业号会要求你填写应用的URL、Token、EncodingAESKey三个参数。URL是企业应用接收企业号推送请求的访问协议和地址支持http或https协议。Token可由企业任意填写用于生成签名。EncodingAESKey用于消息体的加密是AES密钥的Base64编码。验证URL、Token以及加密的详细处理请参考后续接收消息时的加解密处理的章节。验证URL有效性当你提交以上信息时企业号将发送GET请求到填写的URL上GET请求携带四个参数企业在获取时需要做urldecode处理否则会验证不成功。参数描述是否必带msg_signature微信加密签名msg_signature结合了企业填写的token、请求中的timestamp、nonce参数、加密的消息体是timestamp时间戳是nonce随机数是echostr加密的随机字符串以msg_encrypt格式提供。需要解密并返回echostr明文解密后有random、msg_len、msg、$CorpID四个字段其中msg即为echostr明文首次校验时必带企业通过参数msg_signature对请求进行校验如果确认此次GET请求来自企业号那么企业应该对echostr参数解密并原样返回echostr明文(不能加引号不能带bom头不能带换行符)则接入验证生效回调模式才能开启。后续回调企业时都会在请求URL中带上以上参数(echostr除外)校验方式与首次验证URL一致。使用回调模式企业号在回调企业URL时会对消息体本身做AES加密以XML格式POST到企业应用的URL上企业在被动响应时也需要对数据加密以XML格式返回给微信。企业的回复支持文本、图片、语音、视频、图文等格式。微信服务器在五秒内收不到响应会断掉连接并且重新发起请求总共重试三次。如果在调试中发现成员无法收到响应的消息可以检查是否消息处理超时。当接收成功后http头部返回200表示接收ok其他错误码一律当做失败并发起重试关于重试的消息排重有msgid的消息推荐使用msgid排重。事件类型消息推荐使用FromUserName CreateTime排重。假如企业无法保证在五秒内处理并回复可以直接回复空串企业号不会对此作任何处理并且不会发起重试。这种情况下可以使用发消息接口进行异步回复。请求说明回调数据格式1.msg_encrypt为经过加密的密文(消息明文格式参见 接收普通消息事件明文格式参见 接收事件)2.AgentID为接收的应用id可在应用的设置页面获取3.ToUserName为企业号的CorpID企业需要对msg_signature进行校验并解密msg_encrypt得出msg的原文。被动响应给微信的数据格式timestamp1.msg_encrypt为经过加密的密文(消息明文格式参见 被动响应消息)算法参见附录2.MsgSignature为签名算法参见附录3.TimeStamp为时间戳Nonce为随机数由企业自行生成接收消息时的加解密处理企业可以直接使用微信提供的库进行加解密的处理目前提供的有c/python/php/java/c#等语言版本。代码提供了解密、加密、验证URL三个接口企业可根据自身需要下载 (参见附录的加解密库下载)。以下为库函数的使用说明(以c为例)更详细的加解密方案请参考(附录)。1、解密函数int DecryptMsg(const string sMsgSignature, const string sTimeStamp, const string sNonce, const string sPostData, string sMsg);参数说明参数必须说明sMsgSignature是从回调URL中获取的msg_signature参数sTimeStamp是从回调URL中获取的timestamp参数sNonce是从回调URL中获取的nonce参数sPostData是从回调URL中获取的整个post数据sMsg是用于返回解密后的msg以xml组织返回说明请参阅附录加解密部分。2、加密函数int EncryptMsg(const string sReplyMsg, const string sTimeStamp, const string sNonce, string sEncryptMsg);参数说明参数必须说明sReplyMsg是返回的消息体原文sTimeStamp是时间戳调用方生成sNonce是随机数调用方生成sEncryptMsg是用于返回的密文以xml组织返回说明请参阅附录加解密部分。3、验证URL函数int VerifyURL(const string sMsgSignature, const string sTimeStamp, const string sNonce, const string sEchoStr, string sReplyEchoStr);参数说明参数必须说明sMsgSignature是从回调URL中获取的msg_signature参数sTimeStamp是从回调URL中获取的timestamp参数sNonce是从回调URL中获取的nonce参数sEchoStr是从回调URL中获取的echostr参数。注意此参数必须是urldecode后的值sReplyEchoStr是解密后的echostr用于回包。注意必须原样返回不要做加引号或其它处理返回说明请参阅附录加解密部分。获取微信服务器的ip段请求说明Https请求方式: GET参数说明参数必须说明access_token是调用接口凭证返回结果{ip_list: [101.226.103.*, 101.226.62.*]}