- 云函数调用API访问阿里云物联网例程?
最近在做一项开发,想用云函数通过API接口访问阿里云物联网,并查询设备的属性值。请问一下: 1、在云函数里能不能调用SDK程序,怎么添加和调用呢? 2、有没有云函数访问阿里云物联网的例程,我参考借鉴一下。 谢谢各位!
2023-10-16 - 微信小程序map组件怎么实现带洞多边形?
如图: [图片]
2022-10-29 - 地图组件行政区块高亮,其他位置有遮罩层,怎么实现?
[图片]
2023-09-07 - 不同页面通过订阅消息事件的方式互相通信
业务背景是tabbar有一个新增的功能,在不同的页面都可以操作新增,保存后首页以及个人中心页面的清单数据都要马上更新,但又不想通过调用接口的方式更新。因此自己搞了一个简单的消息事件订阅,比如A,B,C三个页面同时订阅更新事件,那么在D页面操作了更新动作后就会通知A,B,C三个页面。 代码示例: event.js //事件集合 const eventInfo = {}; /** * 注册消费者 * 相同事件、相同消费者名称时会被覆盖 * @param eventName 事件名称 * @param callback 回调事件 */ const on = (eventName, callback) => { const pages = getCurrentPages(); const consumerName = pages[pages.length - 1].route; if (!eventInfo[eventName]) { console.warn("广播事件不存在,不处理", eventName, consumerName); return; } const consumerInfo = eventInfo[eventName]; consumerInfo[consumerName] = callback; console.log("注册消费者完毕=>", eventName, consumerName); } /** * 取消消费者 * @param eventName 事件名称 */ const off = (eventName) => { const pages = getCurrentPages(); const consumerName = pages[pages.length - 1].route; if (!eventInfo[eventName]) { console.warn("广播事件不存在,不处理=>", eventName, consumerName); return; } const consumerInfo = eventInfo[eventName]; delete consumerInfo[consumerName]; console.log("取消消费者完毕=>", eventName, consumerName); } /** * 推送事件消息 * @param eventName 事件名称 * @param data 消息体 */ const emit = (eventName, data = {}) => { if (!eventInfo[eventName]) { console.warn("广播事件不存在,不处理=>", eventName, data); return; } const consumerInfo = eventInfo[eventName]; const consumerNames = Object.keys(consumerInfo); consumerNames.forEach(consumerName => { if (typeof consumerInfo[consumerName] == 'function') { console.log("推送事件消息完毕=>", eventName, consumerName, data); consumerInfo[consumerName](data); } else { console.warn("消费者没有回调函数,不处理=>", eventName, consumerName, data); } }) } /** * 批量推送事件消息 * @param eventNames * @param data */ const emitBatch = (eventNames, data) => { eventNames.forEach(eventName => { emit(eventName, data); }) } /** * 初始化 */ const init = () => { try { console.log("初始化广播通道"); const eventNames = Object.keys(EVEN_NAME); eventNames.forEach(eventName => { eventInfo[eventName] = []; }) } catch (e) { console.error("初始化广播通道出现异常:", e) } } /** * 事件列表 * @type {{REFRESH_CARD_LIST: string, REFRESH_USER_INFO: string}} */ const EVEN_NAME = { RELOAD_CARD_LIST: "RELOAD_CARD_LIST",//重新加载清单数据 RELOAD_USER_INFO: "RELOAD_USER_INFO",//重新加载用户信息 SAVE_CARD_LIST: "SAVE_CARD_LIST",//保存清单 JOIN_INFO_FINISH: "JOIN_INFO_FINISH",//共享完成 JOIN_INFO_FINISH_CONFIRM: "JOIN_INFO_FINISH_CONFIRM",//共享完成确认 } module.exports = {init, on, off, emit, emitBatch, EVEN_NAME} 订阅消息: event.on(event.EVEN_NAME.RELOAD_CARD_LIST, data => { console.log("接收到刷新清单事件推送", data); this.loadData(); }); event.on(event.EVEN_NAME.RELOAD_USER_INFO, data => { console.log("接收到刷新用户信息事件推送", data); auth.setUserInfo2Data(app, this).then(); }); event.on(event.EVEN_NAME.JOIN_INFO_FINISH, data => { console.log("接收到共享记录完成事件推送", data); this.loadData(); auth.setUserInfo2Data(app, this).then(); this.toast.showToast({text: "清单共享成功啦"}); }) 发送消息: event.emit(event.EVEN_NAME.SAVE_CARD_LIST, e);
2024-02-07 - [省钱小妙招]当业务起来,”云开发“费用起飞后如何省钱!
[图片] 很多小程序的早期开发者,为了快速起项目,会使用微信的云函数、云开发来作为后台的数据存储和交互,给我们提供非常多便利的同时,也需要关注一些问题: [图片] 假如这个项目火了!数据量一下子大上去后,套餐用完直接费用炸了~ 除了把后端迁移到xx云服务器外,想继续使用云开发的话,有什么好的控制成本的方案呢? 一、业务起来,云开发费用炸了 下面来看下我们遇到的问题: [图片] 1.1 超出套餐后,费用很贵 这里可以看到,套餐最高的级别是999的那个,我们其中一个小程序已经购买了最贵的套餐,现在就遇到这个问题,超出套餐的部分价格会变得很贵。 [图片] 1.2 云开发收费规则分析 [图片] 注意,这里要仔细研究下这个计费模式,你会发现核心是内存占用 云函数并发数:云函数的并发数量是指在任意指定时间对函数代码的执行数量。对于当前的 SCF 函数来说,每个发布的事件请求就会执行一次。因此,这些触发器发布的事件数(即请求量)会影响函数的并发数。 每秒请求量 x 函数执行时间(按秒) 例如,考虑一个处理存储事件的函数,假定函数平均用时0.2秒(即200毫秒),存储每秒发布300个请求至函数。这样将同时生产 300 * 0.2 = 60 个函数实例。 数据库同时连接数 :数据库请求并发数量,如同时有三十个数据库操作请求,则有二十个会同时执行,剩下十个返回超出并发错误;一次数据库请求(无论小程序端发起还是云函数端发起)将耗费一个连接;每个云环境分别有一个同时连接数限制、独立计数。 常驻云函数闲置量:计算公式: 闲置的常驻云函数数量 * 该云函数的配置内存 * 闲置时长 * 常驻云函数闲置量定价 假如数据库查询平均耗时 10ms,那么一个连接可以支持 100qps(1000ms/10ms=100),20个连接可以支持到 2000qps。 二、优化方案: 2.1 云函数操作优化 [图片] 一些需要增删改查的方案,尽可能放在一个云函数里实现,因为如果你修改后,再调用另外一个云函数查找结果,这样计算的时候,就算2个流量~ 2.2 云函数内存调整 如果你用的云函数没有非常复杂的功能,考虑到云函数费用计算的公式。 [图片] 可以把它的内存占用调整到最低档128MB,相比于默认的256MB,每次访问都能省一半内存,效果立竿见影,费用可以节省40%左右~ 2.3 数据静态化 如果你用到云数据库,这里就会有一个问题,你可以一个操作需要调用云函数的同时,还需要使用数据库的资源,一旦超过套餐费用可不低哦,所以你需要做的核心是 尽可能减少对云开发和运数据的使用,我们可以采用以下的优化方案: 如果你的数据是JSON或者不经修改的配置数据,可以使用云存储,这个费用低多了 如果你有一些静态页面,授权文件,或者静态数据,可以使用云主页 [图片] [图片] [图片] 三、官方费用计算网站 https://cloud.weixin.qq.com/cloudbase/price https://developers.weixin.qq.com/miniprogram/dev/wxcloud/billing/price.html 总结: 以上是针对你还是想 继续用微信云开发 的费用优化,对于早期开发项目的小伙伴,本人还是非常推荐使用的,毕竟开发成本是真的低,后期数据和流量上来了,再优化也来得及~
2023-11-30 - 「公众号/服务号运营」之自定义菜单篇
公众号/服务号运营小知识之自定义菜单篇 一、公众号/服务号主页中没有展示菜单? 目前所有菜单消息类型都会显示在公众号/服务号主页上面。 如果自定义菜单内容设置的消息类型是 “发送消息” ,在公众号/服务号主页【服务】栏目中不会展示此菜单; 若菜单设置的是 “跳转网页” 、 “跳转小程序” ,则会在公众号/服务号主页【服务】栏目中展示。 [图片] 二、菜单可以跳转到外部链接吗? 目前 未完成微信认证的公众号(即原订阅号) 不支持跳转其他网址,只能输入与公众号/服务号相关的链接,例如:页面模板、合集、公众号/服务号主页、发表的内容; 服务号 和 已完成微信认证的公众号(即原订阅号) 可以在【跳转网页】中输入外链地址进行跳转。 虽然输入框这里显示着「公众号链接」,但是符合条件的账号是可以填写外部链接并保存的。 [图片] 三、如何设置纯文字消息类型? 服务号和**已完成微信认证的公众号(订阅号)**可以设置纯文字类型,消息类型选择【发送消息】,菜单内容中选择【文字】; **未完成微信认证的公众号(订阅号)**暂不支持设置纯文字类型。 [图片] 四、如何设置多篇文章? 有两种方式可以实现。 1、发送消息 可以在编辑消息的时候,点击「新建消息」,这里最多可以有8篇文章,编辑好后发布。 [图片] 再前往自定义菜单中选择消息类型为【发送消息】,菜单内容选择【图文消息】, [图片] 在上方选择「卡片视图」,选择刚刚刚才编辑好的内容就可以了。 [图片] 2、跳转网页 可以将文章整理成【合集】或【页面模板】,这样就会生成一个链接,打开就是添加好的文章了。 [图片] 合集 目前每个合集下最多可以添加1000个文章。 [图片] 页面模板 (1)目前列表模板最多可以放30篇文章; (2)目前综合模板上半部分封面那里最多添加3篇文章,下半部分最多可以添加5个分类,每个分类下最多可以添加30篇文章。 [图片] [图片] 在消息类型中选择【跳转网页】,在输入框中输入 合集 或 页面模板 的链接即可。 [图片] 五、当前菜单配置已失效并停用? 1、服务器配置 当你进入到公众号/服务号后台自定义菜单页面看到 “未开启自定义菜单:由于开发者通过接口修改了菜单配置,当前菜单配置已失效并停用。你可以前往开发者中心进行停用。” 这个提示。 [图片] 这是因为你的公众号/服务号启用了服务器配置,公众号/服务号后台的菜单就会失效并停用。 [图片] 如果需要修改自定义菜单,可以联系开发人员调用API接口修改:https://developers.weixin.qq.com/doc/offiaccount/Custom_Menus/Creating_Custom-Defined_Menu.html 。 如果你们想在公众号/服务号后台修改自定义菜单,需要将服务器配置停用。这里要注意:服务器配置停用后可能会影响你们之前通过API设置的一些功能,比如通过API设置的自动回复、通过API设置的自定义菜单等等。在操作之前建议与你们公众号开发人员确认下,确实不需要服务器配置再选择停用。 2、API版本菜单使用中 有一种情况就是显示「API版本菜单使用中」。 [图片] 这是开发人员通过调用API接口,或者是授权给第三方平台设置自定义菜单,公众平台后台这里菜单就会失效。 如果想要查看API菜单配置,可联系开发人员调用接口:https://developers.weixin.qq.com/doc/offiaccount/Custom_Menus/Getting_Custom_Menu_Configurations.html ,或前往对应的第三方平台查看菜单配置。 如需删除API版本菜单可联系开发人员调用接口:https://developers.weixin.qq.com/doc/offiaccount/Custom_Menus/Deleting_Custom-Defined_Menu.html 。 当然,你可以在后台设置菜单,确认发布后,会覆盖掉之前通过API接口设置的菜单。 [图片] 六、手机端没同步最新的菜单? 可以先回忆一下当时编辑好菜单内容后是否有点击「保存并发布」按钮? 确定已经点击了,你可以取消重新关注公众号/服务号试试或者过一段时间再看看;要是还没有同步显示,可以在公众号/服务号后台重新编辑下菜单再点击一下「保存并发布」试试。 一般来说,自定义菜单发布后会在24小时内同步到手机端。 七、无法跳转到小程序指定路径? 如果你在自定义菜单中设置跳转小程序,在手机上无法打开,提示页面路径不存在的问题,有可能是以下原因导致的: 1、填写的路径带有「.html」后缀(像下图这样的),如有去除后保存并发布试试(菜单发布需要一定时间同步,可以参考上面第六条回答。 [图片] 2、填写的路径有误,或者没有在线上版本发布生效。 如何获取小程序页面路径? (一)联系小程序开发者 建议联系小程序开发者获取页面路径,这样会更准确。 (二)开发者工具 开发者可以直接在开发者工具上获取到页面路径。打开「模拟器」,在左下角会有个「页面路径」栏目,复制即可。 [图片] (三)通过公众号/服务号获取 随便进入到任一篇文章编辑页面,点击上方菜单栏中的「小程序」(如果没有可以到旁边「…」看下是否被折叠了), [图片] 点击下「去搜索」。 [图片] 输入要搜索的小程序名称/AppID/账号原始ID,进入到下一步。 [图片] 输入框这里默认填写的是小程序的首页路径,需要获取其他的页面路径,可以点击页面上「获取更多页面路径」,根据右侧页面上的提示操作。 [图片] ⚠️ 要点击的是「复制页面路径」,不要错点成「复制链接」了。 [图片] 复制出来的页面路径形如 pages/index/index 。 ⚠️ 需要注意的是:通过这个方法复制出来的路径会带有「.html」,记得要删掉哈。 八、自定义菜单中已发表的内容无法编辑? 如需修改自定义菜单中已发表的内容:前往 首页 -> 选择已有图文 -> 选择对应的内容 导入旧素材修改后重新发表,再前往自定义菜单中替换即可。 [图片] 如果想要发表的内容不显示在公众号/服务号主页上,可以参考下这篇文章《如何发表内容不显示在公众号/服务号主页?》:https://developers.weixin.qq.com/community/develop/article/doc/00042063e74988fa8c3222ab86b013 说明 由于产品不断迭代更新,本文内容非实时更新,可能已过期、失效或不适用于当前情形,请谨慎参考。 问题反馈 在使用的过程中如果遇到一些问题,在社区搜索查阅后仍无法解决,你可以前往「社区公众号版块」发帖反馈。 在发帖时请详细说明情况,最好能够提供相关问题截图、附上公众号的原始ID、最后操作的一次时间点(具体到分钟),以便社区官方专员看到帖子后更好地帮你查看问题。
03-05 - 省钱有道之 云开发环境共享小结
#前言 最近为了节省一点小程序的运营成本,一些没啥流量的小程序如果每个月也要19块略微有些肉疼(主要还是穷),研究了一下云环境共享,在这里简单做一下总结。 [图片] 这里有官方的小程序环境共享文档需提前了解一下,具体共享步骤按官方文档操作即可。 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/resource-sharing/introduce.html #注意点 共享环境有几个注意点大致如下: 1、必须是相同主体 2、开通了云开发环境的小程序可以共享给同主体的小程序、公众号,被共享方无需开通云开发环境 3、一个云开发环境最多可以共享给10个小程序/公众号 4、共享后双发均可主动解除 5、按官方文档要求,资源方需有云函数cloudbase_auth,测试时发现没有这个云函数其实也能正常运行,可能我验证的场景还不够多 6、云能力初始化的方式不同,资源方按传统的云环境初始化方式即可,也就是 wx.cloud.init({ env: env.activeEnv, traceUser: true }); 而调用方的初始化方式有所不同 const cloud = new wx.cloud.Cloud({ //资源方AppID resourceAppid, //资源方环境ID resourceEnv, }) // 跨账号调用,必须等待 init 完成 // init 过程中,资源方小程序对应环境下的 cloudbase_auth 函数会被调用,并需返回协议字段(见下)来确认允许访问、并可自定义安全规则 const initRes = await cloud.init(); 后续调用资源方的云函数就用这个cloud就行了:cloud.callFunction({...}); 7、调用方有操作到云存储文件的api也需要用6步骤中的cloud 8、云存储fileId需要用cloud.getTempFileURL转换成临时/永久链接,否则在调用方无法展示 9、一些api的云调用方式也有变化,需指明具体的appid。比如A小程序授权给了B小程序,想给B小程序推送客服消息需要写成 await cloud.openapi({appid:B小程序appid}).customerServiceMessage.send({...}); 10、获取调用方的appid/openid/unionid也有所不同 // 跨账号调用时,由此拿到来源方小程序/公众号 AppID console.log(wxContext.FROM_APPID) // 跨账号调用时,由此拿到来源方小程序/公众号的用户 OpenID console.log(wxContext.FROM_OPENID) // 跨账号调用、且满足 unionid 获取条件时,由此拿到同主体下的用户 UnionID console.log(wxContext.FROM_UNIONID) #适配 基于以上注意点,开始进行适配,由于我是一套代码部署N个小程序,然后一个云环境共享给其他小程序,希望通过配置决定哪个小程序作为资源方,哪些作为调用方 首先是云开发环境的初始化: 1、env.js 环境配置: //云开发环境 const cloudBase = { //使用共享云环境资源,资源方=false,调用方=true useShareResource: false, //资源方AppID resourceAppid: "wx9d2xxxxxxxx0088", //资源方环境ID resourceEnv: "prod-9gxqvi3qb3c257ef", //云环境ID prod: "prod-9gxqvi3qb3c257ef" } 2、api.js 操作模块 const env = require('../env.js'); let cloud; /** * 初始化云能力 * @returns {Promise} */ const wxCloudInit = async function () { const {cloudBase} = env; if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else if (cloudBase.useShareResource) { const {resourceAppid, resourceEnv} = cloudBase; // 声明新的 cloud 实例 cloud = new wx.cloud.Cloud({ //资源方AppID resourceAppid, //资源方环境ID resourceEnv, }) // 跨账号调用,必须等待 init 完成 // init 过程中,资源方小程序对应环境下的 cloudbase_auth 函数会被调用,并需返回协议字段(见下)来确认允许访问、并可自定义安全规则 const initRes = await cloud.init(); console.log("初始化云能力完毕:", initRes, "资源方appid:", resourceAppid, "资源方环境ID:", resourceEnv); } else { wx.cloud.init({ env: env.activeEnv, traceUser: true }); console.log("初始化云能力完毕,当前环境:", env.activeEnv); cloud = wx.cloud; } this.cloud = cloud; } /** * 云函数调用 * @param name * @param data * @param success * @param fail * @param complete */ const callCloudFunction = function (name, data, success, fail, complete) { //执行云函数 cloud.callFunction({ // 云函数名称 name: name, // 传给云函数的参数 data: Object.assign({}, data, {env: env.activeEnv}) }).then(res => { typeof success == 'function' && success(res); }).catch(res => { typeof fail == 'function' && fail(res); }).then(res => { typeof complete == 'function' && complete(res); }); }; 3、在app.js中初始化云环境,后续有用到wx.cloud的都需要改成api.cloud const api = require('utils/api.js'); App({ onLaunch: async function (options) { await api.wxCloudInit(); } }); 其次是资源方的获取用户信息调整 每次都要判断wxContext.FROM_OPENID是否为空,不为空则是调用方的用户信息,为空则是资源方的用户信息,略微繁琐,干脆封装了一个npm包wx-server-inherit-sdk,改造了一下getWxContext函数,源码如下,引入这个包后也就可以不用引入官方的wx-server-sdk const cloud = require('wx-server-sdk'); // 保存原始getWXContext方法到另一个变量 const originalGetWXContext = cloud.getWXContext; cloud.getWXContext = function () { //调用原始getWXContext方法 const wxContext = originalGetWXContext.call(this); const {FROM_APPID, FROM_OPENID} = wxContext; //云开发环境共享时获取到的APPID会替换成源方APPID if (FROM_APPID) { Object.assign(wxContext, {APPID: FROM_APPID}); } //云开发环境共享时获取到的OPENID会替换成源方OPENID if (FROM_OPENID) { Object.assign(wxContext, {OPENID: FROM_OPENID}); } return wxContext; } module.exports = cloud; 到此也就大功告成。为了省钱也是够折腾的[哭笑]
2023-08-28 - 违规问题已经申诉?多久能有结果啊?搜索分享功能什么时候可以恢复?
appid: wxb5c95f9139a7459a
2023-06-20 - 小游戏到底怎么画图?
就想根据图片链接,动态展示一张图片,文档真是依托答辩,毫无上下文 [图片] cocos直接用cc.spriteframe抓链接就行了,像这样子: cc.loader.load({url: url, type: 'png'}, function(err,img){ var myIcon = new cc.SpriteFrame(img); self.logo.spriteFrame = myIcon; }) 微信小游戏怎么啥都没有,包括它所谓的游戏引擎,更是毫无详细文档?开发工具也是bug一堆。。
2023-07-24 - 小程序收益,这个收益也太低了吧?
为什么ecpm越来越低,而且1000访客每天只要3快收益
2022-10-25 - 新手个人耗时1个月开发游戏,《粉夏飞行》今天正式上线微信小游戏平台,顺带来聊聊我踩的坑。
个人觉得用Cocos Creator做微信小游戏非常合适,上手很快,会点TS基本扫一般Cocos的用户手册就可以上手了。所以使用Ccc 来写了自己的第一部作品,Cocos的论坛还是挺活跃的,做的过程中遇到问题去Cocos的论坛搜一遍基本都能找到解决方案,安利一下最近用cocos creator刚做的微信小游戏,【粉夏飞行】一款横版飞行游戏,与以往的飞行射击类不同,画风更可爱,在飞行中吃胶囊加快进入BOSS关,然后发射子弹击退恶龙,并获得金币升级战机,游戏轻快休闲,微信扫描二维码就能玩起来,欢迎提bug哈。 [图片] 顺便总结了快速上手Cocos Creator和微信小游戏的学习路径: 一、Cocos Creator篇总结 1、首先熟悉官方的手册和api文档,文档还是比较详细,游戏的方方面面都涉及到了 官方手册: http://docs.cocos.com/creator/manual/zh/ 257 官方api文档: http://docs.cocos.com/creator/api/zh/ 2、快速上手,跟着官方的快速上手项目快速了解一下小游戏的制作基本流程 快速上手项目: http://docs.cocos.com/creator/manual/zh/getting-started/quick-start.html 3、遇到问题了怎么办?先去官方论坛搜一遍,论坛还是比较活跃的,常见的坑都被人踩过了,基本都能找到解决方案 cocos官方论坛: http://forum.cocos.com/c/Creator 4、它山之玉,可以攻玉,看看别人的总结和教程 推荐cocos官方王哲总结的帖子已经相当全面了: http://forum.cocos.com/t/creator/44782 关注cocos的官方微信号,了解最新动态和指导,例如这个总结也不错: https://mp.weixin.qq.com/s/sKCkD2w7B97piZJ1fcRQlQ 5、特效动画相关 5.1、骨骼动画,推荐免费的dragonbones: http://dragonbones.com/cn/index.html dragonbones教程: http://dragonbones.com/cn/learn.html 5.2、shader动画: 推荐这个库: https://github.com/fylz1125/ShaderDemos https://www.shadertoy.com/ 5.3、粒子特效编辑器,推荐免费的: http://www.effecthub.com/particle2dx http://onebyonedesign.com/flash/particleeditor/ 6、物理碰撞系统 box2d物理系统案例推荐这个官方的案例开源项目,里面有很多案例: https://github.com/2youyou2/physics-example 7、开源项目篇 推荐这个游戏项目,做的质量很好,推荐学习: https://github.com/cocos-creator/tutorial-dark-slash 二、微信小游戏篇总结 1、首先也是熟悉cocos发布微信流程,一键发布到微信开放者工具里 http://docs.cocos.com/creator/manual/zh/publish/publish-wechatgame.html 2、微信官方文档和论坛,遇到问题就去扫一遍: https://developers.weixin.qq.com/minigame/dev/index.html 3、微信小游戏的常见关注的几个点: 3.1 、微信游戏圈 给小游戏增加小论坛的入口,让玩家可以分享讨论游戏,还是挺实用的: https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/game-club.html 3.2、转发小游戏 转发有两个出发地方:1、点击右上角三个点转发小游戏,2、自己在游戏中触发 https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/share.html 3.3、微信排行榜 关系链数据 排行榜这个比较麻烦一点,微信为了保护自己的关系链数据,引入了游戏的开发数据域的概念,游戏会存在主域和开放数据域两个上下文,在开放数据域里能拿到排行榜这样的关系链数据,然后此时我们将数据信息绘制到sharedCanvas上共享给主域来展示,主域是拿不到关系链数据的 cocos有个官方的解决版本,就是子域也引入cocos的框架来做可能会加大包的大小 这个版本的排行榜不错 https://github.com/864381832/wxGameRank 三、素材资源篇总结 1、图标矢量图等素材 阿里巴巴开源的这个素材库相当不错: http://www.iconfont.cn/search/index 2、音频素材等 http://taira-komori.jpn.org/instrument01tw.html http://www.aigei.com/sound/class/piano/ 3、粒子特效素材等 http://www.effecthub.com/item/demo/Particle2dx/ 安利一下最近用cocos creator刚做的微信小游戏,【粉夏飞行】一款横版飞行游戏,与以往的飞行射击类不同,画风更可爱,在飞行中吃胶囊加快进入BOSS关,然后发射子弹击退恶龙,并获得金币升级战机,游戏轻快休闲,微信扫描二维码就能玩起来! [图片]
2023-02-02 - 云开发使用云存储可以调用内容安全检测图片API吗?
API名称:内容安全检测图片API:openapi.security.imgSecCheck 问题:做的小程序功能是用户发布帖子,涉及文本和图片,文本直接调用云开发的【内容安全】功能,图片期望调用内容安全检测图片API。但是遇到一个问题是,mediaURL需要传HTTP或HTTPS,不能使用云开发中云存储的fileID,只能用外部服务器。 请问,对于云开发的方式,有什么办法可以进行图片的安全检测吗?谢谢! 整改时间快到了,呜呜~
2022-08-24 - 特约商户发起分账给个人(高比例),是否涉及二清
我公司将食堂承包出去,承包商为个人,用户将钱付款至公司商户中心,公司将80%比例分账给承包商个人,公司拿20%
2022-10-29 - 使用普通商户分账功能,将我们收取的货款中的采购成本实时分账给我们的供货商算是二清吗?
我们公司为零售运营商,零售运营系统为我司自行开发,我司将零售商品收入的成本价格实时分账给我们的供货商,算是二清吗?
2022-11-17 - 关于申请高比例分账
我想问问,关于高比例分账,每增加一个高比例分账客户必须要再申请一次还是申请通过后其它客户也可以使用,是否有更好的替代方案?
2022-01-10 - 支持服务商直接调用批量转账到零钱接口,从服务商的微信账户进行转账至个人用户零钱吗?
我司作为服务商开发了一个电商小程序,业务场景是调用分账接口分润后,希望直接从服务商的微信账户进行转账至个人用户零钱,是否能直接调用批量转账到零钱接口?即https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_3_1.shtml 1.以上场景是否能直接调用批量转账到零钱接口? 2.我看文档中需要“特约商户号”,但服务商不是不能作为同一主体的服务商下的“特约商户”吗? 3.如不能通过接口,是否有其他形式实现上面的功能?
2022-09-13 - 列表拖拽排序置顶删除效果
一个简单的拖拽排序置顶效果, 一个简单的拖拽排序置顶效果 一个简单的拖拽排序置顶效果 一个简单的拖拽排序置顶效果 一个简单的拖拽排序置顶效果 一个简单的拖拽排序置顶效果 一个简单的拖拽排序置顶效果 一个简单的拖拽排序置顶效果 一个简单的拖拽排序置顶效果 [图片] https://developers.weixin.qq.com/s/0HZoZUmr7EAQ
2022-07-21 - 微信小游戏CPS流量合作
开发者,你好: 为拓展更多用户发现路径,帮助优质游戏内容能被更多用户体验到,微信小游戏平台开启了“CPS合作”,接入更多打开场景。欢迎各位开发者加入,通过CPS模式与服务商(即流量渠道,下文称“服务商”,如APP/小程序/公众号/社群/其他应用等)合作获得收益。 1【参与合作】游戏自愿参与CPS流量合作,在MP平台CPS模块选择签约加入; 2【用户发现路径拓展】对参与的游戏,服务商将依据自身的产品逻辑、为用户展示小游戏。成功由服务商场景进入的用户可视为“合作新增流量” 3【结算规则】服务商推广带来的用户所产生的流水定义为“合作流水”(新增用户 & 30天回流用户),合作流水的按比例(新增用户默认为30%)将结算给服务商 4【未来】平台将不断丰富接入的流量方,帮助优质小游戏内容能被更多用户发现 开发者可登录PC端MP后台,通过CPS模块参与。 【常见QA】 1、参与CPS流量合作的流程? 开发者需通过 ①通过MP平台【成长】模块 -- ”CPS合作“系统完成CPS签约; ②通过【功能】模块 -- ”游戏运营工具箱“板块,上传(或更新)基础运营素材,需提交 封面图、游戏简介、宣传语、宣传视频、和宣传图;③与服务商进行结算(在结算单生成时自动进行),可通过CPS系统查看运营情况,并通过虚拟支付2.0系统查看结算信息 。 只有完成CPS签约的游戏、才有可能被服务商选择并进行推广,以产生成CPS合作结果。 2、参与CPS流量合作能获得什么? 平台将除小游戏自然流量外、需服务商(流量渠道)方付出营运与成本、为小游戏贡献新增流量和收入的模式定义为CPS流量合作。 【服务商】(如视频号、应用宝、QQ浏览器等)付出营运、流量等成本;获得对应小游戏合作流水的流量服务费。 【开发者】可获得服务商方提供的新增流量和收入;需付出流量服务费(默认为合作流水的30%)。 (当阶段开发者只需确认参与意愿,及维护运营素材。分发/运营工作由流量方完成。产生合作流水则按流量服务费结算看。不产生合作流水,则无费用负担。) 3、CPS流量合作如何结算?会影响正常收入吗? 小游戏收入流水ALL=原常规收入流水(自然流量+开发者买量部分)+CPS合作流水(在服务商场景打开小游戏的注册用户所贡献的流水) --------- CPS合作流水与原收入流水不互相影响。原收入流水将持续按分成政策结算(内购64,广告55)。针对CPS合作流水,将在结算后再扣除流量服务费->给服务商(默认流量服务费30%,内购334,广告235) 4、什么场景才叫服务商流量?如何选择服务商?现有服务商有哪些? 平台将除小游戏自然流量外、接入CPS体系并付出营运与成本、为小游戏贡献新增流量和收入的场景,定义为服务商。 现有服务商中含视频号、应用宝、QQ浏览器等(合作服务商会在MP后台陆续更新)。 5、CPS流量合作能为我带来多大增量? CPS合作的规模主要取决于服务商的拓展和贡献。对于小游戏原有流水规模,CPS合作都是增量场景。(开发者付出流量服务费从服务商获得合作流水,类比于付出买量预算获得用户) 平台会撮合更多服务商接入,服务商会基于自身的流量策略来分配给各小游戏。 是否展示小游戏/如何展示,取决于服务商策略,接入CPS合作不代表至少能获得xx流量。 6、我已经确认了参与CPS流量合作,还需要做些什么吗? 当阶段开发者需要做的:① 签约加入CPS合作;② 维护游戏运营素材;③设定合适的CPS分成比例(新增用户默认为30%,回流用户默认为0%);④查看CPS运营结果和结算信息;⑤ 若参与视频号CPS合作,欢迎开发者引入外站优质作者参与; [图片] 7.小游戏平台会从CPS流量合作中进行分成吗? CPS流量合作是小游戏平台提供的一项中立的技术与能力,由开发者与流量方之间自行决定是否参与合作、合作分成比例。小游戏平台本身不会参与CPS流量合作行为,既不会干预也不会因此参与分成。 8. 视频号CPS短视频任务要如何参与?怎样计算分成? 视频号CPS短视频能力,目前在逐步开放中。其分成模式与CPS合作相同。 开发者可先进行CPS签约,设定分成比例(新进和回流均支持),并完成运营素材的上传。平台将逐步邀约开启CPS短视频任务。 同时为了鼓励开发者已经建联或运营的作者进入视频号创作,平台提供激励计划帮助获量。 外站优质内容在视频号也有很好的观看消费,欢迎作者们入驻。 任何疑问欢迎前往微信小游戏开发者社区发帖提问,或者通过智能客服联系我们。
2024-03-22 - 小程序搜索优化指南(SEO)
2019年上半年微信发布了基于小程序页面的搜索,为了让我们更好地发现及理解小程序的页面,结合过去一段时间来我们遇到的各种情况,我们强烈建议各位开发者花一些宝贵的时间认真阅读本文:) 爬虫访问小程序内页面时,会携带特定的 user-agent "mpcrawler" 及场景值:1129 1. 小程序里跳转的页面 (url) 可被直接打开。 小程序页面内的跳转url是我们爬虫发现页面的重要来源,且搜索引擎召回的结果页面 (url) 是必须能直接打开,不依赖上下文状态的。特别的:建议页面所需的参数都包含在url 2. 页面跳转优先采用navigator组件。 小程序提供了两种页面路由方式: a.navigator 组件 b. 路由 API,包括 navigateTo / redirectTo / switchTab / navigateBack / reLaunch 建议使用 navigator 组件,若不得不使用API,可在爬虫访问时屏蔽针对点击设置的时间锁或变量锁。 3.清晰简洁的页面参数。 结构清晰、简洁、参数有含义的 querystring 对抓取以及后续的分析都有很大帮助,但是将 JSON 数据作为参数的方式是比较糟糕的实现。 4. 必要的时候才请求用户进行授权、登录、绑定手机号等。 建议在必须的时候才要求用户授权(比如阅读文章可以匿名,而发表评论需要留名)。 5. 我们不收录 web-view 中的任何内容。 我们暂时做不到这一点,长期来看,我们可能也做不到。 6. 利用 sitemap 配置引导爬虫抓取,同时屏蔽无搜索价值的路径。 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html 7. 设置一个清晰的标题和页面缩略图。 页面标题和缩略图对于我们理解页面和提高曝光转化有重要的作用。 通过wx.setNavigationBarTitle或 自定义转发内容onShareAppMessage对页面的标题和缩略图设置,另外也为 video、audio 组件补齐 poster /poster-for-crawler属性。 8. 使用页面路径推送能力 可极大丰富微信可以收录的内容,进而提高小程序内容的曝光机会。请参考: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/search/search.submitPages.html
2020-01-14 - 微信小程序长期订阅?
微信小程序怎么申请长期订阅
2022-09-07 - 「代金券」产品介绍
一、简介 商户可通过接入微信支付营销API,获取代金券的全过程解决方案,在商户已有的平台实现制券、发券、查券、修改等功能。同时可享受返佣所获得的收益,及微信支付代金券的特有能力和优势。 ● 能力:微信场景内投放、安全防刷机制,品牌曝光 ● 优势:高触达性、高服务连接能力 二、功能介绍 ■ 功能强大,满足大多数营销需求 微信支付代金券支持全场满减券、单品满减券、单品换购券,满足大多数日常营销需求。 ■ 流程完善,复杂逻辑全搞定 营销活动除了基础的制券、发券,还包含使用优惠计算、退款、对账等复杂的流程。微信支付提供了完整的方案,可供商户/服务商使用。 ■ 场景灵活,自定义场景发券 商户可以在任意场景(例如:小程序、H5、APP等)调用API发券,也可以定义活动形式(例如:全员发券、新用户发券、抽奖发券等)。 ■ 更好的触达 可插入卡包,在券过期前,用户会收到过期提醒,提升核销转化率。 ■ 安全防刷机制 结合微信强大的安全防刷能力,阻止黑产的不法行为,为营销资金保驾护航。 三、API相关限制 1、可调用接口的角色:每个接口的限制不同,可参考每个接口的规则。 2、调用时mchid和APPID需要有绑定关系,可在【微信支付商户平台—>产品中心—>开发配置】进行绑定,APPID和openid需要有对应关系。 四、操作指引 1、创建代金券批次 通过创建代金券批次接口,或登录微信支付商户平台创建代金券批次(操作路径:【微信支付商户平台—>营销中心—>创建全场/单品代金券】)。 可创建代金券的类型包含预充值和免充值两种类型。 ● 预充值代金券适用于第三方出资策划的活动,例如:满100减10. 指订单金额100元,用户实付90元,商户实收100元。 ● 免充值适用于商户策划的活动,例如:满100减10。 指订单金额100元,用户实付90元(用户领券后,在支付中直接核销10元),商户实收90元。 2、激活代金券批次 制券成功后,通过调用激活接口激活代金券批次。 说明:如果是预充值代金券,激活时从商户账户余额中锁定本批次的营销资金。 3、发放代金券 通过商户平台/API完成制券后,调用发放代金券接口进行代金券发放。 4、支付中自动核销券 用户领券后,在支付过程中自动核销券中所示金额,实付金额=订单总金额-代金券金额。 当一个券被核销后,微信支付侧会推送通知给商户/服务商服务器(前提是商户已设置接收通知的URL地址)。通知信息包括券ID、核销信息、单品信息等。 5、管理代金券 可通过查询、修改相关接口进行代金券管理。 6、营销事件推送 当营销相关事件发生时,向商户配置的服务器地址发送通知。目前支持核销通知。商家需要设置接收通知的URL地址,并在商户平台开通营销事件推送的能力,即可接收到相关通知。具体内容参见《核销事件回调通知》。 说明:如果不能收到推送信息,请按照【准备工作】自查,重点检查【API密钥设置】。 可点击查看制券环节的课程视频↓↓↓ [视频]
2021-10-12