服务器设置url时,可以设置占位符的url
关于“授权事件接收URL”的填写规则的疑问?考虑到服务需要接收大量的授权公众号/小程序接的消息,为了便于做业务分流和业务隔离,必须提供如下形式的 url:www.abc.com/aaa/$APPID$/bbb/cgi,其中$APPID$在实际推送时会替换成所属的已授权公众号/小程序接的 appid。 请问文档中这句话意思是url中可以带占位符$APPID吗?如url为:https://www.abc.com/$APPID/bbb/chi,用户请求授权后,微信服务器会自动替换为https://www.abc.com/真实的公众号或小程序appId/bbb/chi??
11-28肯定是代码问题,可以参考微信调试工具(https://developers.weixin.qq.com/apiExplorer?type=messagePush),或者参考一些公开库的实现
微信第三方平台接收推送component_verify_ticket,解密时报内存溢出?使用文档中的加解密方法对推送的ticket密文解密时出现了JVM堆溢出的问题 java.lang.OutOfMemoryError: Java heap space 异常点在于:还原4个字节的网络字节序时,生成了个异常大的xml长度数字8.9亿,导致后面生成解密报文时new String直接把堆内存给溢出了 [图片]
11-27补充: 1.服务器是阿里云的机器; 2.公众号是微信公众平台测试号; 3.参考的文档是:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html#_1-4-%E5%BC%80%E5%8F%91%E8%80%85%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD%AE 问题原因: 官方文档(上面的参考文档)python代码有问题 解决: 另一份官方文档的说明是正确的,文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html 本人测试可行的代码如下: # -*- coding: utf-8 -*- # filename: handle.py import hashlib import web class Handle(object): def GET(self): try: data = web.input() if len(data) == 0: return "hello, this is handle view(v8)" signature = data.signature timestamp = data.timestamp nonce = data.nonce echostr = data.echostr token = "fkonsdrtmxckzoe15cyiibnwy2l6hduh" list = [token, timestamp, nonce] list.sort() sorted_str = ''.join(list) hash_obj = hashlib.sha1(sorted_str.encode('utf-8')) calc_signature = hash_obj.hexdigest() print("handle/GET func: calc_signature, signature: ", calc_signature, signature) if calc_signature == signature: return echostr else: return "" except Exception as Argument: print("Argument:", Argument) return Argument
微信公众号之测试号的开发者基本配置处官方文档案例的错误https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html 官方文档关键代码如下: # -*- coding: utf-8 -*- # filename: handle.py import hashlib import web 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, Argument: return Argument
10-29