利源投资 發表於 2025-10-11 02:15:00

关于微信公众号/服务号自动回消息问题(python)

<p>天呐!!!!!真的忙活了好久,终于在将近凌晨两点的时候解决了问题。</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 14pt">进入正题。</span></strong></p>
<p>&nbsp;</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&nbsp;= self .get_random_str().encode("utf-8" )
msg_bytes&nbsp;= text.encode("utf-8" )
msg_len_bytes&nbsp;= struct.pack('&gt;I' ,&nbsp;len (msg_bytes))

full_str&nbsp;= (
    random_str&nbsp;+
    msg_len_bytes&nbsp;+
    msg_bytes&nbsp;+
    appid.encode("utf-8" )
)

padded_data&nbsp;= pad(full_str, AES.block_size)<br><br>
cryptor&nbsp;= AES.new(self .key,&nbsp;self .mode,&nbsp;self .key[:16 ])<br>
ciphertext&nbsp;= cryptor.encrypt(padded_data)</pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 14pt">其中上面的text为需要向微信返回的内容,类似: "&lt;xml&gt;&lt;ToUserName&gt;&lt;!]&gt;&lt;/ToUserName&gt;&lt;FromUserName&gt;&lt;!]&gt;&lt;/FromUserName&gt;........&lt;/xml&gt;"</span></strong></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 14pt">好的,然后其他的东西(指官方示例)实际上就是encode和decode操作操作(其实也就说明Java的示例理论上来说没问题,虽然我会Java,但我懒得去研究,哈哈哈,python的flask一下就很好上线测试,代码写的也不用这么多(不是&nbsp; &nbsp; &nbsp;)</span></strong></span></p>
<p>&nbsp;</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>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 14pt">好了,结算信息-------------------------------&gt;</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>如有其他问题,可以私信我交流&nbsp; &nbsp; ps:当然,最好是你实在解决不了:)</strong></span></p>
<p><span style="font-size: 14pt">&nbsp;</span></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/skypeng/p/19134152
頁: [1]
查看完整版本: 关于微信公众号/服务号自动回消息问题(python)