- 用云开发,快速做个小程序
将通过“云聚会助手小程序”开发实战,带大家体验云函数、云调用、云存储、云开发数据库库等微信云开发利器,如何助力开发者快速从0到1创作小程序: [视频]
2021-09-22 - 初创企业如何借助云开发实现飞速发展?
11月29日,腾讯云与微信小程序团队联合举办的第二届小程序·云开发技术峰会在北京举行,在会上有众多来自不同行业,不同实践者的案例分享,讲述了各自与云开发的故事…… 每一个准确把握技术浪潮的人,都是时代的幸运儿。 潮办科技是 19 年 11 月份成立的,到今天算是刚满一周年,公司目前有两条小程序的产品线,且都是从 0 到 1 完全基于云开发来实现。 [图片] 服务降本 一番赏ONLINE小程序在 1 月份上线,从 1 月至 4 月总销售额为26 万元。 [图片] 因为疫情,公司全员都在家,没办法发货,导致 2 月、3 月的销售额非常低;到 4 月开始,小程序才开始好转,算是正式启动了。 但将时间线拉长,看 1 月至 10 月的总销售额,已经接近 2400 万元。而因为 11 月还没有计入统计,如果加上 11 月份已经产生的销售额,那总量超过了 3000 万。 [图片] 从上述看来,前一图中非常高的 4 月,在这张图里已经可以忽略不计了,如果从 4 月正式启动开始算起,到 10 月底,潮办科技的销售额增长了将近 100 倍。 那么承载 2400 万销售额的服务器成本是多少,我们来看下成本图 [图片] 上图所示,没有一个月是超过 1000 元。在 1 月、2 月的时候,那时候还只是买套餐,3 月份上线了按量付费,切换之后,还把之前买的套餐没用完的部分退款了,所以 3 月的服务器费用是负的。 3、4、5、6 这四个月承载了将近 300 万的销售额,然而服务器成本大家可以看到,不到 70 块钱,这就很夸张了。之后伴随小程序的推广,用户的增多,服务器使用量也逐步上升,最高是在 8 月的 861 元。 那可能有人会问了,为什么销售额 9 月、10 月不比 8 月少,但是服务器成本反而低了呢? 那是因为我在看到 8 月云开发服务器账单的时候,发现 CDN 流量占了很大一部分,然后意识到,我们小程序的图片没有压缩,之前量小,就暂时忽略了。加了图片压缩之后,成本就显著降低,9 月直接降到 8 月的三分之一成本。 自动扩缩 按我在之前工作的经验看,同样的服务量如果用传统的云服务器,至少需要 2W-3W 一个月的服务器成本。那为什么云开发的服务器成本能降到这么低呢?我认为应该归功于自动扩缩容。 在之前,服务器费用对于一家初创企业来说一直是一项大支出,归根结底,我认为是因为资源浪费导致的,业务都会有流量高峰和低峰,那为了保证高峰的时候能稳定运行,一般的傻瓜式操作就是购买高性能昂贵的服务器,甚至组集群负载均衡,这就会导致在业务流量低峰的时候出现大量服务器资源浪费。而云开发的按量付费和自动扩缩容机制就完美的解决了初创企业的服务器成本问题。 这边拿我们公司的切身体验来举例。我们在 9 月 19 日的时候,做了第一次推广活动,流量瞬间进入,两个小程序都一下子承载了 10 多万的访问次数。 [图片] 这时候云函数自动扩容机制就发挥作用了,快速反应扩容来应对大流量,让这次推广活动顺利完成,活动结束后,访问量也逐步恢复平日水平,这时候自动缩容机制又开始启动了,关闭闲置的云函数资源,减少服务器成本。 再一个就在这个月,双十一活动,我们做了双保险,一个是提交了工单,云开发的工程师非常认真,帮助我们提前预热云函数,另一个是我们把活动的时间拉长,尽可能把流量分摊开,不集中在某个时间点,这次的双十一活动小程序运行也非常稳定,平台的商品全都清空售罄。 [图片] 当日销售流水达 200 多万,第二天查看云开发费用结算,就比平时多花了 10 元钱,10 元钱的服务器费用扛住了一次双十一活动,简直不敢相信,可这就是事实。 数据安全 很多初创公司每天都想着快速扩大业务,扩张团队,一笔融资到账,就想着赶紧招兵买马,往往这时候就会出现人员权限管控的问题。这时候,就会有数据安全问题出现,数据安全往往是初创企业会忽略的一个点。 在之前,比如我招一个工程师,想让他用云开发的模式来实现小程序的一些功能,我只能给他开通开发者权限,而一旦他拥有了开发者权限,云数据库等于完全对他开放,可以随意在云开发控制台里篡改线上生产服的数据。 这是一个很大的数据安全隐患,这也导致在公司快速发展那段时间,我依旧只能单枪匹马的开发,不敢招人,因为招了不熟悉的人,还不了解对方的真实为人,不敢就这么把数据库就这么交给他。 然后我当时就在云开发的微信社群里一直在推这个数据库权限控制,也获得了很多同行的共鸣,因为没有这个权限控制,企业扩大人员就会冒着极大的风险。 云开发团队也非常给力,回馈了一个非常细粒度的云开发权限控制功能,可以给每个成员设置他所需的权限,还可以对不同云环境做不同的分配,例如测试服环境给予全部读写权限,生产服环境只给读权限等等。并且不止针对开发人员,对运营人员的权限也可以很细粒度的调整,这对公司扩大团队降低了非常多的风险。 [图片] 那么除了权限问题,数据库备份也是初创企业会忽略的,圈内新闻出现删库跑路的现象还挺多的,这对公司来说肯定是一个重大损失。云开发就把这点考虑到了,最早推出的一天一次的数据库自动备份。 [图片] 这里我们也切身体会了一次,一位同事刚开始写云开发,在不熟悉的情况下误操作,导致一个含有很多数据字段的文档被清空了,还好当时被删的数据是自己公司内部其他同事的数据。我使用了数据库备份,会出现一个新的备份集合,做了对比,把被改的那条数据还原。 但当时我心里就开始在想了,这只是一条数据被改,如果万一批量被改了,万一改的是用户的数据,万一用户们在早上数据库自动备份后又新增了很多内容,那怎么办? 当时的数据库自动备份机制就不够用了,云开发团队又一次让我惊喜,升级了自动备份机制,从每天早上一次自动备份变成了秒级备份,这一秒有问题,直接用备份回到上一秒,容错度增加了好几个数量级,再也不怕删库跑路了哈哈,用起来特别安心。 作者简介:有尺物CTO,曾供职于云盾、简书,资深前端工程师,we-plugin开源项目组成员,基于腾讯云·云开发转型全栈开发者,对云开发深入理解并实践于多个项目,独立完成多个微信小程序从0到1全功能完整上线运行,其中「一番赏ONLINE」小程序达成了上线半年时间承载超2千万销售额的成绩。本文编辑自云开发峰会现场讲稿,有些文字进行了书面化处理,并匹配结合现场PPT
2021-05-28 - 云开发短信跳小程序(自定义开发版)教程
写在前面如果你想要自主开发,但没有云开发相关经验,可以采用演示视频来学习本教程: [视频] 一、能力介绍境内非个人主体的认证的小程序,开通静态网站后,可以免鉴权下发支持跳转到相应小程序的短信。短信中会包含支持在微信内或微信外打开的静态网站链接,用户打开页面后可一键跳转至你的小程序。 这个链接的网页在外部浏览器是通过 URL Scheme 的方式来拉起微信打开主体小程序的。 总之,短信跳转能力的实现分为两个步骤,「配置拉起网页」和「发送短信」。本教程将介绍如何执行操作完成短信跳转小程序的能力。 如果你想要无需写代码就能完成短信跳转小程序的能力,可以参照无代码版教程进行逐步实现。 二、操作指引1、网页创建首先我们需要构建一个基础的网页应用,在任何代码编辑器创建一个 html 文件,在教程这里命名为 index.html 在这个 html 文件中输入如下代码,并根据注释提示更换自己的信息: window.onload = function(){ window.web2weapp.init({ appId: 'wx999999', //替换为自己小程序的AppID gh_ID: 'gh_999999',//替换为自己小程序的原始ID env_ID: 'tcb-env',//替换小程序底下云开发环境ID function: { name:'openMini',//提供UrlScheme服务的云函数名称 data:{} //向这个云函数中传入的自定义参数 }, path: 'pages/index/index.html' //打开小程序时的路径 }) } 以上引入的 web2weapp.js 文件是教程封装的有关拉起微信小程序的极简应用,我们直接引用即可轻松使用。 如果你想进一步学习和修改其中的一些WEB展示信息,可以前往 github 获取源码并做修改。 有关于网页拉起小程序的更多信息可以访问官方文档 如果你只想体验短信跳转功能,在执行完上述文件创建操作后,继续以下步骤。 2、创建服务云函数在上面创建网页的过程中,需要填写一个UrlScheme服务云函数。这个云函数主要用来调用微信服务端能力,获取对应的Scheme信息返回给调用前端。 我们在示例中填写的是 openMini 这个命名的云函数。 我们前往微信开发者工具,定位对应的云开发环境,创建一个云函数,名称叫做 openMini 。 在云函数目录中 index.js 文件替换输入以下代码: const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event, context) => { return cloud.openapi.urlscheme.generate({ jumpWxa: { path: '', // 打开小程序时访问路径,为空则会进入主页 query: '',// 可以使用 event 传入的数据制作特定参数,无需求则为空 }, isExpire: true, //是否到期失效,如果为true需要填写到期时间,默认false expire_time: Math.round(new Date().getTime()/1000) + 3600 //我们设置为当前时间3600秒后,也就是1小时后失效 //无需求可以去掉这两个参数(isExpire,expire_time) }) } 保存代码后,在 index.js 右键,选择增量更新文件即可更新成功。 接下来,我们需要开启云函数的未登录访问权限。进入小程序云开发控制台,转到设置-权限设置,找到下方未登录,选择上几步我们统一操作的那个云开发环境(注意:第一步配置的云开发环境和云函数所在的环境,还有此步操作的环境要一致),勾选打开未登录 [图片] 接下来,前往云函数控制台,点击云函数权限,安全规则最后的修改,在弹出框中按如下配置: [图片] 3、本地测试我们在本地浏览器打开第一步创建的 index.html ;唤出控制台,如果效果如下图则证明成功! 需要注意,此处本地打开需要时HTTP协议,建议使用live server等扩展打开。不要直接在资源管理器打开到浏览器,会有跨域的问题! [图片] 4、上传本地创建好的 index.html 至静态网站托管将本地创建好的 index.html 上传至静态网站托管,在这里静态托管需要是小程序本身的云开发环境里的静态托管。 如果你上传至其他静态托管或者是服务器,你仍然可以使用外部浏览器拉起小程序的能力,但会丧失在微信浏览器用开放标签拉起小程序的功能,也不会享受到云开发短信发送跳转链接的能力。 如果你的目标小程序底下有多个云开发环境,则不需要保证云函数和静态托管在一个环境中,无所谓。 比如你有A、B两个环境,A部署了上述的云函数,但是把 index.html 部署到B的环境静态托管中了,这个是没问题的,符合各项能力要求。只需要保证第一步 index.html 网页中的云开发环境配置是云函数所在环境即可。 部署成功后,你便可以访问静态托管的所在地址了,可以通过手机外部浏览器以及微信内部浏览器测试打开小程序的能力了。 5、短信发送云函数的配置在上面创建 openMini 云函数的环境中再来一个云函数,名字叫 sendsms 。 在此云函数 index.js 中配置如下代码: const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => { try { const config = { env: event.env, content: event.content ? event.content : '发布了短信跳转小程序的新能力', path: event.path, phoneNumberList: event.number } const result = await cloud.openapi.cloudbase.sendSms(config) return result } catch (err) { return err } } 保存代码后,在 index.js 右键,选择增量更新文件即可更新成功。 6、测试短信发送能力在小程序代码中,在 app.js 初始化云开发后,调用云函数,示例代码如下: App({ onLaunch: function () { wx.cloud.init({ env:"tcb-env", //短信云函数所在环境ID traceUser: true }) wx.cloud.callFunction({ name:'sendsms', data:{ "env": "tcb-env",//网页上传的静态托管的环境ID "path":"/index.html",//上传的网页相对根目录的地址,如果是根目录则为/index.html "number":[ "+8616599997777" //你要发送短信的目标手机,前面需要添加「+86」 ] },success(res){ console.log(res) } }) } }) 重新编译运行后,在控制台中看到如下输出,即为测试成功: [图片] 你会在发送的目标手机中收到短信,因为短信中包含「退订回复T」字段,可能会触发手机的自动拦截机制,需要手动在拦截短信中查看。 需要注意:你可以把短信云函数和URLScheme云函数分别放置在不同云开发环境中,但必须保证所放置的云开发环境属于你操作的小程序 另外,出于防止滥用考虑,短信发送的云调用能力需要真实小程序用户访问才可以生效,你不能使用云端测试、云开发JS-SDK以及其他非wx.cloud调用方式(微信侧WEB-SDK除外),会提示如下错误: [图片] 如果你想在其他处使用此能力,可以使用服务端API来做正常HTTP调用,具体访问官方文档 7、查看短信监控图表进入 云开发控制台 > 运营分析 > 监控图表 > 短信监控,即可查看短信监控曲线图、短信发送记录。 [图片] 三、总结短信跳转小程序核心是静态网站中配置的可跳转网页,外部浏览器通过URL Scheme 来实现的,这个方式不适用于微信浏览器,需要使用开放标签才可以URL Scheme的生成是云调用能力,需要是目标小程序的云开发环境的云函数中使用才可以。并且生成的URL Scheme只能是自己小程序的打开链接,不能是任意小程序(和开放标签的任意不一致)短信发送能力的体验是每个有免费配额的环境首月100条,如有超过额度的需求可前往开发者工具-云开发控制台-对应按量付费环境-资源包-短信资源包,进行购买。如当前资源包无法满足需求也可通过云开发 工单 提交申请[图片]短信发送也是云调用能力,需要真实小程序用户调用才可以正常触发,其他方式均报错返回参数错误,出于防止滥用考虑云函数和网页的放置可以不在同一个环境中,只需要保证所属小程序一致即可。(需要保证对应环境ID都能接通)如果你不需要短信能力,可以忽略最后两个步骤CMS配置渠道投放、数据统计可参考官方文档
2021-04-07 - 导购分销 - 使用指引
12.30能力更新:企业店小商店支持视频号直播记佣 你的导购在他自己的视频号可直播卖你店的货,卖货后,推广商品同样将记佣给该导购 12.17能力更新:导购分销能力现已支持线上自动结算。 能力更新:现支持分佣结算的分享方式有 1、 分享海报 (适合分享到朋友圈,或者制作线下物料) 2、 直接点击进入小程序,分享该商品页面 (用户可在会话列表中直接点击进入小商店购买,缩短进入小商店路径) 3、 复制小程序路径链接(可链接到公众号或其他小程序) 导购分销是一个让人可以帮你一起卖货的销售激励能力。 通过添加企业员工、门店导购、渠道经销商等小商店关联角色为导购分销员,设置商品的销售提成来激励分销员线上销售,迅速扩张线上销售额。 该课程将指引您以下内容: 一、如何添加导购管理员? 二、如何创建提成模板? 三、如何管理导购分销员? 四、如何进行商品管理? 五、导购该如何使用手机端导购分销模块? 提示:若您还不了解导购分销的主要功能,可以先参考导购分销 - 用销售激励,让人一起帮你卖货哦~ [图片][图片][图片][图片] 更多资讯,欢迎到【交流专区】微信小商店主页发帖和寻找答案。
2022-04-13 - 第三方代注册小程序支持快速设置登录邮箱和密码
近期平台对第三方服务商代注册小程序的流程进行了优化,用户通过第三方服务商成功创建小程序后,将收到设置小程序登录邮箱和密码的微信消息提醒。管理员可通过点击提醒内的“前往设置邮箱密码”或直接搜索「小程序助手」小程序进行邮箱密码的设置。 温馨提示:所设置的邮箱需要是未绑定任何个人微信、公众号、小程序、微信开放平台的邮箱 详细操作流程如下: 1.打开“小程序助手”小程序,选择对应的小程序 [图片] 2.点击“登录邮箱”设置项 [图片] 3.填写邮箱以及设置小程序密码 [图片] 4.系统会发送验证邮件到邮箱 [图片][图片] 5.打开邮件中的链接,确认验证 [图片] 6.邮箱设置成功,可以在官网:mp.weixin.qq.com用所设置的邮箱和密码登录小程序后台 [图片] 如有疑惑,可微信搜索小程序服务商助手-我的-咨询反馈。
2020-07-03 - 小程序是否可以嵌入不同主体的“小程序购物组件”?
小程序是否可以嵌入不同主体的“小程序购物组件”? 目前我有公司A和个体户B两个主体(法人代表是同一人),有食品经营许可证的实体店个体户B主体申请了微信小商店,并已上线销售,那么我公司A是代运营性质,能否在我公司A的小程序中嵌入我个体户B的“小程序购物组件”?是否后台关联后就能使用? 还是可以以广告的形式链接到其他不同主体的微信小商店?可自主投放以改革至公众号、H5、小程序场景可自主投放至公众号、H5、小程序场景可自主投放至公众号、H5、小程序场景 知道的麻烦告知,不太懂程序搞懂了再请人程序员开发,非常感谢! 小程序appid: wx11*********280 小程序路径:plugin-private://wx343*****f892d/pages/productDetail/productDetail?productId=123456789
2020-11-13 - 第三方平台快速注册小程序需要哪些权限集?
第三方平台快速注册小程序总是说权限不足,又不知道需要哪些权限,我们除了一些WiFi插件这些我们用不到的没勾选,其他都勾选了。官方接口文档上不能说明一些需要哪些权限吗?
2020-01-13 - 第三方平台复用公众号创建的小程序应该这样开通微信支付功能
第三方平台代客户复用公众号创建的小程序需要使用到微信支付功能时,不需要对创建后的小程序开通微信支付功能 微信没有给出这方面的说明,所以导致很多开发人员都走错了方向。 其实对于第三方平台代为创建的小程序,需要做的是对微信开放平台的第三方平台下所绑定的“开发小程序”开通微信支付功能 也就是下图所对应的开发小程序,假设该小程序的AppID为:wx1411111111111111 [图片] 所以,如果需要在第三方创建的小程序(假设该小程序AppID为wx2422222222222222)上进行小程序微信收款,那么: (1)使用商户自己申请的微信支付进行收款(这个暂时无法实现) 请登录该微信支付商户平台,在【产品中心 → APPID授权管理】中新增“授权申请单”,此时授权的AppID为wx1411111111111111,而非wx2422222222222222,也就是说就算你在第三方平台代商户创建了1万个小程序,也只需要对一个小程序(也就是原始的开发小程序)进行微信支付授权,这个时候显然是可以在【微信公众平台】上登录上登录原始的开发小程序的,可以轻松进行M-A授权确认 以前会得出上述结论是因为我用的微信支付账户主体与微信开发平台账号主体是一样的 (2)使用服务商模式下的商户号进行收款 请登录微信服务商平台,在【服务商功能 → 特约商户管理】中找到对应的子商户号,对它进行“开发配置”,在【特约商户APPID配置】中添加AppID为wx1411111111111111的原始开发小程序即可(需要注意的是,这个时候再小程序中进行微信支付时,应该在sub_appid填写wx1411111111111111)在【特约商户APPID配置】中添加AppID为wx2422222222222222的小程序即可(需要注意的是,这个时候在小程序中进行微信支付时,应该在sub_appid填写wx2422222222222222,通过wx.getAccountInfoSync().miniProgram.appId获得) [代码]appid:[代码][代码]'服务商商户号对应公众号的appid'[代码][代码],[代码] [代码]sub_appid:[代码][代码]'第三方创建的小程序的appid'[代码][代码],[代码] [代码]mch_id:[代码][代码]'服务商商户号'[代码][代码],[代码] [代码]sub_mch_id:[代码][代码]'子商户商户号'[代码] 服务商可以通过以下页面提供的API,自动为任意特约商户号配置APPID https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=20_3&index=3
2019-01-10 - 快速创建小程序接口
快速创建小程序接口,通过三方平台的快速创建的小程序,怎么配置微信支付功能,“线上”指的是线上支付吗“线下”是线下支付吗? 感觉快速创建小程序这个功能进步了一大截,但是真正需要运用起来的局限性是还有很多的,其中涉及到的支付类小程序就完全没法做。
2019-02-12 - 显示在小程序上的文本怎么可以复制?
显示在小程序上的文本怎么可以复制?
2020-07-07 - 微信小程序跳转将不再限制
群体突然传来一条消息,小程序跳转将不在限制,且无需前端声明。也就是说【navigateToMiniProgramAppIdList】以后用不到啦~~~ [图片] 这样的好处对运营来说相当方便:比如自己公司的某个小程序流量特别高,新注册的N个小程序没有流量,那么可以随时添加,无需前端提交审核。 刚才试了一下,前端无申明,后台随便添加了一个小程序,确实可以。 还没体验的伙伴们,赶快去试试吧 但是:请合理利用 [图片]
2020-04-29