关于微信公众号/服务号自动回消息问题(python)
<p>天呐!!!!!真的忙活了好久,终于在将近凌晨两点的时候解决了问题。</p><p> </p>
<p><strong><span style="font-size: 14pt">进入正题。</span></strong></p>
<p> </p>
<p><span style="font-size: 14pt">是的,没有错,<strong>如果你怀疑微信那边给的示例有问题那是对的</strong>,至少其给的示例在python3上有问题(我测试是如此哈, python3.9),需要改动一下填充方式,不能按照官方示例去填充,否则最后的AES加密结果会有问题。那么废话不多说,我把我改后的代码附下:</span></p>
<div class="cnblogs_Highlighter sh-gutter">
<pre class="brush:python;gutter:true;collapse:false">random_str = self .get_random_str().encode("utf-8" )
msg_bytes = text.encode("utf-8" )
msg_len_bytes = struct.pack('>I' , len (msg_bytes))
full_str = (
random_str +
msg_len_bytes +
msg_bytes +
appid.encode("utf-8" )
)
padded_data = pad(full_str, AES.block_size)<br><br>
cryptor = AES.new(self .key, self .mode, self .key[:16 ])<br>
ciphertext = cryptor.encrypt(padded_data)</pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 14pt">其中上面的text为需要向微信返回的内容,类似: "<xml><ToUserName><!]></ToUserName><FromUserName><!]></FromUserName>........</xml>"</span></strong></span></p>
<p> </p>
<p> </p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 14pt">好的,然后其他的东西(指官方示例)实际上就是encode和decode操作操作(其实也就说明Java的示例理论上来说没问题,虽然我会Java,但我懒得去研究,哈哈哈,python的flask一下就很好上线测试,代码写的也不用这么多(不是 )</span></strong></span></p>
<p> </p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 14pt">鸣谢AI帮我把Java的代码快速的转成Python代码,因此最终才解决QWQ</span></strong></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 14pt">好了,结算信息-------------------------------></span></strong></span></p>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 48px"><strong>感谢你阅读我的文章,感恩!</strong></span></p>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 13px"><strong>如有其他问题,可以私信我交流 ps:当然,最好是你实在解决不了:)</strong></span></p>
<p><span style="font-size: 14pt"> </span></p>
<p> </p><br><br>
来源:https://www.cnblogs.com/skypeng/p/19134152
頁:
[1]