- 公众号运营新功能——官方AI配图,发表内容更方便了
[图片] 公众号发表内容过程中,有运营朋友遇到过图难找,图侵权等问题。 最近微信公众号后台最近推出了一项全新功能——“AI 配图”,为文章编辑过程带来了更多便捷选择。 除了传统的从图片库选择和本地上传图片的方式外,创作者现在可以直接跳转到AI图像生成页面。 只需输入一段文字描述,系统便会在十几秒内生成四张候选图片。 用户可以根据需求调整图片的风格和比例,甚至对生成的图片进行进一步优化,直到达到理想效果后,将其插入文章中。 这项功能为创作者提供了更加灵活、高效的图片编辑方式,极大提升了内容创作的效率与视觉表现力。 个人觉得这一新功能为提高编辑的效率,降低了创作成本与时间,也为以后更多的创作者带来新的灵感与创作思维。 随着版权意识的增强,越来越多的平台与运营者必须要重视这点。 更多公众号运营内容点击下列标题即可观看: 公众号运营:如何使用电子发票结算流量主收益 公众号运营:划线阅读功能到底是什么功能,具体有什么作用 公众号运营:互选广告授权MCN机构一定要多注意。 公众号运营:公众号菜单如何跳转历史文章? 公众号运营:如何文章内跳转公众号主页(不是历史文章页面) 更多公众号运营问题与小技巧可点击我的头像到我社区主页观看。 我是立十,非官方人员💍公众号💍运营资深忠实粉丝,专注回答社区中关于公众号的问题。
2024-12-02 - 电脑版微信打不开所有小程序,怎么解决?
电脑版本微信打不开所有的小程序,这个要怎么处理? 电脑微信已经安装了最新版本的了; 网络也绝对是没有问题的,相同网络手机都是可以打开的; 也按照这里面(https://docs.qq.com/doc/DRmROZXpBVmNxYURY)的操作进行操作,所有都操作了一遍,但还是不行
2023-03-14 - 微信开放平台新服务器证书兼容性验证指引
1. 背景介绍 微信开放平台使用 HTTPS 协议来确保通信的安全性。在开发者调用微信开放平台 API 的过程中,需要在其操作系统或执行环境(如 JRE 等)中部署权威机构的根证书,以验证微信开放平台服务器证书的真实性,进而验证微信服务器及其域名的真实性。 受 Mozilla 信任库的最新根证书信任策略影响(全球所有 CA 的可信根证书需每15年更换一次,超过此时间的可信根将逐渐失去 Mozilla 的信任),DigiCert 将逐步停止使用旧的根证书体系(G1)来颁发 TLS/SSL 证书,转而采用新的根证书体系(G2)。 当前微信开放平台服务器证书的颁发根 CA 是 Digicert Global Root CA (G1),微信开放平台计划于 2024年10月22日 0:00 开始,逐步启用采用 DigiCert Global Root G2 根 CA 颁发的新服务器证书,开发者应仔细阅读本指引,并完成相关验证和修正,以免影响正常服务。 注意: 1)所有通过 api.weixin.qq.com 调用的 API 都可能受影响,开发者需要在 2024年10月22日 0:00 之前参考指引完成相关验证和修正。 2)大多数操作系统和执行环境都默认内置了 DigiCert Global Root G2 根证书,因此大多数系统无需改动即可兼容新服务器证书。但如果开发者的服务器未内置 G2 根证书,或程序代码指定使用旧的 G1 根证书,则会受到影响,将出现服务中断的问题。我们建议及时移除指定旧根证书代码,采用系统自带的信任库进行验证,同时确保系统内置有 DigiCert Global Root G2 根证书。 3)新的 G2 根体系采用更高安全性的 SHA256 签名算法,且依然兼容当前主流的操作系统和移动设备,主流环境兼容情况如下: [图片] 对应的根证书文件请参考: Baltimore CyberTrust Root:Download PEM、Download DER/CET Digicert Global Root CA:Download PEM、 Download DER/CRT Digicert Global Root G2:Download PEM、 Download DER/CRT 2. 开发须知 开发者需确认与微信开放平台对接的服务器系统可兼容新的服务器证书,并参考“验证指引”章节的方法,在 2024年10月22日 0:00 之前完成验证: • 如果验证结果正常,开发者不需要做其它任何事情 • 如果验证结果异常,开发者需要修改相关的系统实现或配置,且需最晚于 2024年10月22日 0:00 之前前完成修正,否则开发者的业务系统与微信开放平台系统之间将不能正常进行 HTTPS 通讯,将影响业务正常运行。 开发者在验证和修正过程中遇到问题,可在小程序专区发帖咨询,我们会有专人进行解答回复。 3. 验证指引 验证方式:绑定 host,请求已部署新证书的微信开放平台服务器 开发者可通过修改操作系统的 hosts 文件来绑定 IP,例如,可在 hosts 文件中新增一行如下内容,实现将域名"api.weixin.qq.com"绑定到新证书环境: 81.69.216.137 api.weixin.qq.com 在 Linux 系统下,hosts文件的完整路径为"/etc/hosts",在Windows系统下,hosts 文件的完整路径为"C:\Windows\System32\drivers\etc\hosts"。 注意: 1、host 环境可以访问的接口与正式环境完全一致,且真实生效,被视为生产正式业务。在验证之前,请充分评估对贵司业务系统以及业务的影响 2、验证完成后,请及时恢复服务器上的 host 配置,微信开放平台服务器证书更新完成后,此处使用的 IP 会被关停。 3、需要用和生产环境相同的操作系统、执行环境、开发语言及程序逻辑进行验证。使用 curl 等命令行工具验证成功,并不代表你的系统支持了新的服务器证书。 4、逐一验证所有正在调用的微信开放平台接口,如果均能正常使用,说明系统支持微信开放平台新的服务器证书。反之,则需要根据修正指引排查问题并修正。 4. 修正指引 大部分情况下,验证失败是以下两种情况导致的: 情况一:程序中指定了根证书,但是指定的根证书中仅包含了旧的 G1 根证书。 情况二:服务器上没有部署新的 G2 根证书。 可通过以下两个方案修正: 方案一:删除指定根证书的代码。当程序中不指定根证书时,会使用系统自带的根证书。绝大部分系统中已内置了新的 G2 根证书,所以删除指定根证书的代码,不会影响到你的现有业务。 方案二:更新根证书。往 truststore 或者根证书信任文件中追加新的 G2 根证书(注意:追加新的根证书时,需要保留老的G1根证书)。 推荐使用“方案一”来修正,该方案的兼容性更好。原因是:新的 G2 根证书将于 2029年4月15日不再被 Mozilla 信任,到时候同样要更换新的根证书。使用方案一修复,你的系统中很可能已内置了后续需更换使用的根证书,从而不受影响。如果使用方案二进行修复,在 2029年4月15日仍可能需安装新的根证书。 下面介绍各种开发语言可能碰到的问题及解决方法: JAVA常见错误 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 可能原因: 代码中设置了 javax.net.ssl.trustStore 。 可以在代码中搜索关键字“trustStore” 或者 “TrustManager” 来确认 解决方法: 方法一、删除掉指定[代码]javax.net.ssl.trustStore[代码]的代码 方法二、安装新的根证书, 往指定的trustStore 中添加新的根证书。操作命令:keytool -importcert -keystore cacerts -storepass changeit -noprompt -file ./DigiCertGlobalRootG2.crt -alias digicertglobalrootg2 C++常见错误 cURL error 60: SSL certificate: unable to get local issuer certificate. CURLE_SSL_CACERT (60) peer certificate cannot be authenticated with known CA certificates. 可能原因: 代码中设置了[代码]CURLOPT_CAINFO[代码]。 可以在代码中搜索关键字“CURLOPT_CAINFO”来确认 解决方法: 方法一、删除掉[代码]curl_easy_setopt(pCurl,CURLOPT_CAINFO,"./rootca.pem")[代码]相关的代码 方法二、更新rootca.pem。用libcurl官网最新的 https://curl.haxx.se/ca/cacert.pem 替换即可 PHP常见错误 cURL error 60: SSL certificate: unable to get local issuer certificate. CURLE_SSL_CACERT (60) peer certificate cannot be authenticated with known CA certificates. 可能原因: 使用libcurl时设置了[代码]CURLOPT_CAINFO[代码]。可以在代码中搜索关键字“CURLOPT_CAINFO”来确认。 解决方法: 方法一、删除掉类似[代码]curl_setopt(pCurl, CURLOPT_CAINFO, "./rootca.pem");[代码]的代码 方法二、更新rootca.pem。用libcurl官网最新的https://curl.haxx.se/ca/cacert.pem 替换即可 C#常见错误 RemoteCertificateValidationCallback 设置的回调函数返回 false 可能原因: 操作系统中没有新的根CA 解决方法: 安装新的根证书 Python常见错误 SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581) 可能原因: 代码中用 verify 指定了根证书文件。 可以在代码中搜索关键字“verify”来确认。类似的代码如: [代码]response = requests.post( "https://api.mch.weixin.qq.com/secapi/pay/refund", verify="./rootca.pem", …… ); [代码] 解决方法: 方法一、删除verify参数 方法二、更新[代码]rootca.pem[代码]。用libcurl官网最新的https://curl.haxx.se/ca/cacert.pem 替换即可 go常见错误 x509: certificate signed by unknown authority . 可能原因: 发起https时, 用 RootCAs指定了根证书文件。 可以在代码中搜索关键字 “RootCAs” 来确认。类似的代码如: [代码]roots.AppendCertsFromPEM([]byte(rootPEM)) tr := &http.Transport{ TLSClientConfig: &tls.Config{RootCAs: roots}, } client := &http.Client{Transport: tr} [代码] 解决方法: 方法一、删除配置项RootCAs 方法二、更新[代码]rootca.pem[代码]。用libcurl官网最新的https://curl.haxx.se/ca/cacert.pem 替换即可 Ruby常见错误 SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed 可能原因: 发起https时, 用[代码]ssl_ca_file[代码]或者[代码]cert_store[代码]指定了根证书文件。 可以在代码中搜索关键字“ssl_ca_file” 或者 “cert_store” 来确认。类似的代码如: [代码] "https://api.mch.weixin.qq.com/secapi/pay/refund", :ssl_client_cert => OpenSSL::X509::Certificate.new(File.read("./apiclient_cert.pem ")), :ssl_client_key => OpenSSL::PKey::RSA.new(File.read("./apiclient_key.pem ")), :ssl_ca_file => "./rootca.pem", :verify_ssl=>OpenSSL::SSL::VERIFY_PEER).post(data); [代码] 或者 [代码]sock.cert_store.add_file('/usr/lib/ssl/certs/weixin/rootca.pem') [代码] 解决方法: 方法一、删除 [代码]ssl_ca_file[代码]及 cert_store 指定的参数 方法二、更新rootca.pem。用libcurl官网最新的https://curl.haxx.se/ca/cacert.pem 替换即可 NodeJs常见错误 Caught exception: Error: CERT_UNTRUSTED 可能原因: 代码中用 ca 指定了根证书文件。 可以在代码中搜索关键字“ca” 或者 “rootca” 来确认。类似的代码如: [代码] hostname: api.mch.weixin.qq.com ', pfx: await readFile('./apiclient_cert.p12'), ca: await readFile('./rootca.pem'), }; const req = https.request(options, (res) => { …… [代码] 解决方法: 方法一、删除ca指定的参数 方法二、更新[代码]rootca.pem[代码]。用libcurl官网最新的https://curl.haxx.se/ca/cacert.pem 替换即可 其它语言请参考对应的TLS/SSL库相关手册。 5. 常见问题 Q1:什么是服务器证书? A:服务器证书通常又叫“SSL 证书”、“HTTPS 证书”,它由权威 CA 机构颁发,用于对网站进行身份鉴定,并使客户端与网站之间通过 TLS/SSL 协议建立起安全传输通道。微信开放平台的服务器证书是由权威机构 DigiCert 颁发,开发者调用微信开放平台 API 时,能通过该证书来认证微信服务器身份。 Q2:什么是根证书? A:根证书是权威 CA 机构给自己颁发的证书,是信任链的起始点,是证书颁发机构(CA)与用户建立信任关系的基础。操作系统、浏览器、TLS/SSL 开发库通常随软件发行包预置其信任的权威机构的根证书。 Q3:微信开放平台为什么要更换服务器证书? A:根证书存在有效期,根证书到期后无法继续被用来校验服务器证书。 因此,微信开放平台向权威机构(CA)申请了新的服务器证书。避免在老的根证书过期后,开发者调用微信开放平台 API 时出现问题。 Q4:微信开放平台更换服务器证书,需要开发者配合做哪些事情? 一、验证你的系统是否兼容微信开放平台新的服务器证书。 二、若支持的话,不需要做任何操作。若不支持,需要参考修正指引排查原因并修正。 注意: a)开发者按指引进行验证或安装新的根证书, 不会产生任何费用。 b)开发者正在使用的其它 HTTPS 证书不需要更换或者升级。 Q5:开发者如何核实服务器上是否已内置了G2根证书? A: 以 Linux 系统为例。Linux 系统信任根证书库的保存位置因发行版本不同而有所差异:Debian/Ubuntu:/etc/ssl/certs/ca-certificates.crt CentOS/RHEL/Fedora/TencentOS:/etc/pki/tls/certs/ca-bundle.crt 开发者可以使用以下命令来核实系统是否已内置了G2根证书 [代码]grep "DigiCert Global Root" /etc/pki/tls/certs/ca-bundle.crt # DigiCert Global Root CA # DigiCert Global Root G2 [代码] 备注:示例显示系统已内置了G1和G2根证书 Q6:微信开放平台更换证书前,可以提前安装根 CA 证书吗? A: 必须提前安装,且建议在 2024年10月22日 0:00 之前提前安装。因为从 2024年10月22日 0:00开始,微信开放平台会在生产环境逐步灰度启用新服务器证书,以校验开发者的系统是否兼容新证书。微信开放平台在更换新证书的过程中,会同时使用新老两个服务器证书,开发者要能正常处理这种情况。因此,开发者的服务器上需要包含新老两个根证书。 Q7:开发者需在什么时候完成验证和修正?不验证会有什么影响? A: 开发者应在 2024年10月22日 0:00 之前完成验证和修正。如果开发者侧系统的实现方式已能兼容新的服务器证书,那么不会影响业务;如果开发者侧系统的实现方式不能兼容新的服务器证书,那么会导致开发者的系统与微信开放平台的系统不能正常交互,影响业务。 Q8:如果开发者无法按时完成兼容性修正,在微信开放平台灰度新证书时遇到异常应如何处理? A: 如果开发者的系统经验证是不能兼容新证书的,开发者应在 2024年10月22日 0:00 之前完成修正。如果无法按时完成修正,我们届时可提供仍使用旧证书的临时环境,开发者可通过 host 绑定 IP 的方式使用,以临时规避证书更换产生的影响。请务必在2024年10月22日 0:00 之前完成系统修正,并取消绑定临时环境IP,恢复以正常的方式对接微信开放平台的生产正式环境。 6. 特别提醒 1)为提前发现开发者“是否会受到证书更换的影响?”“有没有升级完根证书?”,微信开放平台将于 2024年10月22日 0:00 开始,把开发者的部分请求转发到部署了新证书的服务器上,并逐步提升灰度比例。当开发者不支持新的服务器证书时,会出现 SSL 相关的错误,通常情况下重试即可恢复。 2)根证书升级仅跟服务器和应用程序相关,与 APPID 没关系。只要在同一台服务器升级完成后,该服务器上使用的所有 APPID 都可以正常使用的。 3)如果你是通过代理服务器向微信开放平台发起请求,那么需要修改代理服务器的配置。 7. 联系我们 如果开发者在验证或者修正问题的过程中遇到困难,可在小程序专区发帖咨询,我们会有专人进行解答回复。 8. 附录 DigiCert 原文公告 :DigiCert root and intermediate CA certificate updates 2023
2024-08-06 - 小程序服务内容不符合个人性质?小程序名称不符合个人备案要求?
1.小程序服务内容不符合个人性质,请修改服务内容符合个人性质,或者使用企业证件进行备案。 2.小程序名称不符合个人备案要求小程序名称涉及企业/单位/商城等非个人性质,请修改为与实际小程序业务有关的名称;如果你是企业小程序,请使用企业证件进行备案。 被退回两次了,都是这两个原因,真不知道怎么改才能符合个人性质,符合个人备案要求。 [图片]
2023-10-24 - 小程序备案写不涉及文化情况说明书不规范?既然没有模板,那求教下什么样的才叫规范?
不涉及文化情况说明书 日期:XXXX年XX月XX日 致:相关单位或个人 尊敬的XXX: 我司/我方注意到,在某些情况下,某些事项可能被解读为与特定文化背景或文化相关。但是,我们郑重声明,本次涉及的事项或情况与任何特定文化无关。 我们明确表示,本次所涉及的事项或情况不涉及任何与特定文化背景或文化相关的内容。我们对此进行明确的说明和澄清,以避免任何可能的误解。 我们对本次所涉及的事项或情况的说明如下: 本次事项/情况的背景和原因:请在此处详细说明本次事项或情况的背景和原因。请注意,所有涉及的事项或情况均与任何特定文化无关。 本次事项/情况的详细情况:请在此处详细说明本次事项或情况的详细情况。请注意,所有涉及的事项或情况均与任何特定文化无关。 可能产生的社会影响:请在此处说明本次事项或情况可能产生的社会影响。请注意,所有涉及的事项或情况均与任何特定文化无关。 我们再次强调,本次涉及的事项或情况不涉及任何与特定文化背景或文化相关的事项或因素。我们希望以上说明能够充分传达这一信息。如有任何疑问,请随时与我们联系。 谢谢! XXX公司/单位/个人 代表:XXX
2023-10-12 - 小程序备案指南(企业备案),持续更新
在mp后台: 1:未上架的小程 首页--小程序发布流程--小程序备案(查看能否备案)。 说明:此页面是未发布小程序前的首页页面,发布后的不一样,不要纠结找不找得到、没有这个页面。已经发布的看下方第二张图。 可以备案: [图片] 2:已上架的小程 可以备案: 小程序管理后台顶部会提示“小程序需补充备案信息”的提醒,点击【去备案】即可进入备案流程 或在设置--基本设置--小程序备案(去备案) 不能备案: 设置--基本设置--小程序备案(暂未对存量小程序开放) [图片] 企业小程序备案准备材料: 营业执照(副本扫描件或加盖公章的复印件,建议用副本扫描件,在上面加上**小程序备案所用,他用无效)。法人身份(最好是法人,负责人的也可以)证正反面照片,彩色的,拍照要拍全。管理员个人信息,姓名,身份证号,电话,备用电话,常用邮箱。(建议管理人员和负责人是同一个人)地址填写,最好是营业执照上地址,也可以是常用地址。前置审批/专项审批(具体可查看https://developers.weixin.qq.com/miniprogram/product/record_guidelines.html)。补充材料:根据规则提供包括但不限于授权书、党建证明、居住证、情况说明、承诺书等。互联网信息服务备案承诺书(单位)。资料提前准备好,需要法人扫码验证(和小程序认证差不多)。根据不同地区,准备资料可能有所差异,详细需要什么资料,审核备案时具体再做补充。如果上述没有看懂,转移这里,官方给出的流程https://developers.weixin.qq.com/miniprogram/product/record_guidelines.html[图片] 备案流程 [图片] 。。。。。。(持续更新详细步骤) 九月八号上午填写备案信息,九月十三号成功备案(本来九月八号当天发验证短信的,用户这边没及时验证,耽搁一天) [图片] 常见信息填写问题 1、备案流程中的主办单位、主体负责人具体指的是谁?主办单位 又称互联网信息服务主办者,主要指内容服务提供者,包括单位(如企业、政府机关等)和个人两类。主体负责人 个人:主体负责人应为主办单位本人。非个人:通常由单位法定代表人担任,如有特殊情况(如法代身份涉密、长期不在国内等)可授权单位高管担任。2、个体户没有公章怎么办?若个体工商户无公章,需要主体负责人手写日期+签名+盖手印+身份证号码,同时请在主体备注处备注“个体工商户无公章”。 3、填写小程序主体信息的通讯地址是指的什么地址?可填写主体证件上的地址,也可填写你实际的办公或住所地址。 若你是个人开发者:需精确到门牌号码,若已是最详细的地址或无门牌号的,在主体备注中说明“通信地址已为最详细”。若你是单位开发者需精确到门牌号码,且至少和主体证件所省份保持一致(如证件住所和通讯地址都是广东省),不能使用特殊符号(如:2#楼2-3-301);若已是最详细的地址,无门牌号的,在主体备注中说明“通信地址已为最详细”。备注:若你是北京地区,通讯地址填写时不能使用特殊符号(如:2#楼2-3-301)。4、什么情况下需要上传居住/暂住证明?当个人主体小程序备案申请人的身份证证件地址与申请小程序备案的省份不一致时,需要提供暂住证或居住证等证明材料。 涉及省份包括:吉林、上海、江苏、浙江、安徽、山东、湖北、广东、四川、贵州、云南。 5、小程序备案主体负责人必须填写法定代表人吗?每个省份管局的要求不一致,请按照备案小程序所属省管局要求进行填写,具体请参考: 类型地区主体负责人不是法定代表人需提供小程序主体负责人授权书吉林、山西、甘肃、江苏、安徽、四川 主体负责人必须是法定代表人:天津、内蒙古、陕西、宁夏、新疆、湖北、湖南、河南、上海、浙江、江西、贵州、重庆、云南、西藏、广西、广东、福建、黑龙江、河北、山东、青海 主体负责人可以不是法定代表人吉林、山西、甘肃、江苏、安徽、四川、海南、北京、辽宁 6、提示:主体负责人与法定代表人不一致,且备案所在地不支持法定代表人授权?你填写的【主体负责人】姓名与营业执照证件上的【法定代表人】姓名不一致,请重新填写,并保持一致。你在小程序备案 -【验证备案类型】页面中 - 主办人信息 - 选择地区中选择的省份,不支持法定代表人授权,【主体负责人】需填写【法定代表人】姓名。备案省份需填写小程序备案主体实际所在地,系统会根据你选择的区域自动匹配当地管局规则。7、在填写负责人手机号、应急手机号、邮箱时,提示:不允许被多人使用?在填写负责人手机号、应急手机号、邮箱时,提示“不允许被多人使用”,一般是出现了个人信息混用的情况,即手机号/应急手机号/邮箱填写的是其他人的信息。 在平台备案系统中,人,手机号,应急手机号,邮箱均一一绑定,同一个人允许为多个小程序备案(同一主体下),可以提交一致的手机号、应急手机号及邮箱,但不能出现不同人共用手机号/邮箱的情况。 小程序负责人授权书、小程序主体负责人授权、互联网信息服务承诺书怎么填写?小程序备案材料示例及填写指引:小程序备案材料示例小程序信息填写相关1、什么是服务内容标识?怎么选?服务内容标识是通信管局对各个行业的分类,平台部分行业类目与管局行业类目名称不完全不一致,建议根据备案小程序实际运营内容尽可能选择对应的服务内容标识。 若你是个人主体,请勿选择经营性质、企业/单位性质、涉及有关主管部门审批等的内容,如不可选择“批发和零售业-零售批发”。若你是单位主体,应选择与主体经营范围、资质相符合的内容,如你是医药公司,可选择“医疗服务-医药”,并上传《互联网药品信息服务许可证》。非政府单位不得选择“政务民生”内容。2、小程序负责人具体是指谁?是小程序管理员吗?个人主体:小程序负责人应为主办人本人。 非个人主体:小程序负责人应为本单位/公司具体负责小程序管理、小程序维护的相关人员。 3、怎么判断备案小程序是否要选择前置审批项?可参考:前置审批类别及审批部门 4、小程序管理员信息填写时,负责人姓名已填写为小程序管理员的姓名,为什么还是提示:负责人与小程序管理员不一致?出现这种提示一般都是第三方服务商协助创建的小程序未完善管理员实名信息,需补充管理员实名信息后才能进行备案,补充指引参考: 小程序MP后台-成员管理-管理员-修改。验证原管理员-填写原管理员身份证信息-扫码验证。绑定新管理员-填写【原管理员的信息】并提交,即完成管理员实名信息补充。相关文档可参考:如何完善小程序实名信息 小程序备案常见问题:https://developers.weixin.qq.com/community/develop/article/doc/000ac251a9c340df3e6073ee566c13 最后祝大家,一次备案成功
2023-10-08 - 【微信小程序备案】9月1日起,微信小程序需完成备案才可上架!已上架用户,查看这份备案手册,快人一步,抢先备案!
自2023年9月1日起,微信小程序必须完成备案后才可上架;已经上架的小程序,要于2024年3月31日前完成备案,若逾期未完成备案,微信官方平台会按照相关规定于2024年4月1日起进行清退处理,目前备案通道暂未开启,9月1号正式开启备案通道,来一间商户,可提前准备资料,熟悉流程! 备案需要准备哪些资料 主办单位证件(营业执照) 主体负责人证件(身份证) 小程序负责人证件(身份证) 需要小程序负责人扫脸验证 其他材料:根据各省通信管理局要求,上传对应补充材料。 备案流程 ➤ 登录小程序管理后台([https://mp.weixin.qq.com/])首页顶部会提示“小程序需补充备案信息”,点击“去备案”;也可以在小程序管理后台设置模块-小程序备案-点击去备案,填写备案信息,并上传材料 ➤ 1-2个工作日内完成初审并告知结果 ➤ 提交通管局后,24小时内完成短信核验 ➤ 通管局在1-20个工作日内完成审核并告知结果 ➤ 审核通过后,下发小程序备案号 备案信息填写 1、主体信息填写 分个人主体和非个人主体 [图片] (非个人主体) [图片] (个人主体) 提示:选择地区、详细地址,请填写实际通讯地址。 上传有效证件原件的彩色扫描件或拍照件,请保持图片清晰完整、不遮挡关键信息/图像、边角齐全,证件有效期大于1个月。 请对照证件信息如实选择、填写备案信息。 2、主体负责人信息填写 提示:手机号码请填写主体负责人、应急联系人本人使用的有效手机号码,需保持电话畅通,不同人不能使用同一个号码 [图片] 3、小程序信息填写 [图片] 4、小程序负责人信息填写及人脸核身 如果小程序负责人和主体负责人一致,可直接复用主体人信息,如不一致,需手动填写小程序负责人信息。 [图片] 平台初审 开发者在微信公众平台提交小程序备案信息后,平台将会在1-2个工作日内完成初审(具体请以实际审核时间为准),审核结果将以站内信息、模板消息等形式通知管理员。在平台初审的过程中,请备案相关人员保持电话畅通,以便平台对你提交的备案信息进行核验。 工信部短信核验 根据工信部的要求,小程序备案需完成短信核验。你的备案初审通过后,会收到工信部发送的核验短信(发送号码:12381),请在收到短信的24小时内登录工信部备案官网首页完成短信核验,短信核验成功后备案申请进入通管局审核流程。 若核验时提示验证码错误或无效,你可触发一次短信重发;24小时内未核验成功,备案将被工信部系统自动驳回,你需到微信公众平台重新提交备案申请 [图片] [图片] 通管局审核 各省通信管理局将在1-20个工作日内(具体以实际审核时间为准)完成审核,审核结果以站内信、模板消息、短信等形式通知。 备案成功 管局审核通过后,将下发的小程序备案号,代表你的小程序已完成备案,可以进入下一步版本发布等流程。 [图片] 此备案流程仅适用酒旅商家操作,如需查看更多,请查看微信小程序官方备案操作指引
2023-08-28 - 关于小程序隐私指引无内容弹窗问题?
小程序获取定位之前先使用wx.getPrivacySetting判断是否需要签署隐私协议,跳转协议签署页面之后又出现了官方弹窗且没有内容,3.1.1版本出现的,3.1.1以下版本无此问题,麻烦各位大佬帮忙分析一下吧[图片]
2023-09-27 - 我是公司负责小程序开发的,小程序负责人必须是小程序管理员吗,那我这怎么搞?
[图片]小程序负责人授权书我也签字盖章了,还没看见有地方上传,那如果小程序负责人必须是小程序管理员,我也绑不过来啊,最多绑5个,公司十个几十个,怎么解决啊;谁是管理员谁就是小程序负责人了???
2023-09-15 - wx.getPrivacySetting相关的问题?
有几个问题: 1、wx.getPrivacySetting 官方写的基础库 2.32.3 开始支持 但是实际上一直返回的是false,改为3.0.0就正确了。 2、wx.getPrivacySetting需要做低版本兼容处理 我现在的做法是基础库直接最低版本3.0.0(也就是安卓8.0.39 ios8.0.38)这样就会导致很多微信不更新的用户 打开小程序就提示更新 体验不友好。 我的问题是 1、wx.getPrivacySetting 现在基础库3.0.0(也就是安卓8.0.39 ios8.0.38)是微信的最低版本 才能使用吗?如果微信用户的版本低于这两种是不是就用不了这个接口 2、有些手机的微信版本最新才8.0.38 没办法升级到8.0.39 [图片]
2023-08-25 - 关于新版隐私协议接口wx.onNeedPrivacyAuthorization的解读以及实现代码(二)
官方公告地址: https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801 目前,开发工具或者体验版的小程序,调试基础库改成3.0.0可以适配测试,线上版本9月15日之后生效,所以这之前需要尽快改完,发布一版,否则到了9月15号之后 线上就会生效报错了。 这是官方的Demo地址,也是每个页引用一个全局的组件,个人感觉太过于繁琐了,可以参考以下我整理的代码。 https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/PrivacyAuthorize.html 其实改起来也很简单,以下是实现步骤和代码: 1、首先看一下这个网址,里边包含涉及到的隐私的接口,这些接口都要适配一下 https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html [图片] 在以上接口用到的页面,需要画一下类似上边的弹窗(这个弹窗可以全局定义个组件,方便多个页面共用),然后里边蓝字可以点击后调用wx.openPrivacyContract(Object object)接口即可,会自动跳转打开隐私协议页面。 拒绝按钮可以加一个点击事件,然后在事件里这样写,官方demo里也没有加id。 <button class="btn-refuse" catch:tap="clickRefuse">拒绝</button> refuse() { this.resolvePrivacyAuthorization({ event: 'disagree' }) }, 同意按钮比较特殊,布局需要用button这样写,记得给button加一个Id <button id="agree-btn" class="btn-agree" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button> 然后在handleAgreePrivacyAuthorization里就可以获取到点击事件,这样写 handleAgreePrivacyAuthorization() { this.resolvePrivacyAuthorization({ buttonId: 'agree-btn', event: 'agree' }) }, 2、然后每个有隐私接口的页面引用自己的组件,代码如下 { "usingComponents": { "agreement": "/components/agreement/agreement" } } 布局引用 <!-- 隐私授权弹窗 --> <agreement id="agreement" frameTitle="温馨提示" bind:refuse="refuse" bind:agree="agree"></agreement> 让组件弹窗显示,这样写: this.selectComponent('#agreement').show(); 3、最后需要在用到隐私接口的页面的onShow里加上以下监听代码,在这里边让自定义的隐私弹窗显示出来即可。 onShow: function () { let that = this; if (wx.onNeedPrivacyAuthorization) { wx.onNeedPrivacyAuthorization(resolve => { this.selectComponent('#agreement').show();//这里是让组件弹窗显示 this.resolvePrivacyAuthorization = resolve }) } } 以上代码加上就可以了,如果业务逻辑用到了需要判断是否授权过,可以加上 wx.getPrivacySetting(Object object)去获取是否授权过,用不到可以不加这个判断。 //=======================以下是针对昵称输入框input的type="nickname"的代码=========================== 注意:以下代码只是针对input另外加的,上边提到的代码也都要加上才能正常弹出弹窗 布局,在input的外层View加touch事件,然后加一个focus动态控制焦点。 <view catch:touchstart="handleTouchInput"> <input type="nickname" class="text" bindinput="listenerContent" placeholder="输入名称" maxlength="10" value='{{name}}' focus="{{focus}}" /> </view> 然后,touch事件: handleTouchInput() { let that = this if (wx.getPrivacySetting) { wx.getPrivacySetting({//获取是否需要弹出 success: res => { if (res.needAuthorization) { wx.requirePrivacyAuthorize({//该接口请求隐私协议,会自动触发上边的wx.onNeedPrivacyAuthorization success: () => { that.setData({ focus: true, }) }, fail: () => {}, complete: () => {} }) } else { that.setData({ focus: true, }) } }, fail: () => {}, complete: () => {} }) } else { this.setData({ focus: true }) } }, 这样就可以了,记得把上边提到的监听代码都加上。
2023-08-23 - 提交代码审核之前必须等调用设置小程序用户隐私保护指引接口审核了才能调用是吗?
我现在是提交代码审核之前调用了设置小程序用户隐私保护指引接口,反馈:{"errcode":61039,"errmsg":"隐私接口检查任务未完成,请稍等一分钟再重试, hint: [b2491477-57b2-498d-90ac-e6811d72b85c] rid: 64dd987d-2059bade-5c02196f"} 然后紧接着调用提交代码审核,得到反馈:{"errcode":61039,"errmsg":"隐私接口检查任务未完成,请稍等一分钟再重试 rid: 64dd987d-3a13cb97-5ab5c447"} 请问隐私保护指引接口提交完了后,如何拿到结果反馈,有没有走消息推送?查了文档没有说明。
2023-08-17 - 关于新版隐私协议接口wx.onNeedPrivacyAuthorization的适配解读以及实现代码
官方公告地址: https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801 目前,开发工具或者体验版的小程序,调试基础库如果是2.33.0及以上就得适配了,线上版本9月15日之后生效,所以这之前需要尽快改完,发布一版,否则到了9月15号之后 线上就会生效报错了。 其实改起来也很简单,以下是实现步骤和代码: 1、首先看一下这个网址,里边包含涉及到的隐私的接口,这些接口都要适配一下 https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html [图片] 在以上接口用到的页面,需要画一下类似上边的弹窗(这个弹窗可以全局定义个组件,方便多个页面共用),然后里边蓝字可以点击后调用wx.openPrivacyContract(Object object)接口即可,会自动跳转打开隐私协议页面。 拒绝按钮可以加一个点击事件,然后在事件里这样写 [图片] 同意按钮比较特殊,布局需要用button这样写,记得给button加一个Id [图片] 然后在handleAgreePrivacyAuthorization里就可以获取到点击事件,这样写 [图片] 2、最后需要在onLoad或者onShow里加上以下监听代码,在这里边让自定义的隐私弹窗显示出来即可。 [图片] 以上代码加上就可以了,如果业务逻辑用到了需要判断是否授权过,可以加上 wx.getPrivacySetting(Object object)去获取是否授权过,用不到可以不加这个判断。
2023-08-16 - 对应的服务器证书无效,怎么检查?
[图片] 提示服务器证书无效,是申请的免费证书,没过期,在哪个网址或者平台可以检查证书有啥问题啊?
2023-06-12 - 如何实现动态生成好友分享图
本文章采用官方最新的 Canvas.createImage() 来实现下动态生成好友分享图,可以拿来即用。展示效果如下(其中蓝框中文案和红框头像为插入的文本、图像。背景图也支持动态更换): [图片] 小程序demo案例:https://developers.weixin.qq.com/s/nJtr4QmL7RD3 一、市面案例缺陷:翻阅了目前市面上的小程序动态生成好友分享图,大部分还是使用已废弃的『wx.createSelectorQuer』接口来实现。目前小程序已无法很好支持。 二、主要有以下几个关键点需要注意下: 做好友分享图要考虑5:4的比例使用 wx.getImageInfo 一定要考虑图片失败的场景,然后采用兜底图片。相同的逻辑在complete中执行。要区分 wx.createImage ,这个是小游戏用来创建图片对象的。小程序要用Canvas.createImage()。也不是使用 new Image!!!使用的时候一定要在 canvas 类型中注明 type 是 2d 的 canvas[图片] 三、优化知识点: 如何用 async in image loading:https://stackoverflow.com/questions/46399223/async-await-in-image-loading ----- 采用await img.decode() 或者 img.onload = () => resolve() 如何隐藏Canvas:https://developers.weixin.qq.com/community/develop/doc/1aadfacdd9f38584881e0c50db2bcda1 ----- position:fixed;left:100%;
2023-06-19 - 分享小程序给好友(群),在标题下方还能设置一行小字?
如图箭头所指,该行字还是动态的,分享后还会自动更改,这个功能如何实现? 文档(地址)上也并没有此功能描述 [图片]
2022-11-18 - 公众号快速注册并认证小程序
为方便公众号快捷接入小程序,并在各功能中使用小程序的服务,上线复用公众号资质注册小程序流程。快速注册认证小程序,无需重新提交主体材料、无需对公打款、无需支付300元认证费用。 条件:已认证的企业、媒体、政府、其他组织类型公众号 限制:非个体户类型(企业、媒体、政府、其他组织类型)公众号一个月可以复用资质注册5个小程序,个体户一个月可以复用资质注册1个小程序。 开通入口: 登录公众号-小程序-小程序管理-添加-快速注册并认证小程序 相关规则: 1、复用资质创建的小程序默认与该公众号关联; 2、复用资质创建的小程序默认关联该公众号,不占一个月新增关联13个小程序的限制; 3、复用资质创建的小程序默认关联公众号,不下发模板消息,不默认出现在公众号资料页; 4、一个公众号若存在“待完成注册”的小程序,不可发起复用资质创建小程序; 5、一个公众号一个月内可复用资质注册小程序不多于5个。(创建成功才占用); 6、使用复用公众号资质注册小程序,将以本公众号的主体作为该小程序的开发者,可选择以本公众号运营者作为该小程序的管理员; 7、若选择了复用认证资质,则小程序完成注册后即是“已认证”状态。 创建流程: 第一步:登录公众号->小程序->小程序管理->添加->快速注册并认证小程序 [图片] 第二步:同意协议 [图片] 第三步:管理员扫码验证 [图片] 第四步:勾需要选快速创建小程序的资质 [图片] 注:复用微信认证资质不需要再次支付认证审核服务费,也不需要审核。 第五步:填写小程序帐号信息 [图片] 注:需要一个未绑定个人微信或其他公众平台的邮箱。 第六步:邮件激活小程序帐号,激活完成后即可使用邮箱帐号密码登录小程序。 [图片] 第七步:绑定小程序管理员 [图片] 注:绑定管理员,如果有在第四步有勾选复用运营者信息。最终以绑定管理员信息为准。 以上注册流程创建的小程序,不用再走小额打款验证主体。生成的帐号具有独立的邮箱帐号、密码,跟走正常注册流程注册的小程序具有一样的能力权限。
2023-10-10 - 获取用户信息,修改用户信息?
用getUserInfo获取用户信息,显示的是匿名用户信息,只要授权了,就不会再次要求授权,用wx.getUserProfile获取用户信息,每次进入页面就需要进行一次授权。在修改用户资料页面,console.log出来是信息没有id,那么要修改用户信息,怎么知道修改的是个用户的信息?要怎么获取?在网上查找资料,要么用的是插件,要么就是不全,查官方文档,又要改接口,对于我们初学者来说,头痛。 [图片][图片] 代码片段 https://developers.weixin.qq.com/s/nmxH4smH7pCS
2022-09-22 - 小程序性能优化实践
小程序性能优化课程基于实际开发场景,由资深开发者分享小程序性能优化的各项能力及应用实践,提升小程序性能表现,满足用户体验。
2024-10-09 - 小程序登录、用户信息相关接口调整说明
公告更新时间:2021年04月15日考虑到近期开发者对小程序登录、用户信息相关接口调整的相关反馈,为优化开发者调整接口的体验,回收wx.getUserInfo接口可获取用户授权的个人信息能力的截止时间由2021年4月13日调整至2021年4月28日24时。为优化用户的使用体验,平台将进行以下调整: 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。请使用了wx.getUserInfo接口或<button open-type="getUserInfo"/>的开发者尽快适配。开发者工具1.05.2103022版本开始支持getUserProfile接口调试,开发者可下载该版本进行改造。 小游戏不受本次调整影响。 一、调整背景很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。 二、调整说明通过wx.login接口获取的登录凭证可直接换取unionID 若小程序已在微信开放平台进行绑定,原wx.login接口获取的登录凭证若需换取unionID需满足以下条件: 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用2月23日后,开发者调用wx.login获取的登录凭证可以直接换取unionID,无需满足以上条件。 回收wx.getUserInfo接口可获取用户个人信息能力 4月28日24时后发布的新版本小程序,开发者调用wx.getUserInfo或<button open-type="getUserInfo"/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。 具体变化如下表: [图片] 即wx.getUserInfo接口的返回参数不变,但开发者获取的userInfo为匿名信息。 [图片] 此外,针对scope.userInfo将做如下调整: 若开发者调用wx.authorize接口请求scope.userInfo授权,用户侧不会触发授权弹框,直接返回授权成功若开发者调用wx.getSetting接口请求用户的授权状态,会直接读取到scope.userInfo为true新增getUserProfile接口 若开发者需要获取用户的个人信息(头像、昵称、性别与地区),可以通过wx.getUserProfile接口进行获取,该接口从基础库2.10.4版本开始支持,该接口只返回用户个人信息,不包含用户身份标识符。该接口中desc属性(声明获取用户个人信息后的用途)后续会展示在弹窗中,请开发者谨慎填写。开发者每次通过该接口获取用户个人信息均需用户确认,请开发者妥善保管用户快速填写的头像昵称,避免重复弹窗。 插件用户信息功能页 插件申请获取用户头像昵称与用户身份标识符仍保留功能页的形式,不作调整。用户在用户信息功能页中授权之后,插件就可以直接调用 wx.login 和 wx.getUserInfo 。 三、最佳实践调整后,开发者如需获取用户身份标识符只需要调用wx.login接口即可。 开发者若需要在界面中展示用户的头像昵称信息,可以通过<open-data>组件进行渲染,该组件无需用户确认,可以在界面中直接展示。 在部分场景(如社交类小程序)中,开发者需要在获取用户的头像昵称信息,可调用wx.getUserProfile接口,开发者每次通过该接口均需用户确认,请开发者妥善处理调用接口的时机,避免过度弹出弹窗骚扰用户。 微信团队 2021年4月15日
2021-04-15 - 使用按钮获取用户头像的临时路径,为什么存储之后无法二次渲染展示头像?
基础库2.24.2,我在使用<button open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar"></button> 获取用户头像后,返回的是一个临时路径,我把该头像的url路径渲染到了<image src="{{url}}"></image>标签,这个时候是可以展示头像的。 于是我尝试将该临时路径存到了云开发的数据库中,紧接着从云开发的数据库中将该头像的url路径获取到并渲染到另外一个<image src="{{url}}"></image>标签时却无法展示头像,标签都是一样的,路径url也是一样的,为什么存储之后再次渲染就无法展示头像了。
2022-07-23 - 请问小程序的分享朋友圈,打开后页面正常显示,但是下面有提示一个前往小程序,不是很友好,不能直接操作?
请问小程序的分享朋友圈,打开后页面正常显示,但是下面有提示一个前往小程序,不是很友好,不能直接操作?
2022-05-30 - 30分钟实现小程序打卡签到送积分功能,提升用户留存利器!
前言在小程序运营中,为了提升用户留存,通常会自建打卡签到模块送积分功能。用户可以通过打卡签到获取到积分,然后积分可以兑换礼物,从而实现用户留存的效果。 效果在我的页面加入了一个签到入口,点击进入打卡签到页面。进入页面后会自动签到,引导用户进行二次提醒推送。可在后台灵活配置每天签到的积分及抽奖、奖品配置。 [图片] 今天我来带大家看看如果快速实现这个功能,在这里需要用到小程序的「单页模版」功能。来看看官方文档介绍: 目前「单页模版」处于内测阶段,我这个是内测版本,所以大家在开发工具中没有也是正常的。 小程序开发过程中,有很多通用的业务模块,例如:打卡签到、邀请有礼、趣味小游戏、运营 banner 配置等。这些模块业务模型具备通用性,但是前端每个小程序都有自己的样式设计。因此,每个小程序都需要重复性的进行开发。单页模板致力于帮助小程序开发者聚焦前端交互展示,无需关注于实现接口以及管理端。开通单页模板后,运营人员可直接在管理端配置新功能,小程序前端源码组件可导入到小程序内快速接入,也可以对前端组件进行二开以满足业务需求。 简单来说就是把整套打卡签到的前端代码和后端业务代码插入到你的小程序中,自己可以对前端组件做二次开发。 接下来我就带你来看看如何使用: 目前该功能还在内测阶段,你的微信开发功能没有是正常的。在这里我只是演示内测版本,后续云开发团队会持续更新,正式上线。第一步:开通单页模版开发设置面板点击扩展设置找到其他组件安装单页模版[图片] 当你开通完成后来,选中miniprogram文件夹右键呼出菜单,选择「配置单页模版」点击免费使用 [图片] 则会进入腾讯云登录界面,扫码验证选择自己的小程序即可。验证成功后则会进入单页模板控制台的小程序组件页面。 [图片] 第二步:后台配置规则点击「前往配置」则会进入签到配置页面,分别可以对:奖品管理、签到记录、签到规则、签到配置。 奖品管理奖品列表【新增、删除、导出】[图片] 奖品新增,在这里要注意填写奖品总数直接和剩余数量填写相等即可,当用户中奖后会自动将剩余数量-1[图片] 签到记录显示所有的签到记录、中奖记录,可以通过搜索条件对openid、连续天数、奖品描述进行过滤,而从显示对具体信息的快速查找。 [图片] 签到规则这里编辑的内容会在小程序页面用户点击签到规则时进行弹出显示。 [图片] 签到配置在这里可以配置签到活动的开关,签到的积分奖励,目前支持积分和虚拟物品,下周会上线实体物品。还有就是抽奖设置,包括概率和触发条件。 [图片] 当配置一切搞定之后,接下来我们来看下如何导入前端的签到打卡组件。 第三步:导入代码我们回到刚才的控制面板,切换到第二个菜单导入小程序组件,点击导入组件到IDE。 [图片] [图片] 点击查看详情,会有这个组件的介绍。 [图片] 点击导入IDE会直接导入在小程序的miniprogram目录下 [图片] 在这里如果你想直接导入在pages下面在进入单页模版配置的时候直接选择pages文件夹即可,或者移动文件夹到pages下面也可以,因为通常来说我们的页面都是放在pages下面来进行管理的。 看下代码以及预览效果 [图片] 该组件代码的目录: . ├── README.md ├── cloudfunctions # 云开发云函数目录 ├── miniprogram # 小程序前端代码 │ ├── miniprogram_npm │ ├── node_modules # 如果希望在 miniprogram/pages 下调用 @cloudbase/saas-module,需要在 miniprogram 下安装依赖 │ ├── pages │ │ ├── index │ │ ├── page_module_sign_up # 导入目录规范 page_module_${模块名} │ │ │ ├── README.md │ │ │ ├── components # 模块内的组件 │ │ │ ├── config.js │ │ │ ├── images │ │ │ ├── miniprogram_npm # 构建后的npm包,包含 @cloudbase/page-module │ │ │ ├── package.json │ │ │ └── pages # 模块内示例页面 │ │ └── demo │ └── sitemap.json ├── project.config.json 从代码上来看,在这里使用 page_module_sign_up/pages/index/index.wxml 是直接使用的自定义组件如果想要在前端进行样式的调整可以在 page_module_sign_up/components进行相关组件的代码修改。 [图片]这就是在文档中提到的可以对前端组件进行二开以满足业务需求。除了前端之外我们来看看后端配置 第四步:接口配置回到单页模版页面,选择接口自定义接口。 设置消息提醒首先选择一个具体的云环境进行部署云函数 [图片] 部署成功后进行代码下载 [图片] [图片] 这样你就可以得到发送订阅消息的代码,这里要注意就是要修改成自己的订阅模版。登录当前小程序的 mp 管理系统,从菜单中找到订阅消息-公共模版库-搜索【签到模版】-选中第一个进行选用。 [图片] 选用后三个字段 活动名称签到奖励温馨提示[图片] 提交即可,模版申请成功后会在我的模版中显示 [图片] 复制模版ID去小程序前端代码中进行替换,找到page_module_sign_up/config.js [图片] 替换temId和你想要用户点击推送订阅消息卡片跳转的页面page [图片] 除了小程序前端之外还需要在云函数page_module_tcb_sign_up/api/sendmsg.js进行修改。 [图片][图片] 在这里需要和管理后台的模版详情的字段序号对应上,默认下载的代码是 温馨提示:{{thing2.DATA}} 签到奖励:{{thing1.DATA}} 活动名称:{{thing3.DATA}} 代码中的逻辑是第二天发送模版消息,但是实际上测试肯定不会等到第二天要不然效率就太慢了,可以在 page_module_tcb_sign_up/api/set_remind.js 的主题逻辑run方法中修改 addDelayedFunctionTask 的 delayTime 参数,比如:我想点击10秒后发就可以设置为10。 [图片] addDelayedFunctionTask:用于延时调用云函数 delayTime:延迟时间,单位:秒,合法范围:6s-30天 设置完成后,点击明天提醒就可以立即收到模版消息推送了。 [图片] 在这里点击卡片的时候如果你签到打卡是一个新的页面会提醒找不到这个页面,因为发送推送消息默认环境跳转到正式环境去了,所以需要在 page_module_tcb_sign_up/api/sendmsg.js 改动下跳转环境。 [图片] subscribeMessage:发送订阅消息 miniprogramState:developer为开发版;trial为体验版;formal为正式版;默认为正式版 这样调试起来就不会有问题了,但是一定要记得上线后记得把时间和环境都调整过来。 接下来再来看看监听积分数据和奖品数据。 监听积分与奖品这两个监听相对简单,而且方法都是一样的所以就一起讲解。 监听积分发放需要在云函数下新建 /api/send_face_value.js 文件并实现该接口。 [图片] 监听奖品发放需要在云函数下新建 /api/send_prize.js 文件并实现该接口。 [图片] 具体实现,两种只是入参不一样其他都是一样的,以下为官方给出的代码示例。 const objCloud = require('wx-server-sdk'); /** * 具体的业务函数,在这里实现您发奖,发积分的逻辑,data 入参是固定的,出参必须遵循规范 * @param { object } data - 业务入参 * @returns { object } - 返回参数 * @returns { number } code 返回的状态标记,成功返回0, 非0代表错误 * @returns { string } msg 如果成功,则可以不返回,如果失败把相应的错误原因中文描述放在这里 * @returns { object } result 接口调用返回的信息 * */ module.exports = async (data) => { console.log("参数:", data); // 这里实现您具体的业务逻辑,例如发积分,发奖 return { code:0, msg:'suc', // 出参需要遵守自定接口规范 result: { sendResult: true }}; }; 我基于这个案例写了一个实际的业务,当用户签到获取到积分的时候我就存在我的积分表里面。 // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() module.exports = async (data) => { console.log("参数:", data); // 具体业务 const integral = await db.collection('integral') await integral.add({ data: data }) return { code: 0, msg: 'suc', result: { sendResult: true } }; }; 数据结构: [图片] 当然你自己也可以根据自己的业务来新增相关字段,做到这一步基于「单页模版」的签到打卡送积分功能就全部完成了。 注意我已经上线使用了1周了,发现了一个问题。 [图片] 用了单页模式新增了一个lowcode环境,所以在实现礼物接口和积分接口的时候需要指定下环境,要不然会出现概率报错找不到数据库。 [图片] [图片] 最后其实我很早就想实现自己的积分体系,但是由于时间不够的原因,导致迟迟没有去迈出第一步,正好遇到的单页模版的签到打卡送积分这个功能,于是在wilsonsliu的高度配合下完成了积分体系v1.0上线了。同时也非常期待后续的单页模块的邀请有礼、趣味小游戏、运营 banner 配置等上线。 只要你的小程序想要提高用户留存都需要搭建自己的积分体系,而单页模版的签到打卡功能可以成为用户获取积分的途径之一,要有积分才能去消费,具体消费积分场景可以配合积分商城或特殊功能上去进行消费。
2022-01-14