8-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_开发者基本配置_1)

https://www.cnblogs.com/yangfengwu/p/11062034.html





设置一下IP白名单:   填写自己的服务器的IP地址




 是不是不可以哈,有多少人都会入这个坑........官方呀,,,唉

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5







他是说,你这个



不是直接随意写个就完了,,他是会用http访问你里面的内容,你内容里面写的Token要和你网页上写的一样,然后返回给它,这样的话就OK了

所以需要自己在服务器上写一些程序

官方给了python 的参考程序

因为咱在数据篇的时候已经用了python 了,所以咱先用python 实现,然后呢,咱再用php实现

https://www.cnblogs.com/yangfengwu/category/1410242.html


前面准备了这么多知识,现在正在一点点的使用起来...整个教程真是不太好搞,,,涉及的真是太多,我在做教程之前花费了好多时间去总结......

然后才有了基础篇,升级篇,数据篇,安全篇,最后才是微信小程序篇.

总是有人给我抱怨说,为什么没有一篇直接先安装整个用到的东西的,我总会说,你直接看视频教程一节一节的看就可以,每一节用到的所有东西都放在了每一节视频教程里面.

我的教程涉及的太多太多,我这样子做是最好的方式了.


对了还有一件事情: 我对于我自己的学习能力是完全肯定的,只不过是经过长期(2~3年)的自学,形成了我现在的自学能力(学习知识的思维)..以前我从来都没有想过为什么我学一样东西总是那么的快,我以前还认为只有经过长时间的自学才能形成惊人的自学能力 , 后来偶尔读了一篇文章,我才知道我为什么学东西又快又好...原来确实有规律可寻,只不过我是长时间潜移默化形成的这种学习思维......

这是以前我写的一篇日记

https://www.cnblogs.com/yangfengwu/p/11062408.html

先说一下我学东西哈:我每学一个知识点,都会力求让自己给自己讲明白这个知识点,如果给自己讲不明白,就再接着看这个知识点,然后就是一直循环,直至自己给自己说,我确确实实完全明白了这个知识点...我大学里面大二以后都是这样自学过来的..孤独,煎熬,痛苦,但会一直坚持着,因为....我也不知道为什么我能一直坚持下去,当所有人都不认可我的时候,当很多人都不看好我的时候,当很多人开始嘲讽我的时候......我越是那么的坚持....算了,都是些陈年往事


大家百度下    费曼学习法    世界公认最好的学习法     我是100%认同的

https://baike.baidu.com/item/%E7%90%86%E6%9F%A5%E5%BE%B7%C2%B7%E8%B4%B9%E6%9B%BC/2149327?fromtitle=%E8%B4%B9%E6%9B%BC&fromid=433887&fr=aladdin生平

https://jingyan.baidu.com/article/4ae03de3cf103c3eff9e6bb6.html



好了,,接着说

咱打开咱数据篇开发python的软件,新建一个工程,把官方给的例子复制过去

实际上就是用python实现的Web服务器,然后如果收到get指令,解析一下微信get指令(就是咱点击提交的时候微信自己给咱发的get信息,get的地址就是咱上面填写的地址)里面携带的信息,然后返回信息...完了



可以按照官方的来,,新建一个main.py  用来测试Web服务器是不是可以



咱让软件安装一下Web模块...可以参考数据篇的https://www.bilibili.com/video/av55668802

还有就是这个https://www.cnblogs.com/yangfengwu/p/10177261.html






 安装失败了




在pycharm界面按alt+F12调出命令行窗口






具体看http://webpy.org/docs/0.3/tutorial



这样就证明可以了 , 这个程序是可用的

然后接着写






import sys

sys.path.append(sys.path[0]+'/venv/Lib/site-packages')

import webfrom handle import Handle

urls = (

    '/wx','Handle',

)if__name__ =='__main__':

    app = web.application(urls, globals())

    app.run()


版本问题报了个错



 3.6版本的还有个地方


需要加括号


但是还有问题...导入不了这个模块



 ....先不找解决方案,我就来个直接的




import sys

sys.path.append(sys.path[0]+'/venv/Lib/site-packages')

import web

import hashlib

urls = (

    '/wx','Handle',

)classHandle(object):

    def GET(self):

        try:

            data = web.input()

            iflen(data) ==0:

                return"hello, this is handle view"            signature = data.signature

            timestamp = data.timestamp

            nonce = data.nonce

            echostr = data.echostr

            token ="xxxx" #请按照公众平台官网\基本配置中信息填写

            list = [token, timestamp, nonce]

            list.sort()

            sha1 = hashlib.sha1()

            map(sha1.update, list)

            hashcode = sha1.hexdigest()

            print ("handle/GET func: hashcode, signature: ", hashcode, signature)

            ifhashcode == signature:

                return echostr

            else:

                return""        except Exception as Argument:

            return Argumentif__name__ =='__main__':

    app = web.application(urls, globals())

    app.run()



 还有一点



然后把工程放到云端去,最好先压缩再上传,否则会比较慢



记得关掉以前的






报错了




最好用软件打开修改,,,否则有可能由于别的记事本文件的编码和缩进问题造成代码看着没有问题,实质上内部编码上就是有问题






 把原来的

yield next(seq)

改为

try:

    yield next(seq)

except StopIteration:

    return


注意一下缩进








如果还有问题,自己先在自己电脑本地修改测试,然后再放到云端



 然后


还是有问题



 计算出来的两个值不一样......................

handle/GET func: hashcode,signature: da39a3ee5e6b4b0d3255bfef95601890afd80709

494b4ed79eb454e574421526b8a053799075299f

223.166.222.112:49585 - - [21/Jun/2019 07:54:58] "HTTP/1.1 GET /wx" - 200 OK


hashcode = da39a3ee5e6b4b0d3255bfef95601890afd80709

signature = 494b4ed79eb454e574421526b8a053799075299f


......我再找找原因


可以了,不过需要修改下代码

修改了一下代码

import sys

sys.path.append(sys.path[0]+'/venv/Lib/site-packages')

import web

import hashlib

urls = (

    '/wx','Handle',

)classHandle(object):

    def GET(self):

        try:

            wechat_data = web.input()

            signature = wechat_data['signature']

            timestamp = wechat_data['timestamp']

            nonce = wechat_data['nonce']

            echostr = wechat_data['echostr']

            token ='mnifdv'            check_list = [token, timestamp, nonce]

            check_list.sort()

            s1 = hashlib.sha1()

            s1.update(''.join(check_list).encode())

            hashcode = s1.hexdigest()

            print("handle/GET func: hashcode, signature:{0} {1}".format(hashcode, signature))

            ifhashcode == signature:

                return echostr

            else:

                return""        except Exception as Argument:

            return Argument"""classHandle(object):

    def GET(self):

        try:

            data = web.input()

            iflen(data) ==0:

                return"hello, this is handle view"            signature = data.signature

            timestamp = data.timestamp

            nonce = data.nonce

            echostr = data.echostr

            token ="mnifdv" #请按照公众平台官网\基本配置中信息填写

            list = [token, timestamp, nonce]

            list.sort()

            sha1 = hashlib.sha1()

            map(sha1.update, list)

            hashcode = sha1.hexdigest()

            print("signature=%s\r\n", signature)

            print("timestamp=%s\r\n", timestamp)

            print("nonce=%s\r\n", nonce)

            print("echostr=%s\r\n", echostr)

            print("hashcode=%s\r\n", hashcode)

            ifhashcode == signature:

                return echostr

            else:

                return""        except Exception as Argument:

            return Argument"""if__name__ =='__main__':

    app = web.application(urls, globals())

    app.run()



其实我是直接百度的    微信token验证  python   因为我看了程序,实质就是微信会先用hash   通过


token, timestamp, nonce  用 hash 算出来 signature

咱也用他的算法,算出来

hashcode  然后比较一下两个一不一样...如果一样就返回 echostr

因为就是这样算的...所以如果算不对,肯定是程序哪地方获取数据的方式,或者计算时候的一些小细节影响了计算数据...

别人呢一定研究过,碰到过类似的问题,所以直接百度就好

替换掉原来的main.py




好了,这节先自己消化,下一节 咱用php实现

https://www.cnblogs.com/yangfengwu/p/11066036.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容