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 web from 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‘, ) class Handle(object): def GET(self): try: data = web.input() if len(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) if hashcode == signature: return echostr else: return "" except Exception as Argument: return Argument if __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
......我再找找原因