">
当前位置:Gxlcms > PHP教程 > 微信公众平台开发接口PHPSDK完整版_PHP教程

微信公众平台开发接口PHPSDK完整版_PHP教程

时间:2021-07-01 10:21:17 帮助过:5人阅读

官方提供的SDK只有一个文本消息功能,我们将所有消息的消息类型及事件响应都整理了进来,并且加入日志记录,代码如下:

  1. <span 1<="" span=""> <!--?<span php
  2. </span--><span 2<="" span=""> <span *<="" span="">
  3. <span 3<="" span=""> <span 方倍工作室="" <="" span=""><span 4<="" span=""> <span copyright="" 2014="" all="" rights="" reserved="" <="" span=""><span 5<="" span=""> <span *="" <="" span="">
  4. <span 6<="" span="">
  5. <span 7<="" span=""> <span define<="" span="">("TOKEN", "weixin"<span );="" <="" span=""><span 8<="" span="">
  6. <span 9<="" span=""> <span $wechatobj<="" span=""> = <span new<="" span=""><span wechatcallbackapitest();="" <="" span=""><span 10<="" span=""> <span if<="" span=""> (!<span isset<="" span="">(<span $_get<="" span="">['echostr'<span ]))="" {="" <="" span=""><span 11<="" span=""> <span $wechatobj<="" span="">-><span responsemsg();="" <="" span=""><span 12<="" span=""> }<span else<="" span=""><span {="" <="" span=""><span 13<="" span=""> <span $wechatobj<="" span="">-><span valid();="" <="" span=""><span 14<="" span=""> <span }="" <="" span=""><span 15<="" span="">
  7. <span 16<="" span=""> <span class<="" span=""><span wechatcallbackapitest="" <="" span=""><span 17<="" span=""> <span {="" <="" span=""><span 18<="" span=""> <span public<="" span=""> <span function<="" span=""><span valid()="" <="" span=""><span 19<="" span=""> <span {="" <="" span=""><span 20<="" span=""> <span $echostr<="" span=""> = <span $_get<="" span="">["echostr"<span ];="" <="" span=""><span 21<="" span=""> <span if<="" span="">(<span $this<="" span="">-><span checksignature()){="" <="" span=""><span 22<="" span=""> <span echo<="" span=""> <span $echostr<="" span=""><span ;="" <="" span=""><span 23<="" span=""> <span exit<="" span=""><span ;="" <="" span=""><span 24<="" span=""> <span }="" <="" span=""><span 25<="" span=""> <span }="" <="" span=""><span 26<="" span="">
  8. <span 27<="" span=""> <span private<="" span=""> <span function<="" span=""><span checksignature()="" <="" span=""><span 28<="" span=""> <span {="" <="" span=""><span 29<="" span=""> <span $signature<="" span=""> = <span $_get<="" span="">["signature"<span ];="" <="" span=""><span 30<="" span=""> <span $timestamp<="" span=""> = <span $_get<="" span="">["timestamp"<span ];="" <="" span=""><span 31<="" span=""> <span $nonce<="" span=""> = <span $_get<="" span="">["nonce"<span ];="" <="" span=""><span 32<="" span=""> <span $token<="" span=""> =<span token;="" <="" span=""><span 33<="" span=""> <span $tmparr<="" span=""> = <span array<="" span="">(<span $token<="" span="">, <span $timestamp<="" span="">, <span $nonce<="" span=""><span );="" <="" span=""><span 34<="" span=""> <span sort<="" span="">(<span $tmparr<="" span="">,<span sort_string);="" <="" span=""><span 35<="" span=""> <span $tmpstr<="" span=""> = <span implode<="" span="">(<span $tmparr<="" span=""><span );="" <="" span=""><span 36<="" span=""> <span $tmpstr<="" span=""> = <span sha1<="" span="">(<span $tmpstr<="" span=""><span );="" <="" span=""><span 37<="" span="">
  9. <span 38<="" span=""> <span if<="" span="">(<span $tmpstr<="" span=""> == <span $signature<="" span=""><span ){="" <="" span=""><span 39<="" span=""> <span return<="" span=""> <span true<="" span=""><span ;="" <="" span=""><span 40<="" span=""> }<span else<="" span=""><span {="" <="" span=""><span 41<="" span=""> <span return<="" span=""> <span false<="" span=""><span ;="" <="" span=""><span 42<="" span=""> <span }="" <="" span=""><span 43<="" span=""> <span }="" <="" span=""><span 44<="" span="">
  10. <span 45<="" span=""> <span public<="" span=""> <span function<="" span=""><span responsemsg()="" <="" span=""><span 46<="" span=""> <span {="" <="" span=""><span 47<="" span=""> <span $poststr<="" span=""> = <span $globals<="" span="">["HTTP_RAW_POST_DATA"<span ];="" <="" span=""><span 48<="" span=""> <span if<="" span=""> (!<span empty<="" span="">(<span $poststr<="" span=""><span )){="" <="" span=""><span 49<="" span=""> <span $this<="" span="">->logger("R ".<span $poststr<="" span=""><span );="" <="" span=""><span 50<="" span=""> <span $postobj<="" span=""> = <span simplexml_load_string<="" span="">(<span $poststr<="" span="">, 'SimpleXMLElement',<span libxml_nocdata);="" <="" span=""><span 51<="" span=""> <span $rx_type<="" span=""> = <span trim<="" span="">(<span $postobj<="" span="">-><span msgtype);="" <="" span=""><span 52<="" span="">
  11. <span 53<="" span=""> <span switch<="" span=""> (<span $rx_type<="" span=""><span )="" <="" span=""><span 54<="" span=""> <span {="" <="" span=""><span 55<="" span=""> <span case<="" span=""> "event":
  12. <span 56<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->receiveEvent(<span $postobj<="" span=""><span );="" <="" span=""><span 57<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 58<="" span=""> <span case<="" span=""> "text":
  13. <span 59<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->receiveText(<span $postobj<="" span=""><span );="" <="" span=""><span 60<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 61<="" span=""> <span case<="" span=""> "image":
  14. <span 62<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->receiveImage(<span $postobj<="" span=""><span );="" <="" span=""><span 63<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 64<="" span=""> <span case<="" span=""> "location":
  15. <span 65<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->receiveLocation(<span $postobj<="" span=""><span );="" <="" span=""><span 66<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 67<="" span=""> <span case<="" span=""> "voice":
  16. <span 68<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->receiveVoice(<span $postobj<="" span=""><span );="" <="" span=""><span 69<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 70<="" span=""> <span case<="" span=""> "video":
  17. <span 71<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->receiveVideo(<span $postobj<="" span=""><span );="" <="" span=""><span 72<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 73<="" span=""> <span case<="" span=""> "link":
  18. <span 74<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->receiveLink(<span $postobj<="" span=""><span );="" <="" span=""><span 75<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 76<="" span=""> <span default<="" span="">:
  19. <span 77<="" span=""> <span $result<="" span=""> = "unknow msg type: ".<span $rx_type<="" span=""><span ;="" <="" span=""><span 78<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 79<="" span=""> <span }="" <="" span=""><span 80<="" span=""> <span $this<="" span="">->logger("T ".<span $result<="" span=""><span );="" <="" span=""><span 81<="" span=""> <span echo<="" span=""> <span $result<="" span=""><span ;="" <="" span=""><span 82<="" span=""> }<span else<="" span=""><span {="" <="" span=""><span 83<="" span=""> <span echo<="" span=""> ""<span ;="" <="" span=""><span 84<="" span=""> <span exit<="" span=""><span ;="" <="" span=""><span 85<="" span=""> <span }="" <="" span=""><span 86<="" span=""> <span }="" <="" span=""><span 87<="" span="">
  20. <span 88<="" span=""> <span private<="" span=""> <span function<="" span=""> receiveEvent(<span $object<="" span=""><span )="" <="" span=""><span 89<="" span=""> <span {="" <="" span=""><span 90<="" span=""> <span $content<="" span=""> = ""<span ;="" <="" span=""><span 91<="" span=""> <span switch<="" span=""> (<span $object<="" span="">-><span event)="" <="" span=""><span 92<="" span=""> <span {="" <="" span=""><span 93<="" span=""> <span case<="" span=""> "subscribe":
  21. <span 94<="" span=""> <span $content<="" span=""> = "欢迎关注方倍工作室 "<span ;="" <="" span=""><span 95<="" span=""> <span $content<="" span=""> .= (!<span empty<="" span="">(<span $object<="" span="">->EventKey))?("\n来自二维码场景 ".<span str_replace<="" span="">("qrscene_","",<span $object<="" span="">->EventKey)):""<span ;="" <="" span=""><span 96<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 97<="" span=""> <span case<="" span=""> "unsubscribe":
  22. <span 98<="" span=""> <span $content<="" span=""> = "取消关注"<span ;="" <="" span=""><span 99<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 100<="" span=""> <span case<="" span=""> "SCAN":
  23. <span 101<="" span=""> <span $content<="" span=""> = "扫描场景 ".<span $object<="" span="">-><span eventkey;="" <="" span=""><span 102<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 103<="" span=""> <span case<="" span=""> "CLICK":
  24. <span 104<="" span=""> <span switch<="" span=""> (<span $object<="" span="">-><span eventkey)="" <="" span=""><span 105<="" span=""> <span {="" <="" span=""><span 106<="" span=""> <span case<="" span=""> "COMPANY":
  25. <span 107<="" span=""> <span $content<="" span=""> = "方倍工作室提供互联网相关产品与服务。"<span ;="" <="" span=""><span 108<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 109<="" span=""> <span default<="" span="">:
  26. <span 110<="" span=""> <span $content<="" span=""> = "点击菜单:".<span $object<="" span="">-><span eventkey;="" <="" span=""><span 111<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 112<="" span=""> <span }="" <="" span=""><span 113<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 114<="" span=""> <span case<="" span=""> "LOCATION":
  27. <span 115<="" span=""> <span $content<="" span=""> = "上传位置:纬度 ".<span $object<="" span="">->Latitude.";经度 ".<span $object<="" span="">-><span longitude;="" <="" span=""><span 116<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 117<="" span=""> <span default<="" span="">:
  28. <span 118<="" span=""> <span $content<="" span=""> = "receive a new event: ".<span $object<="" span="">-><span event;="" <="" span=""><span 119<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 120<="" span=""> <span }="" <="" span=""><span 121<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->transmitText(<span $object<="" span="">, <span $content<="" span=""><span );="" <="" span=""><span 122<="" span=""> <span return<="" span=""> <span $result<="" span=""><span ;="" <="" span=""><span 123<="" span=""> <span }="" <="" span=""><span 124<="" span="">
  29. <span 125<="" span=""> <span private<="" span=""> <span function<="" span=""> receiveText(<span $object<="" span=""><span )="" <="" span=""><span 126<="" span=""> <span {="" <="" span=""><span 127<="" span=""> <span $keyword<="" span=""> = <span trim<="" span="">(<span $object<="" span="">-><span content);="" <="" span=""><span 128<="" span=""> <span switch<="" span=""> (<span $keyword<="" span=""><span )="" <="" span=""><span 129<="" span=""> <span {="" <="" span=""><span 130<="" span=""> <span case<="" span=""> "文本":
  30. <span 131<="" span=""> <span $content<="" span=""> = "这是个文本消息"<span ;="" <="" span=""><span 132<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 133<="" span=""> <span case<="" span=""> "图文":
  31. <span 134<="" span=""> <span case<="" span=""> "单图文":
  32. <span 135<="" span=""> <span $content<="" span="">[] = <span array<="" span="">("Title"=>"单图文标题", "Description"=>"单图文内容", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"<span );="" <="" span=""><span 136<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 137<="" span=""> <span case<="" span=""> "多图文":
  33. <span 138<="" span=""> <span $content<="" span="">[] = <span array<="" span="">("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"<span );="" <="" span=""><span 139<="" span=""> <span $content<="" span="">[] = <span array<="" span="">("Title"=>"多图文2标题", "Description"=>"", "PicUrl"=>"http://d.hiphotos.bdimg.com/wisegame/pic/item/f3529822720e0cf3ac9f1ada0846f21fbe09aaa3.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"<span );="" <="" span=""><span 140<="" span=""> <span $content<="" span="">[] = <span array<="" span="">("Title"=>"多图文3标题", "Description"=>"", "PicUrl"=>"http://g.hiphotos.bdimg.com/wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"<span );="" <="" span=""><span 141<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 142<="" span=""> <span case<="" span=""> "音乐":
  34. <span 143<="" span=""> <span $content<="" span=""> = <span array<="" span="">("Title"=>"最炫民族风", "Description"=>"歌手:凤凰传奇", "MusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3", "HQMusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3"<span );="" <="" span=""><span 144<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 145<="" span=""> <span default<="" span="">:
  35. <span 146<="" span=""> <span $content<="" span=""> = "当前时间:".<span date<="" span="">("Y-m-d H:i:s",<span time<="" span=""><span ());="" <="" span=""><span 147<="" span=""> <span break<="" span=""><span ;="" <="" span=""><span 148<="" span=""> <span }="" <="" span=""><span 149<="" span=""> <span if<="" span="">(<span is_array<="" span="">(<span $content<="" span=""><span )){="" <="" span=""><span 150<="" span=""> <span if<="" span=""> (<span isset<="" span="">(<span $content<="" span="">[0]['PicUrl'<span ])){="" <="" span=""><span 151<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->transmitNews(<span $object<="" span="">, <span $content<="" span=""><span );="" <="" span=""><span 152<="" span=""> }<span else<="" span=""> <span if<="" span=""> (<span isset<="" span="">(<span $content<="" span="">['MusicUrl'<span ])){="" <="" span=""><span 153<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->transmitMusic(<span $object<="" span="">, <span $content<="" span=""><span );="" <="" span=""><span 154<="" span=""> <span }="" <="" span=""><span 155<="" span=""> }<span else<="" span=""><span {="" <="" span=""><span 156<="" span=""> <span $result<="" span=""> = <span $this<="" span="">->transmitText(<span $object<="" span="">, <span $content<="" span=""><span );="" <="" span=""><span 157<="" span=""> <span }="" <="" span=""><span 158<="" span=""> <span return<="" span=""> <span $result<="" span=""><span ;="" <="" span=""><span 159<="" span=""> <span }="" <="" span=""><span 160<="" span="">
  36. <span 161<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> receiveImage(</span><span $object<="" span=""></span><span )="" <="" span=""></span><span 162<="" span=""> </span><span {="" <="" span=""></span><span 163<="" span=""> </span><span $content<="" span=""> = </span><span array<="" span="">("MediaId"=></span><span $object<="" span="">-></span><span mediaid);="" <="" span=""></span><span 164<="" span=""> </span><span $result<="" span=""> = </span><span $this<="" span="">->transmitImage(</span><span $object<="" span="">, </span><span $content<="" span=""></span><span );="" <="" span=""></span><span 165<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 166<="" span=""> </span><span }="" <="" span=""></span><span 167<="" span="">
  37. </span><span 168<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> receiveLocation(</span><span $object<="" span=""></span><span )="" <="" span=""></span><span 169<="" span=""> </span><span {="" <="" span=""></span><span 170<="" span=""> </span><span $content<="" span=""> = "你发送的是位置,纬度为:".</span><span $object<="" span="">->Location_X.";经度为:".</span><span $object<="" span="">->Location_Y.";缩放级别为:".</span><span $object<="" span="">->Scale.";位置为:".</span><span $object<="" span="">-></span><span label;="" <="" span=""></span><span 171<="" span=""> </span><span $result<="" span=""> = </span><span $this<="" span="">->transmitText(</span><span $object<="" span="">, </span><span $content<="" span=""></span><span );="" <="" span=""></span><span 172<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 173<="" span=""> </span><span }="" <="" span=""></span><span 174<="" span="">
  38. </span><span 175<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> receiveVoice(</span><span $object<="" span=""></span><span )="" <="" span=""></span><span 176<="" span=""> </span><span {="" <="" span=""></span><span 177<="" span=""> </span><span if<="" span=""> (</span><span empty<="" span="">(</span><span $object<="" span="">-></span><span recognition)){="" <="" span=""></span><span 178<="" span=""> </span><span $content<="" span=""> = </span><span array<="" span="">("MediaId"=></span><span $object<="" span="">-></span><span mediaid);="" <="" span=""></span><span 179<="" span=""> </span><span $result<="" span=""> = </span><span $this<="" span="">->transmitVoice(</span><span $object<="" span="">, </span><span $content<="" span=""></span><span );="" <="" span=""></span><span 180<="" span=""> }</span><span else<="" span=""></span><span {="" <="" span=""></span><span 181<="" span=""> </span><span $content<="" span=""> = "你刚才说的是:".</span><span $object<="" span="">-></span><span recognition;="" <="" span=""></span><span 182<="" span=""> </span><span $result<="" span=""> = </span><span $this<="" span="">->transmitText(</span><span $object<="" span="">, </span><span $content<="" span=""></span><span );="" <="" span=""></span><span 183<="" span=""> </span><span }="" <="" span=""></span><span 184<="" span="">
  39. </span><span 185<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 186<="" span=""> </span><span }="" <="" span=""></span><span 187<="" span="">
  40. </span><span 188<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> receiveVideo(</span><span $object<="" span=""></span><span )="" <="" span=""></span><span 189<="" span=""> </span><span {="" <="" span=""></span><span 190<="" span=""> </span><span $content<="" span=""> = </span><span array<="" span="">("MediaId"=></span><span $object<="" span="">->MediaId, "ThumbMediaId"=></span><span $object<="" span="">->ThumbMediaId, "Title"=>"", "Description"=>""</span><span );="" <="" span=""></span><span 191<="" span=""> </span><span $result<="" span=""> = </span><span $this<="" span="">->transmitVideo(</span><span $object<="" span="">, </span><span $content<="" span=""></span><span );="" <="" span=""></span><span 192<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 193<="" span=""> </span><span }="" <="" span=""></span><span 194<="" span="">
  41. </span><span 195<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> receiveLink(</span><span $object<="" span=""></span><span )="" <="" span=""></span><span 196<="" span=""> </span><span {="" <="" span=""></span><span 197<="" span=""> </span><span $content<="" span=""> = "你发送的是链接,标题为:".</span><span $object<="" span="">->Title.";内容为:".</span><span $object<="" span="">->Description.";链接地址为:".</span><span $object<="" span="">-></span><span url;="" <="" span=""></span><span 198<="" span=""> </span><span $result<="" span=""> = </span><span $this<="" span="">->transmitText(</span><span $object<="" span="">, </span><span $content<="" span=""></span><span );="" <="" span=""></span><span 199<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 200<="" span=""> </span><span }="" <="" span=""></span><span 201<="" span="">
  42. </span><span 202<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> transmitText(</span><span $object<="" span="">, </span><span $content<="" span=""></span><span )="" <="" span=""></span><span 203<="" span=""> </span><span {="" <="" span=""></span><span 204<="" span=""> </span><span $texttpl<="" span=""> = "</span><span <xml="">
  43. </span><span 205<="" span=""> </span><span <tousername="">
  44. </span><!--[CDATA[%s]]--><span 206<="" span=""> </span><span <fromusername="">
  45. </span><!--[CDATA[%s]]--><span 207<="" span=""> </span><span <createtime="">%s
  46. </span><span 208<="" span=""> </span><span <msgtype="">
  47. </span><!--[CDATA[text]]--><span 209<="" span=""> </span><span <content="">
  48. </span><!--[CDATA[%s]]--><span 210<="" span=""> "</span><span ;="" <="" span=""></span><span 211<="" span=""> </span><span $result<="" span=""> = </span><span sprintf<="" span="">(</span><span $texttpl<="" span="">, </span><span $object<="" span="">->FromUserName, </span><span $object<="" span="">->ToUserName, </span><span time<="" span="">(), </span><span $content<="" span=""></span><span );="" <="" span=""></span><span 212<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 213<="" span=""> </span><span }="" <="" span=""></span><span 214<="" span="">
  49. </span><span 215<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> transmitImage(</span><span $object<="" span="">, </span><span $imagearray<="" span=""></span><span )="" <="" span=""></span><span 216<="" span=""> </span><span {="" <="" span=""></span><span 217<="" span=""> </span><span $itemtpl<="" span=""> = "</span><span <image="">
  50. </span><span 218<="" span=""> </span><span <mediaid="">
  51. </span><!--[CDATA[%s]]--><span 219<="" span=""> "</span><span ;="" <="" span=""></span><span 220<="" span="">
  52. </span><span 221<="" span=""> </span><span $item_str<="" span=""> = </span><span sprintf<="" span="">(</span><span $itemtpl<="" span="">, </span><span $imagearray<="" span="">['MediaId'</span><span ]);="" <="" span=""></span><span 222<="" span="">
  53. </span><span 223<="" span=""> </span><span $texttpl<="" span=""> = "</span><span <xml="">
  54. </span><span 224<="" span=""> </span><span <tousername="">
  55. </span><!--[CDATA[%s]]--><span 225<="" span=""> </span><span <fromusername="">
  56. </span><!--[CDATA[%s]]--><span 226<="" span=""> </span><span <createtime="">%s
  57. </span><span 227<="" span=""> </span><span <msgtype="">
  58. </span><!--[CDATA[image]]--><span 228<="" span=""> </span><span $item_str<="" span="">
  59. </span><span 229<="" span=""> "</span><span ;="" <="" span=""></span><span 230<="" span="">
  60. </span><span 231<="" span=""> </span><span $result<="" span=""> = </span><span sprintf<="" span="">(</span><span $texttpl<="" span="">, </span><span $object<="" span="">->FromUserName, </span><span $object<="" span="">->ToUserName, </span><span time<="" span=""></span><span ());="" <="" span=""></span><span 232<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 233<="" span=""> </span><span }="" <="" span=""></span><span 234<="" span="">
  61. </span><span 235<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> transmitVoice(</span><span $object<="" span="">, </span><span $voicearray<="" span=""></span><span )="" <="" span=""></span><span 236<="" span=""> </span><span {="" <="" span=""></span><span 237<="" span=""> </span><span $itemtpl<="" span=""> = "</span><span <voice="">
  62. </span><span 238<="" span=""> </span><span <mediaid="">
  63. </span><!--[CDATA[%s]]--><span 239<="" span=""> "</span><span ;="" <="" span=""></span><span 240<="" span="">
  64. </span><span 241<="" span=""> </span><span $item_str<="" span=""> = </span><span sprintf<="" span="">(</span><span $itemtpl<="" span="">, </span><span $voicearray<="" span="">['MediaId'</span><span ]);="" <="" span=""></span><span 242<="" span="">
  65. </span><span 243<="" span=""> </span><span $texttpl<="" span=""> = "</span><span <xml="">
  66. </span><span 244<="" span=""> </span><span <tousername="">
  67. </span><!--[CDATA[%s]]--><span 245<="" span=""> </span><span <fromusername="">
  68. </span><!--[CDATA[%s]]--><span 246<="" span=""> </span><span <createtime="">%s
  69. </span><span 247<="" span=""> </span><span <msgtype="">
  70. </span><!--[CDATA[voice]]--><span 248<="" span=""> </span><span $item_str<="" span="">
  71. </span><span 249<="" span=""> "</span><span ;="" <="" span=""></span><span 250<="" span="">
  72. </span><span 251<="" span=""> </span><span $result<="" span=""> = </span><span sprintf<="" span="">(</span><span $texttpl<="" span="">, </span><span $object<="" span="">->FromUserName, </span><span $object<="" span="">->ToUserName, </span><span time<="" span=""></span><span ());="" <="" span=""></span><span 252<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 253<="" span=""> </span><span }="" <="" span=""></span><span 254<="" span="">
  73. </span><span 255<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> transmitVideo(</span><span $object<="" span="">, </span><span $videoarray<="" span=""></span><span )="" <="" span=""></span><span 256<="" span=""> </span><span {="" <="" span=""></span><span 257<="" span=""> </span><span $itemtpl<="" span=""> = "</span><span <video="">
  74. </span><span 258<="" span=""> </span><span <mediaid="">
  75. </span><!--[CDATA[%s]]--><span 259<="" span=""> </span><span <thumbmediaid="">
  76. </span><!--[CDATA[%s]]--><span 260<="" span=""> </span><span <title="">
  77. </span><!--[CDATA[%s]]--><span 261<="" span=""> </span><span <description="">
  78. </span><!--[CDATA[%s]]--><span 262<="" span=""> "</span><span ;="" <="" span=""></span><span 263<="" span="">
  79. </span><span 264<="" span=""> </span><span $item_str<="" span=""> = </span><span sprintf<="" span="">(</span><span $itemtpl<="" span="">, </span><span $videoarray<="" span="">['MediaId'], </span><span $videoarray<="" span="">['ThumbMediaId'], </span><span $videoarray<="" span="">['Title'], </span><span $videoarray<="" span="">['Description'</span><span ]);="" <="" span=""></span><span 265<="" span="">
  80. </span><span 266<="" span=""> </span><span $texttpl<="" span=""> = "</span><span <xml="">
  81. </span><span 267<="" span=""> </span><span <tousername="">
  82. </span><!--[CDATA[%s]]--><span 268<="" span=""> </span><span <fromusername="">
  83. </span><!--[CDATA[%s]]--><span 269<="" span=""> </span><span <createtime="">%s
  84. </span><span 270<="" span=""> </span><span <msgtype="">
  85. </span><!--[CDATA[video]]--><span 271<="" span=""> </span><span $item_str<="" span="">
  86. </span><span 272<="" span=""> "</span><span ;="" <="" span=""></span><span 273<="" span="">
  87. </span><span 274<="" span=""> </span><span $result<="" span=""> = </span><span sprintf<="" span="">(</span><span $texttpl<="" span="">, </span><span $object<="" span="">->FromUserName, </span><span $object<="" span="">->ToUserName, </span><span time<="" span=""></span><span ());="" <="" span=""></span><span 275<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 276<="" span=""> </span><span }="" <="" span=""></span><span 277<="" span="">
  88. </span><span 278<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> transmitNews(</span><span $object<="" span="">, </span><span $newsarray<="" span=""></span><span )="" <="" span=""></span><span 279<="" span=""> </span><span {="" <="" span=""></span><span 280<="" span=""> </span><span if<="" span="">(!</span><span is_array<="" span="">(</span><span $newsarray<="" span=""></span><span )){="" <="" span=""></span><span 281<="" span=""> </span><span return<="" span=""></span><span ;="" <="" span=""></span><span 282<="" span=""> </span><span }="" <="" span=""></span><span 283<="" span=""> </span><span $itemtpl<="" span=""> = "</span><span <item="">
  89. </span><span 284<="" span=""> </span><span <title="">
  90. </span><!--[CDATA[%s]]--><span 285<="" span=""> </span><span <description="">
  91. </span><!--[CDATA[%s]]--><span 286<="" span=""> </span><span <picurl="">
  92. </span><!--[CDATA[%s]]--><span 287<="" span=""> </span><span <url="">
  93. </span><!--[CDATA[%s]]--><span 288<="" span=""> </span><span <="" item="">
  94. </span><span 289<="" span=""> "</span><span ;="" <="" span=""></span><span 290<="" span=""> </span><span $item_str<="" span=""> = ""</span><span ;="" <="" span=""></span><span 291<="" span=""> </span><span foreach<="" span=""> (</span><span $newsarray<="" span=""> </span><span as<="" span=""> </span><span $item<="" span=""></span><span ){="" <="" span=""></span><span 292<="" span=""> </span><span $item_str<="" span=""> .= </span><span sprintf<="" span="">(</span><span $itemtpl<="" span="">, </span><span $item<="" span="">['Title'], </span><span $item<="" span="">['Description'], </span><span $item<="" span="">['PicUrl'], </span><span $item<="" span="">['Url'</span><span ]);="" <="" span=""></span><span 293<="" span=""> </span><span }="" <="" span=""></span><span 294<="" span=""> </span><span $newstpl<="" span=""> = "</span><span <xml="">
  95. </span><span 295<="" span=""> </span><span <tousername="">
  96. </span><!--[CDATA[%s]]--><span 296<="" span=""> </span><span <fromusername="">
  97. </span><!--[CDATA[%s]]--><span 297<="" span=""> </span><span <createtime="">%s
  98. </span><span 298<="" span=""> </span><span <msgtype="">
  99. </span><!--[CDATA[news]]--><span 299<="" span=""> </span><span <content="">
  100. </span><!--[CDATA[]]--><span 300<="" span=""> </span><span %s<="" articlecount="">
  101. </span><span 301<="" span=""> </span><span <="" span=""></span><span 302<="" span=""> </span><span $item_str<="" span=""></span><span <="" articles="">
  102. </span><span 303<="" span=""> "</span><span ;="" <="" span=""></span><span 304<="" span="">
  103. </span><span 305<="" span=""> </span><span $result<="" span=""> = </span><span sprintf<="" span="">(</span><span $newstpl<="" span="">, </span><span $object<="" span="">->FromUserName, </span><span $object<="" span="">->ToUserName, </span><span time<="" span="">(), </span><span count<="" span="">(</span><span $newsarray<="" span=""></span><span ));="" <="" span=""></span><span 306<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 307<="" span=""> </span><span }="" <="" span=""></span><span 308<="" span="">
  104. </span><span 309<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> transmitMusic(</span><span $object<="" span="">, </span><span $musicarray<="" span=""></span><span )="" <="" span=""></span><span 310<="" span=""> </span><span {="" <="" span=""></span><span 311<="" span=""> </span><span $itemtpl<="" span=""> = "</span><span <music="">
  105. </span><span 312<="" span=""> </span><span <title="">
  106. </span><!--[CDATA[%s]]--><span 313<="" span=""> </span><span <description="">
  107. </span><!--[CDATA[%s]]--><span 314<="" span=""> </span><span <musicurl="">
  108. </span><!--[CDATA[%s]]--><span 315<="" span=""> </span><span <hqmusicurl="">
  109. </span><!--[CDATA[%s]]--><span 316<="" span=""> "</span><span ;="" <="" span=""></span><span 317<="" span="">
  110. </span><span 318<="" span=""> </span><span $item_str<="" span=""> = </span><span sprintf<="" span="">(</span><span $itemtpl<="" span="">, </span><span $musicarray<="" span="">['Title'], </span><span $musicarray<="" span="">['Description'], </span><span $musicarray<="" span="">['MusicUrl'], </span><span $musicarray<="" span="">['HQMusicUrl'</span><span ]);="" <="" span=""></span><span 319<="" span="">
  111. </span><span 320<="" span=""> </span><span $texttpl<="" span=""> = "</span><span <xml="">
  112. </span><span 321<="" span=""> </span><span <tousername="">
  113. </span><!--[CDATA[%s]]--><span 322<="" span=""> </span><span <fromusername="">
  114. </span><!--[CDATA[%s]]--><span 323<="" span=""> </span><span <createtime="">%s
  115. </span><span 324<="" span=""> </span><span <msgtype="">
  116. </span><!--[CDATA[music]]--><span 325<="" span=""> </span><span $item_str<="" span="">
  117. </span><span 326<="" span=""> "</span><span ;="" <="" span=""></span><span 327<="" span="">
  118. </span><span 328<="" span=""> </span><span $result<="" span=""> = </span><span sprintf<="" span="">(</span><span $texttpl<="" span="">, </span><span $object<="" span="">->FromUserName, </span><span $object<="" span="">->ToUserName, </span><span time<="" span=""></span><span ());="" <="" span=""></span><span 329<="" span=""> </span><span return<="" span=""> </span><span $result<="" span=""></span><span ;="" <="" span=""></span><span 330<="" span=""> </span><span }="" <="" span=""></span><span 331<="" span="">
  119. </span><span 332<="" span=""> </span><span private<="" span=""> </span><span function<="" span=""> logger(</span><span $log_content<="" span=""></span><span )="" <="" span=""></span><span 333<="" span=""> </span><span {="" <="" span=""></span><span 334<="" span=""> </span><span if<="" span="">(</span><span isset<="" span="">(</span><span $_server<="" span="">['HTTP_APPNAME'])){ </span><span <="" span=""></span><span sae<="" span="">
  120. </span><span 335<="" span=""> sae_set_display_errors(</span><span false<="" span=""></span><span );="" <="" span=""></span><span 336<="" span=""> sae_debug(</span><span $log_content<="" span=""></span><span );="" <="" span=""></span><span 337<="" span=""> sae_set_display_errors(</span><span true<="" span=""></span><span );="" <="" span=""></span><span 338<="" span=""> }</span><span else<="" span=""> </span><span if<="" span="">(</span><span $_server<="" span="">['REMOTE_ADDR'] != "127.0.0.1"){ </span><span <="" span=""></span><span local<="" span="">
  121. </span><span 339<="" span=""> </span><span $max_size<="" span=""> = 10000</span><span ;="" <="" span=""></span><span 340<="" span=""> </span><span $log_filename<="" span=""> = "log.xml"</span><span ;="" <="" span=""></span><span 341<="" span=""> </span><span if<="" span="">(</span><span file_exists<="" span="">(</span><span $log_filename<="" span="">) and (</span><span abs<="" span="">(</span><span filesize<="" span="">(</span><span $log_filename<="" span="">)) > </span><span $max_size<="" span="">)){</span><span unlink<="" span="">(</span><span $log_filename<="" span=""></span><span );}="" <="" span=""></span><span 342<="" span=""> </span><span file_put_contents<="" span="">(</span><span $log_filename<="" span="">, </span><span date<="" span="">('H:i:s')." ".</span><span $log_content<="" span="">."\r\n",</span><span file_append);="" <="" span=""></span><span 343<="" span=""> </span><span }="" <="" span=""></span><span 344<="" span=""> </span><span }="" <="" span=""></span><span 345<="" span=""> </span><span }="" <="" span=""></span><span 346<="" span="">
  122. </span><span 347<="" span="">
  123. </span><span 348<="" span=""> ?></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/741657.htmlTechArticle官方提供的SDK只有一个文本消息功能,我们将所有消息的消息类型及事件响应都整理了进来,并且加入日志记录,代码如下: ? ("TOKEN", "w...

人气教程排行