微信公众平台 回复图片消息的问题
这两天一直被这个看似很简单的问题所纠缠,感觉自己雾里看花,希望有大神能指点迷津。
需求很简单,就是在微信公众号里,根据用户的消息,反馈一张图片。
之前把回复文本消息功能已经做好,所以$object是确定ok的,问题就集中在$mediaId上面。
/* * 回复文本消息 */ private function transmitText( $object , $content ) { $textTpl = "<xml> <ToUserName><![CDATA[ ".$object->FromUserName." ]]></ToUserName> <FromUserName><![CDATA[ ".$object->ToUserName." ]]></FromUserName> <CreateTime> ".time()." </CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[ ".$content." ]]></Content> </xml>"; return $textTpl ; } /* * 回复图片消息 */ private function transmitImg( $object , $mediaId ) { $textTpl = "<xml><ToUserName>< ![CDATA[" . $object ->FromUserName. "] ]></ToUserName><FromUserName>< ![CDATA[" . $object ->ToUserName. "] ]></FromUserName><CreateTime>" .time(). "</CreateTime><MsgType>< ![CDATA[image] ]></MsgType><Image><MediaId>< ![CDATA[" . $mediaId . "] ]></MediaId></Image></xml>" ; return $textTpl ; } |
昨天用下面的方法提交到微信那里,能返回mediaID,是43位的,能在公众号后台看到
$file = "/www/wwwroot/coin.yspjd.com/themes/simplebootx_mobile/Public/assets/images/jin.jpg" ; $data = array ( 'media' => new CURLFile( $file ) ); $url = 'https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=' . $wechat_config [ 'token' ]. '&type=image' ; |
返回值:
array(2) { ["media_id"]=> string(43) "n1QolbCOtJOCEmcilp3X_Alp7ukxJIMjm3rRc8nIRy4" ["url"]=> string(132) "http://mmbiz.qpic.cn/mmbiz_jpg/lhfKaADsLqwaZ7uIO9f23xlhjaq7pFub79ZFAFqmWNrGNC9yGJAKdvYWxqibNnzgmbvCukQmx1OWw5ERKTor2tw/0?wx_fmt=jpeg" } |
今天用另外一种方法,form表单提交,能返回64位的mediaID,但是在公众号后台看不到
< form action = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=16_n17ktSF43jkJFzUE6IGt3ZLSvQvwlJQu1LFLOBD9RsYtBlIa4P1aPCZyOM6g9vBOX43ez2sLy-V_FBMcNGWwstFH0I3OoCStAzNNCvX9wImPG5Kqd98WxffZfbzL-48B43thslN9wl6wbpxnZAGjAAAOPV&type=image" method = "post" enctype = "multipart/form-data" > < input type = "file" name = "media" /> < input type = "submit" value = "ok" /> </ form > |
返回值:
{"type":"image","media_id":"nJdoji-3rBsZOPFqL0PcWPQKzwUY9YIpWCI-8El3HQzFNT9LoWTWG0jyw01uGx0C","created_at":1545317001} |
所以,问题一:都是media_id,哪个是正确的?
根据微信官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543
我按两个media_id都做分别做了两个xml,都不能返回正确的图片,问题二:xml有什么问题么?
< xml >< ToUserName >< ![CDATA[oz_hD1o9au6stC6GOXfi_Gk7N19E] ]></ ToUserName >< FromUserName >< ![CDATA[gh_b59f0a6081c4] ]></ FromUserName >< CreateTime >1545311876</ CreateTime >< MsgType >< ![CDATA[image] ]></ MsgType >< Image >< MediaId >< ![CDATA[QH0VDmI4HTP-PwKRvdhzgwaNDsHuy40FUqmjZt1g7AjV6mpNzJmymmuIzk1MzzO3] ]></ MediaId ></ Image ></ xml > |
希望大神不吝赐教,再次感谢!