看了微信的 api 文档,它是这么写的:
用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的 URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。
推送的 xml 格式如下
<xml><ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>
下面微信绑定 url 方法
def index
if params[:openid].nil?
array = ['1111111', params[:timestamp], params[:nonce]].sort
Rails.logger.debug Digest::SHA1.hexdigest(array.join)
if params[:signature] == Digest::SHA1.hexdigest(array.join)
render text: params["echostr"]
else
render text: 'false'
end
else
render text: 'true'
end
end
然后下面是微信返回 xml 格式的方法
def create
render xml: template
end
问题在于,当我扫码之后,微信有请求我的 create,但是没有推送 xml 到我的方法里面。 微信推送给我的参数是
Parameters: {"signature"=>"111111", "timestamp"=>"1489728998", "nonce"=>"963841539", "openid"=>"rrrrr-zd952ccLE"}
请教下各位,有没有遇到这个情况,是什么造成的。。。。。