0x01-微信公众号开发(环境,调试)

1、公众号测试后台环境
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

2、公众号信息分析

公众号接收消息格式(从微信发送到公众号)
1)文本信息
TextMessage(OrderedDict([(u’ToUserName’,u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468725197′), (u’MsgType’, u’text’), (u’Content’, u’hajj’), (u’MsgId’, u’6308126688332557493′)]))
2)取消关注
UnsubscribeEvent(OrderedDict([(u’ToUserName’, u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468725643′), (u’MsgType’, u’event’), (u’Event’, u’unsubscribe’), (u’EventKey’, None)]))
3)关注
SubscribeEvent(OrderedDict([(u’ToUserName’, u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468725754′), (u’MsgType’, u’event’), (u’Event’, u’subscribe’), (u’EventKey’, None)]))
4)图片信息(通过菜单“图片”或者通过“拍摄”图片)
ImageMessage(OrderedDict([(u’ToUserName’, u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468725820′), (u’MsgType’, u’image’), (u’PicUrl’, u’http://mmbiz.qpic.cn/mmbiz/dZ4QUHDiapeDjCYJScoEstA8LicPjMIiaBicIic5ekHM1VMazH9o1pru1SHvIyqKb20ibrADQK8lGagWadGIzfWvRGyg/0′), (u’MsgId’, u’6308129364097182966′), (u’MediaId’, u’i1OO6bmBGepdlf7LHVq1Y-PkIk7fstCRCW134VN5yYQlBfjz16Y4kDdAPQaR1HUS’)]))
5)视频信息 (通过菜单“图片”上传视频,或者通过“拍摄”的视频)
VideoMessage(OrderedDict([(u’ToUserName’, u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468725997′), (u’MsgType’, u’video’), (u’MediaId’, u’n1ZEh8PnywSrcErQN0vCfGbNt3wtyI2f10ikI7f4jVPXTqv-TkYrAoaaPoqLgsDP’), (u’ThumbMediaId’, u’9lXrBnhZWzIZwyWop274OuQTi6EBLzc_cyuCKhVN7m_JC0peN5jYdvAySZBjXjbh’), (u’MsgId’, u’6308130124306394400′)]))
6)短视频信息(通过菜单“短视频”)
ShortVideoMessage(OrderedDict([(u’ToUserName’, u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468726012′), (u’MsgType’, u’shortvideo’), (u’MediaId’, u’EqTgpIUOVztQuIFMfAHMZhNUEgOlR0gLAQnjbn0avQdHElBnJbTErARdIGSdl-7t’), (u’ThumbMediaId’, u’fbDj18A8XnGfCoWJ2zJaXEBG_4abwM9DbMo1XlLJ_XCONkEvgNEZxvn4GLUR9-zK’), (u’MsgId’, u’6308130188730903844′)]))
7)位置信息(菜单“位置”)
LocationMessage(OrderedDict([(u’ToUserName’, u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468726187′), (u’MsgType’, u’location’), (u’Location_X’, u’40.059185′), (u’Location_Y’, u’116.416283′), (u’Scale’, u’15’), (u’Label’, u’\u5317\u4eac\u5e02\u660c\u5e73\u533a\u7acb\u6c64\u8def186\u53f7\u9f99\u5fb7\u5e7f\u573aF1\u5c42′), (u’MsgId’, u’6308130940350180678′)]))
8)连接信息(菜单“收藏”)
LinkMessage(OrderedDict([(u’ToUserName’, u’gh_237b9488f76b’), (u’FromUserName’, u’ok2hTwT4sdRfdIwXWxwse3GBqukM’), (u’CreateTime’, u’1468726270′), (u’MsgType’, u’link’), (u’Title’, u’\u4ee8\u5927\u5956\u72ec\u5ba0\u4e00\u4eba \u79bb\u4e0d\u5f00\u575a\u6301\u4e0e\u7528\u5fc3′), (u’Description’, u’\u6700\u8fd1\uff0c\u8fbd\u9633\u6587\u5723\u8def\u9500\u552e\u5385\u9891\u9891\u5f97\u5e78\u8fd0\u4e4b\u795e\u5782\u9752\u30026\u65e5\u5185\uff0c\u8be5\u5385\u4e0d\u4ec5\u964d\u843d\u4e86\u4e00\u4e2a25\u4e07\u5143\u5168\u56fd\u7d2f\u79ef\u5956\uff0c\u8fd8\u5206\u522b\u98d8\u843d\u4e0b\u4e00\u4e2a5.’), (u’Url’, u’http://mp.weixin.qq.com/s?__biz=MzAwMzUxMjQxNg==&mid=2649836741&idx=3&sn=be02636fad0c056a337d196e6cdc6bee&scene=0#rd’), (u’MsgId’, u’6308131296832466258′)]))
9)名片信息(不支持)

 

Android Apk实时写入信息用于下载渠道统计

场景1:为了能识别当前打开的应用是从哪个渠道下载的,app应用打开使用时需要给服务器上传渠道信息,为了实现该功能:
方案1:不同的渠道可能需要打不同的apk包(包含渠道信息)
缺点:如果渠道多的话不容易维护,而且发布不同的包工作量有点大
方案2:实时打包apk,将渠道信息写入apk

场景2:通过不同的营销页面下载apk后,当用户打开apk的时候想让用户首先看到他下载时的营销页面以便继续下一步的操作(领取红包等操作),使用户从看到营销页,到下载app、打开app继续操作过程平滑过渡,不产生割裂感

实现方式:
下载服务实时修改apk信息,如架设服务http://test.net/download_apk?src=渠道1,其中的src值可以随便设定,服务程序将src值写入到apk中供用户下载,apk中对src值进行处理即可。

源码示例:demo_Android Apk实时写入信息用于下载渠道统计.zip
动态写入Apk.docx – 原理
源码 – Android apk信息读取源码、java写入信息源码
readtest.apk-(Android apk信息读取源码)生成程序
writetest.apk-(java写入信息源码)生成程序,用于参考写java服务
writetest.py  –  用python写的信息写入程序,用户参考写python服务

后续假设在线测试demo…