- 申请开通「商家转账到零钱」需要什么材料?【案例】
前言 之前写过一篇《申请开通【商家转账到零钱】超时后如何反馈?》其中有读者提问提供那些资料才能通过审核的。 [图片] 这篇分享下我提供的材料内容,给大家一个案例作为参考。大家可以参考下方材料,然后根据自己产品具体业务进行修改调整即可。 材料准备 业务背景:配音工具,为了做让用户可以帮忙拉新,所以做了邀请好友赚钱的功能,需要用到商家转账到零钱。 1.商家转账到零钱业务界面截图 [图片] 2.业务界面截图+文字步骤标注 [图片] 3.分佣流程描述文档内容 [图片] 内容部分: 1.产品名称/APPID 2.产品介绍 3.盈利模式 4.需求背景 5.分佣流程 6.分佣规则 最后 祝大家顺利开通「商家转账到零钱」功能,如果觉得有帮助欢迎点赞/收藏。如果申请超时还没回复可以看《申请开通【商家转账到零钱】超时后如何反馈?》。
2023-07-14 - 商家转账到零钱运营账户没钱,能不能自动从基本账户转出?
我为直连商户,使用商家转账到零钱进行分销返佣,返佣转账的钱能否从基本账户转出,因为基本账户转出涉及税务问题,这部分的税务应该由收款方承担,目前这个款项从基本账户转出再充值到运营账户税务从我方扣除,感觉不合理,是否能从基本账户直接转出到零钱?
2023-10-06 - 现金红包的不能用小程序的appid发放吗?
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3 使用小程序的appid调用接口提示appid非法,什么原因?是根本不支持小程序还是哪里需要配置?
2020-08-05 - 业务域名设置--校验文件检查失败自查指引
目前不少开发者在设置业务域名时,发现检查校验文件失败,可先按照如下步骤进行自查: 如果想保存的业务为https://test.com/,下载下来的校验文件为AbC.txt,则需要确保https://test.com/AbC.txt能够访问。 校验文件内容错误。校验文件内容一般是非HTML数据,如果下载下来的校验文件内容为HTML数据,一般为登录态过期。请重新登录小程序下载校验文件。 使用4G网络尝试访问链接,确认自身服务器没有拦截请求(常见于设置了白名单或者防火墙的服务器,需开发者自行确认下) https证书过期。请确保https证书处于有效期内。 使用curl 测试链接,确保curl能够正常访问链接,且curl出来的内容为校验文件内容。 使用time curl https://test.com/abc.txt查看链接时间,建议耗时在1s之内。 请确保url中的文件名与下载下来的文件名大小写一致。如下载的文件是AbC.txt,确保url是https://test.com/AbC.txt,不能是https://test.com/abc.txt 部分用户的服务器配置较陈旧,安全性差(如配置 768位 的 DH),为了保证通信安全,微信后台不支持,请更新服务器配置。 (1)通过https://cloud.tencent.com/product/tools#userDefined12,检测网址是否支持TLS1.2。 (2)可通过工具 https://www.ssllabs.com/ssltest/analyze.html 检查自己的服务器,对该工具标红的各项漏洞逐项修补,建议更新配置直到该工具打分为 C及以上 。 9. 如上述检查都没有问题,请重新下载校验文件重试,确保上传到服务器的文件内容与新下载的文件内容一致。
2018-06-21 - 视频号怎么设置小程序跳转链接?
要在视频号中设置小程序跳转链接,可以按照以下步骤进行操作: 1.打开微信公众平台(https://mp.weixin.qq.com/)并登录您的账号。 2.在左侧菜单栏中选择“小程序”选项。 3.进入小程序管理页面后,选择您需要设置跳转链接的小程序。 4.在小程序管理页面的左侧菜单栏中选择“开发” - “基本配置”。 5.在基本配置页的底部找到“业务域名”一栏。 6.在业务域名列表中添加一个新的域名,确保该域名指向您要跳转的小程序页面。例如,可以使用小程序的域名或子域名。 7.添加完域名后,点击右上角的“提交”按钮进行保存。 请注意,为了保证小程序跳转链接的正常使用,需要确保以下几点: 1.小程序和视频号必须属于同一个主体,并且已经完成了相关的认证和绑定操作。 2.在小程序的后台设置了允许通过视频号跳转的相关配置。 3.确保小程序的域名和子域名已经备案,并且通过了微信的审核。 完成以上步骤后,您就可以在视频号中设置小程序跳转链接了。在发布视频时,在视频描述或评论中添加小程序跳转链接即可实现从视频号跳转到小程序的功能。
2023-07-19 - 第三方平台业务域名,请官方回答几个疑问(特别是是否支持$APPID$域名形式)
近期公众帐号第三方平台上线了小程序业务域名,仔细看了文档和各种说明后,还是有几个疑问,望官方能解答一下我们第三方平台开发者关心的问题: 1、业务域名是否支持多个?(在“管理中心 / 修改第三方平台”时,小程序业务域名填写处并没有注明可以填写的数量,所以意思是只能填写一个?如果一个域名不够用是否可以申请填写多个呢?毕竟不授权给第三方时,每个小程序的业务域名都还能添加20个,如果授权给第三方平台后能添加的数量还少了,这样不便于我们第三方平台进行业务分流); 2、小程序的业务域名,多数是要和公众号授权搭配来用的,第三方平台网页授权的文档还特别提到: 在该域名和符合要求的下级域名内,可以代替旗下授权后公众号发起网页授权。下级域名必须是AppID.wx.abc.com的形式(AppID为公众号的App ID的替换符,建议第三方用这种方式,若需可做域名映射) 文档还特别用红色注明了网页授权建议用AppID域名形式,因此,我们开发时,用了这种推荐的形式,造成了在小程序中业务域名也必须配置成这种形式,才能完成网页授权和网页JSSDK开发。 因此,第三方小程序业务域名是否支持AppID域名形式,是我们最关心的问题。 如果官方近期不打算支持这种形式,是否可以开放原先单独设置业务域名的界面?(现在授权后小程序不再像之前那样可以单独设置业务域名了,提示必须由第三方设置。) 3、https://api.weixin.qq.com/wxa/setwebviewdomain?access_token=TOKEN 接口,无需参数调用,那么每调用一次,就把第三方平台的业务域名全部设置到授权小程序中,如果希望支持多个业务域名也是如此吗?
2017-12-27 - 小程序用户头像昵称获取规则调整公告
更新时间:2022年11月9日由于 PC/macOS 平台「头像昵称填写能力」存在兼容性问题,对于来自低于2.27.1版本的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称。 更新时间:2022年9月28日考虑到近期开发者对小程序用户头像昵称获取规则调整的相关反馈,平台将接口回收的截止时间由2022年10月25日延期至2022年11月8日24时。 调整背景在小程序内,开发者可以通过 wx.login 接口直接获取用户的 openId 与 unionId 信息,实现微信身份登录,支持开发者在多个小程序或其它应用间匿名关联同一用户。 同时,为了满足部分小程序业务中需要创建用户的昵称与头像的诉求,平台提供了 wx.getUserProfile 接口,支持在用户授权的前提下,快速使用自己的微信昵称头像。 但实践中发现有部分小程序,在用户刚打开小程序时就要求收集用户的微信昵称头像,或者在支付前等不合理路径上要求授权。如果用户拒绝授权,则无法使用小程序或相关功能。在已经获取用户的 openId 与 unionId 信息情况下,用户的微信昵称与头像并不是用户使用小程序的必要条件。为减少此类不合理的强迫授权情况,作出如下调整。 调整说明自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整: 自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。自生效期起,插件通过 wx.getUserInfo 接口获取用户昵称头像将被收回:生效期后发布的插件新版本,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的插件版本不受影响,但如果要进行版本更新则需要进行适配。通过 wx.login 与 wx.getUserInfo 接口获取 openId、unionId 能力不受影响。「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持,覆盖iOS与安卓微信 8.0.16 以上版本),具体实践可见下方《最佳实践》。小程序 wx.getUserProfile 与插件 wx.getUserInfo 接口兼容基础库 2.27.1 以下版本的头像昵称获取需求:对于来自低版本的基础库与微信客户端的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称,开发者可继续使用以上能力做向下兼容。对于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表: [图片] *针对低版本基础库,兼容处理可参考 兼容文档 请已使用 wx.getUserProfile 接口的小程序开发者和已使用 wx.getUserInfo 接口的插件开发者尽快适配。小游戏不受本次调整影响。 最佳实践小程序可在个人中心或设置等页面使用头像昵称填写能力让用户完善个人资料: [图片] 微信团队 2022年5月9日
2023-09-26 - 使用小程序插件【用户信息功能页】获取用户昵称、头像
摘要 因为获取用户信息的接口 [代码]wx.getUserInfo[代码] 存在滥用,使用不规范等原因,微信官方已经将这个接口权限回收,改为用户信息填写,即引导用户主动填写微信昵称和上传头像。这种做法确实是麻烦了点。 但是微信小程序插件,还是可以使用 [代码]wx.getUserInfo[代码] 接口的,我们可以开发一个插件,通过插件调用这个接口,获得用户昵称和头像,然后将用户昵称和头像保存下来即可。 接口文档:https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/functional-pages/user-info.html 文档说明 用户信息功能页 用户信息功能页用于帮助插件获取用户信息,包括 [代码]openid[代码] 和昵称等,相当于 [代码]wx.login[代码] 和 [代码]wx.getUserInfo[代码] 的功能。 在基础库版本 2.3.1 前,用户信息功能页是插件中唯一的获取 code 和用户信息的方式; 自基础库版本 2.3.1 起,用户在该功能页中进行过授权后,插件可以直接调用 [代码]wx.login[代码] 和 [代码]wx.getUserInfo[代码]: 授权是以【用户 + 小程序 + 插件】为维度进行授权的,即同一个用户在不同小程序中使用同一个插件,或同一个小程序中使用不同插件,都需要单独进行授权自基础库版本 2.6.3 起,可以使用 [代码]wx.getSetting[代码] 来查询用户是否授权过,另外,在满足以下任一条件时,插件可以直接 [代码]wx.login[代码] 使用插件的小程序与插件拥有相同的 AppId 使用插件的小程序与插件绑定了同一个 微信开放平台 账号,且使用插件的小程序与插件均与开放平台账号为同主体或关联主体 不满足以上条件时,[代码]wx.login[代码] 和 [代码]wx.getUserInfo[代码] 将返回失败。 开发 在开发之前,你需要申请一个小程序插件。 [图片] 然后使用官方示例代码,就可以简单使用这个插件。 [图片] 代码也是非常简单的,一个是小程序页面,另一个是插件页面。 [图片] 示例代码 [代码]<!--plugin/components/hello-component.wxml--> <functional-page-navigator name="loginAndGetUserInfo" args="{{ args }}" version="develop" bind:success="loginSuccess" bind:fail="loginFail" > <button class="login">登录到插件</button> </functional-page-navigator> [代码] [代码]// plugin/components/hello-component.js Component({ properties: {}, data: { args: { withCredentials: true, lang: 'zh_CN' } }, methods: { loginSuccess: function (res) { console.log(res.detail); }, loginFail: function (res) { console.log(res); } } }); [代码] 然后在小程序的页面json文件配置这个插件。 [图片] app.json还需要加入: [图片] [代码]"functionalPages": { "independent": true }, [代码] 在WXML文件引入这个组件。 [图片] 预览 因为index.wxml是引入插件的组件,直接就显示 [代码]plugin/components/login/login.wxml[代码] 的内容了。 [图片] [图片] 点击授权登录,就会跳转到官方的【用户信息功能页】插件,这个插件页面是无法修改样式的。 [图片] 点击【允许使用】就会获取到用户的昵称和头像。 [图片] 其中 [代码]res.detail.userInfo.avatarUrl[代码] 就是头像地址,[代码]res.detail.userInfo.nickName[代码] 就是微信昵称,获取这两个之后,可以自己进一步处理。 [图片] 作者 TANKING
2023-11-10 - 用户头像和昵称这种框框是如何调用起来的?
用户头像和昵称改版后,手动获取头像和昵称,但是最近发现有小程序可以直接这样调起一个框,然后再获取,请问下这个框是通过哪个接口调起来的?[图片]
2023-10-11 - web-view打开嵌入腾讯视频的页面提示iframe不支持引用非业务域名
现在的策略是允许公众号文章内嵌iframe,对于第三方的iframe会检查业务域名。可理解为: 1、打开公众号文章,文章内嵌iframe含有腾讯视频这种情况就是支持的。 2、打开开发者自己的业务域名,网页内嵌iframe含有腾讯视频这种情况就是不支持的。
2019-11-20 - A公司的公众号是否可以关联B公司的小程序?
A公司的公众号,是否可以关联/绑定B公司的小程序,以将小程序添加到公众号的菜单,供A公司的粉丝进行访问。
2023-10-13 - 微信支付商家转账到零钱:申请开通提示涉及代收及二清业务,该怎么办?
业务场景说明: 场景一、付费会员用户可以邀请新用户成为会员,新用户付费成为会员后可获得佣金,需支持佣金提现到个人微信账号 场景二、会员用户可使用活动报名工具,支持设置付费活动,活动收集到的报名费需提现到个人账号; 以上两个场景 是否都涉及二清业务?该如何申请微信支付功能?
2023-05-05 - 微信网页授权能力调整公告
微信网页授权 能力是为了优化用户在微信内登录网站应用的体验而设计的。为进一步规范能力使用,保障用户合法权益,平台将对能力进行调整。 当开发者在网页中在不规范使用发起 snsapi_userinfo 网页授权时,微信将默认打开网页快照页模式进行基础浏览。能力调整将于 2022 年 7 月 12 日 24 时生效。 网页快照页模式介绍快照页将会默认对用户屏蔽网页授权弹窗,用户在快照页中仅可进行滑动浏览操作,其他交互将被限制,并提示用户 “该网页需获取个人信息才可使用完整服务,当前仅可浏览部分内容”。用户如需要使用完整网页服务,可轻触右下角 “使用完整服务” 按钮触发授权弹窗,用户确认后进入原网页。 开发者在快照页内所获取的头像、昵称、openId、unionId 均为虚拟账号数据;快照页与正常页面不共用缓存,快照页的缓存会在用户离开快照页时被清理;快照页内也无法使用微信其它 JS-SDK 的能力。 [图片] 微信网页授权规范授权流程需引导清晰、准确:在申请获取用户信息的弹窗出现前,应该清晰、准确地告知用户获取信息的范围及获取信息的目的;必要场景申请:在必须获取用户信息时才申请,而不是用户尚未了解服务前就强制弹窗。如使用医院挂号时才需要获取用户信息;不强制登录:提供游客模式,供用户了解网页提供的基础服务,不强制用户允许网页获取用户信息后才能使用网页服务。 常见的微信网页授权不规范使用案例强制登录:在用户打开网页时立即要求用户授权,用户拒绝后无法使用网页提供的服务;违规收集个人信息:未在网页提前告知使用个人信息的目的、方式和范围;非必要收集:非必要获取用户信息的网页,如文章、视频等,要求用户在浏览内容前登录;差别对待微信用户:同样的网页在浏览器内可以无需登录直接访问,在微信内却要求用户先登录才可访问。 微信团队 2022年5月9日
2022-05-10 - 微信:小程序获取手机号要开始收费了!
[图片] 收费说明 自2023年8月26日起,手机号实时验证组件将需要[代码]付费使用[代码]。 [图片] 手机号快速验证组件 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html 新版本组件不再需要提前调用wx.login进行登录。 代码示例 [代码]<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button> Page({ getPhoneNumber (e) { console.log(e.detail.code) } }) [代码] 返回参数说明 code,动态令牌。可通过动态令牌换取用户手机号。使用方法详情phonenumber.getPhoneNumber接口。 请注意: 目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体); 该能力使用时,用户可选择绑定号码,或自主添加号码。平台会基于中国三大运营商提供的短信等底层能力对号码进行验证,但不保证是实时验证; 请开发者根据业务场景需要自行判断并选择是否使用,必要时可考虑增加其他安全验证手段。 开发者需合理使用,若被发现或用户举报开发者不合理地要求用户提供手机号等个人信息,中断了正常的使用流程,影响了用户的使用体验,微信有权依据《微信小程序平台运营管理规范》对该小程序进行处理。常见违规事例和具体解析; 自2023年8月26日起,手机号快速验证组件将需要付费使用。标准单价为:每次组件调用成功,收费0.03元。 手机号快速验证组件(旧版):https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/deprecatedGetPhoneNumber.html 注意 目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。 该能力使用时,用户可选择绑定号码,或自主添加号码。平台会对号码进行验证,但不保证是实时验证; 请开发者根据业务场景需要自行判断并选择是否使用,必要时可考虑增加其他安全验证手段。 手机号实时验证组件 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getRealtimePhoneNumber.html 代码示例 [代码]<button open-type="getRealtimePhoneNumber" bindgetphonenumber="bindgetrealtimephonenumber"></button> Page({ getRealtimePhoneNumber (e) { console.log(e.detail.code) } }) [代码] 该能力与手机号快速验证组件的区别为: 手机号实时验证组件,在每次请求时,平台均会对用户选择的手机号进行实时验证; 手机号快速验证组件,平台会对号码进行验证,但不保证是实时验证。 请注意: 3. 目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体); 4. 该能力使用时,用户可选择绑定号码,或自主添加号码。每次请求时,平台均会基于中国三大运营商提供的短信等底层能力对号码进行实时验证; 5. 请开发者根据业务场景需要自行判断并选择是否使用,必要时可考虑增加其他安全验证手段。 6. 开发者需合理使用,若用户举报或被发现开发者不合理地要求用户提供手机号等个人信息,中断了正常的使用流程,影响了用户的使用体验,微信有权依据《微信小程序平台运营管理规范》对该小程序进行处理。常见违规事例和具体解析; 7. 该能力的bindgetrealtimephonenumber 事件回调中,仅会返回 code,不会返回 encryptedData,开发者仅可通过消费 code的方式换取用户手机号; 自2023年8月26日起,手机号实时验证组件将需要付费使用。标准单价为:每次组件调用成功,收费0.04元。 付费管理 https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/paymentManage.html 修改建议 手机号快速验证组件旧版本接口依然可以使用,只是需要收费而已,不想做改动的交钱就行了。如果想用新接口就去改吧,多花一分钱(增强小程序安全性)。
2023-06-30 - 视频号直播间分享员分享指引
视频号直播间分享员,是一个小程序商家联动视频号的能力。 小程序商家可以自主添加分享员,分享员会收到邀请通知,需确认同意后才正式成为该小程序的分享员。 一个微信号最多能成为5个小程序的分享员。 分享员分享关联小程序的直播间后,小程序商家与分享员均能获得由分享员分享产生的直播间内交易数据。 分享员如何分享才是有效分享 退出带货中心小程序,找到分享的直播间(可在微信-发现-视频号内搜索)须进入直播间页面里面,点击右上角的转发按钮分享直接在会话列表或者朋友圈长按直播间卡片转发是无效分享目前仅能分享直播中的直播间,分享预约状态下的直播间无效。(2021.8.25)[图片] 分享员的权限 分享员可在「带货中心」小程序内查看可分享的直播间(可分享的直播间为所属小程序关联的视频号的直播间),可查看自己分享后的带货数据。 分享员可以自行解除与小程序的关系。 [图片][图片][图片] 分享员如何查看数据 分享员将可以进入「带货中心」小程序,查看自己可分享的直播间与分享后的数据。 (非分享员角色的用户进入带货中心小程序,看不到相关入口) 分享员可通过此数据,与小程序开发者对账。 [图片][图片][图片]
2021-11-24 - #交易组件-资料问题整理
1.自定义版交易组件的商品如何接入小程序联盟?或者说自有小程序的商品如何接入小程序联盟? 目前小程序推出了小程序联盟,官网地址:https://union.weixin.qq.com/mp/promoter/login 商家可以通过设置佣金将商品加到商品库。已知: 1.非个人主体小商店可以开通 2.标准版实际上是开了个小商店,也就同理是可以的(对于品牌小程序来说就有两个后台,不是最理想状态) 3.自定义版内测中,内测名额已经可以使用这个功能了,流程大致是: 3.1.小程序后台会有个小程序联盟,先开户 3.2.开户后充值,专门给佣金的 3.3.然后给商品设置佣金(有接口) 3.4.推客端看到产品选择 2.自定义组件开通后,设置推广员分享员,如何得知是从哪个推广员与分享员带来的订单? 目前已有专门的接口来获取这个订单数据,接口如下: 按推广员获取订单:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/get_order_list_by_finder.html 按分享员获取订单:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/get_order_list_by_sharer.html
2021-10-14 - 使用微信的扫码功能实现网站和小程序端用户账号统一
前言 上一篇文章(使用小程序内的扫码功能实现网站和小程序端用户账号统一)发表后,社区大佬杨泉和拾忆分别给出了改进建议,总结两人的建议,就有了用户体验更好的方法,直接使用微信扫码来实现网站和小程序端用户账号统一。 先说一下前提,这次的方法都要用到扫普通链接二维码打开小程序来实现功能。在小程序后台完成相关配置后,直接用微信扫码就会打开小程序指定页面个并将网址直接通过参数[代码]q[代码]带给页面。 小程序扫码登录网站 在小程序后台配置中,将二维码规则设置为附带登录码的网址(比如:[代码]http://www.abc.com/?loginCode=[代码]),小程序功能页面建议设置为需要登录才能访问的页面,小程序中这个页面直接访问时需要判断是否登录,未登录状态要触发登录功能,登录后原样返回。 网页端业务逻辑不变,要登录时先生成一个唯一的登录码,比如:[代码]1234[代码],然后放在小程序后台配置的二维码规则网址中,比如:[代码]http://www.abc.com/?loginCode=1234[代码],然后把这个网址生成二维码展示。 用户使用微信扫码后会自动打开小程序对应页面,并将二维码对应网址通过参数[代码]q[代码]带给页面,在onLoad事件中提取[代码]q[代码]参数并提取出其中的登录码,提交到后端接口,后端接口查询该登录码绑定的用户返回后在小程序端完成登录。网页端在展示二维码后,开启一个轮询,定时访问后端接口查询该登录码的登录状态,在该登录码和小程序已登录用户绑定后完成网站上的用户登录。 [图片] 小程序扫码登录小程序 小程序后台配置和上一个情况一致,网页端流程略有不同。网页上用户登录后展示带登录码的网址对应的二维码,同时将当前登录用户和登录码绑定。微信扫码打开小程序后提取出登录码,提交到后端接口,后端接口查询该登录码绑定的用户返回后在小程序端完成登录。还可以配合wx.login绑定当前用户的openid,实现自动登录。 网页端展示二维码后使用轮询查看登录码的登录状态,到期或者已登录后在网页端销毁二维码。小程序端也需要对当前是否已登录做一个判断并做好切换用户的相关功能。 [图片] 总结 总结下来,这个方法就是以登录码为媒介,通过在某一端将登录码和登录用户绑定后,在另一端实现同一用户的登录,实际使用中还需要考虑登录码的有效期等。 以上方法流程不知道会有什么风险,欢迎大家的讨论。
2020-11-01 - [填坑手册]小程序web-view组件实战与踩坑
[图片] 首先,根据官网文档可以知道 只有非个人 的小程序才可以使用web-view组件,如果你的个人开发者,可以跳过这篇文章。 [图片] 一、使用web-view以及它的好处 1、己方账号(第三方)与小程序openId/UnionId的关联绑定,实现免登陆 比如你是某门户网站S,你要识别自己小程序上的用户与网站用户的关系,你可以通过三种方法绑定关系,公众号,小程序源生,小程序web-view内嵌跳转三种方法 2、内嵌H5的富文本,减少重复开发 比如你是门户网站,社区,以往有大量的新闻和帖子,里面带了各种css样式的富文本,小程序源生是无法直接读取的,需要大量转化,这时候直接内嵌这些H5新闻,大大降低开发成本 3、热更新,减少发布审核 某些需要经常更新的内容、公告、活动页,内嵌H5可以减少频繁提交小程序审核 二、小程序功能赋权 为H5提供各种小程序才有的功能,比如录音,扫一扫等。 注意事项 多场景判断,建议使用官方API: wx.miniProgram.getEnv H5唤醒一些小程序API有一定的延时,0.3~1秒 请调用小程序专用的JSSDK,同一个jssdk,但是webview的功能收到限制,和之前微信打开H5有所不同 小程序自动获取加载H5的title H5中iframe的url必须也是业务域名 web-view一定是撑满全屏的,自定义顶部菜单,悬浮的都没用 三、小程序和H5之前的互相通讯 1、 从小程序 ==>> h5 小程序控制H5,可以直接用src路径传参的形式,比如 [代码]<!-- 小程序端 HTML --> <web-view src="//URL?a=param1&b=param2"></web-view> [代码] 避免在链接中带有中文字符,在 iOS 中会有打开白屏的问题,建议加一下 encodeURIComponent。 2、 从 H5 ==>> 小程序 [图片] 这里我们知道bindmessage是小程序用来监听H5的推送的内容,但是这里不大不小的坑!就是它的三个出发场景: 小程序后退:使用接口名 wx.miniProgram.navigateTo,wx.miniProgram.navigateBack,wx.miniProgram.switchTab 等切换小程序页面/场景的API时候都会出发 分享:这个就是当你点分享小程序的时候,会接受到H5之前发送的postMessage 组件销毁,web-view组件销毁,类似 wx.miniProgram.redirectTo 都会触发。 [代码]<!-- 小程序端 HTML --> <web-view bindmessage="handleGetMessage" src="{{openUrl}}"></web-view> [代码] [代码]// 小程序端 JS --> Page({ /** * 页面的初始数据 */ data: { openUrl: "", }, /** * 获取请求数据 */ handleGetMessage: function (e) { console.log(e.detail.data); } }, }) [代码] [代码]<!-- h5端 HTML和JS --> <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script> <script> wx.miniProgram.postMessage({ data: { link: "//test.com", title: "一起学习,一起进步" } }); //wx.miniProgram.redirectTo({ // url:"/pages/inner/index?source=123" //}) wx.miniProgram.navigateBack({delta: 1}) </script> [代码] 注意事项 那些H5控制小程序的跳转路径必须是“/”开头,如 “/pages/xxx/xxx”,且路径必须在app.json里有,地址错误的话,有时不报错。 postMessage的json必须是data开始,不然接收不到数据。 [图片] 四、bindmessage接收到消息有3个重要特性(重点) 接收可以是H5之前几分钟前发送postMessage,不一定是即刻发出的。 之前发出的 postMessage的DATA信息会累加,当触发bindmessage接收的时候是一个数组。 [图片] 当bindmessage 再次 接收到数据,之前发送的数据不会被清空,将累加一起返回,获取时要判断好数组的角标 [图片] 五、Tips 1、在IDE工具中如何调试H5 [图片] 可以在 web-view 组件上通过右键 - 调试,打开 web-view 组件的调试。 2、内嵌H5缓存问题 web-view加载的H5具有很重的缓存,如果需要调试,可以通过在url后面加时间戳的方式解决。 3、小程序关闭,H5背景音乐仍然在播放问题 小程序已经关闭,但是H5自带的背景音乐仍然在手机后台播放的问题。这里可以利用一个属性: visibilitychange:页面可见性状态 简单的说,浏览器标签页被隐藏或显示的时候会触发visibilitychange事件。 [代码]var statusBeforeHide = true; //初始化页面的状态 var music = document.getElementById("xxx"); // 更改音乐播放状态 function setChangeMusic() { if (document[hiddenProperty]) { // 页面隐藏 if (statusBeforeHide) { music.pause(); // 暂停 } } else { // 页面显示 if (statusBeforeHide) { music.play() //如果statusBeforeHide是true, 继续播放 } } } let hiddenProperty = ('hidden' in document) ? 'hidden' : ('webkitHidden' in document) ? 'webkitHidden' : ('mozHidden' in document) ? 'mozHidden' : null; if (hiddenProperty) { let visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange'); let onVisibilityChange = () => { //console.log('visibilityChange'); setChangeMusic(); }; document.addEventListener(visibilityChangeEvent, onVisibilityChange); } else { console.log("不支持这个api"); } [代码] 总结,web-view还是非常实用的组件,且用且珍惜~ 往期回顾: 小程序自定义头部导航栏“完美”解决方案 小程序Canvas生成海报(一) 小程序新版订阅消息+云开发实战与跳坑
2021-09-13 - 微信小程序URL Scheme汇总
微信小程序支持了URL Scheme( https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html ) 之后,可以移动端任何渠道(短信、邮件、其他App中唤起小程序),但是需要小程序开发商主动提供URL Scheme。 本文档的目的就是收集汇总小程序开发者提供的URL Scheme,如果您有发现其他的小程序URL Scheme,欢迎在评论中提供: 官方示例 URL Scheme:weixin://dl/business/?ticket=la0041f2cedf9630c9c7cc8c8715ac0c6 兼容H5:https://postpay-2g5hm2oxbbb721a4-1258211818.tcloudbaseapp.com/jump-mp.html 功能介绍:微信小程序官方示例 是否永久有效: 备注: 谜底饭卡 URL Scheme:weixin://dl/business/?ticket=l92578fd8404e0d4e3e975f910fa43f3a 兼容H5:https://bridge.xm9.co/xmsl/plugin/redirect.html?target=weixin%3A%2F%2Fdl%2Fbusiness%2F%3Fticket%3Dl92578fd8404e0d4e3e975f910fa43f3a 功能介绍: 是否永久有效: 备注: 问卷星 URL Scheme:无 兼容H5:https://www.wjx.cn/jump-mp.aspx?activity=ekvBO2m&rurl=https%3A%2F%2Fwww.wjx.cn%2Fvm%2FekvBO2m.aspx&retry=1 (在问卷星创建好问卷后,需要联系客服生成类似链接,每份问卷都会有一个专用的URL。) 功能介绍:可以在短信、邮件、自己的App中打开问卷星小程序中的问卷页面,并且可以设置提交答卷后跳转会用户自己的小程序。 是否永久有效:是 备注: 宜家会员活动 URL Scheme:weixin://dl/business/?t=MTyiptkq5Qk 兼容H5:http://c8b.co/bjdTKSA 功能介绍:进入宜家会员活动小程序 是否永久有效:未知 备注:通过宜家会员活动短信获取
2021-06-03 - 效能指标「研发浓度」在项目度量中的应用
一、背景 在研发管理领域,业界一直在试图寻找可以衡量研发交付效率的指标。常见的指标有:吞吐率(多)、研发周期(快)、资源利用率(省)。然而,在实践中,我们发现,上述三项无法直接作为指导改进的北极星指标: 1)吞吐率,在一段时间内交付项目的个数,是产品需求方关注的指标。若项目未交付,则不落入统计,也就无法发现问题和采取行动。而一旦交付,就错过了采取行动的时机。该指标是个滞后指标,它只关注项目的终点,犹如刻舟求剑,可参考性较差。见图1中,4月份吞吐率为0,但并不意味着生产是停滞的,5月份吞吐率为1,也不意味着持续了5个月的项目D是健康的。 [图片] ▲图1. 多个项目上线后,被统计在不同月份的吞吐率中 2)研发周期,基于单个项目计划的起止时间,是由关键路径决定的,项目经理尤为关心。然而,在关键路径上的人员,除了计划内的研发工作之外,又受到项目外的精力牵扯(比如:处理临时突发的线上 bug)和因为他人牵扯而等待(比如:等待联调、等待测试)的影响。单看研发周期,无法评价项目中资源被有效利用的情况。见图2中,甲中途离开处理外部事务,在完成任务后等待乙来接棒。 [图片] ▲图2. 项目受计划外工作牵扯 3)资源利用率,员工工作投入的饱和度,技术经理在做团队管理时常考虑的指标。这个饱和度特指从工作负荷视角出发,看员工是不是在忙,但容易忽略工作的聚焦程度。见图2中,甲和乙的工作饱和度都很高,但因为参与者的精力分散在多处,并不会对项目B尽快交付有任何帮助。 那么,是否存在一项北极星指标,可以实时反馈研发过程的效率,从而有效采取改进措施呢? 二、指标介绍 有赞效能改进团队经过不断探索,定义了「研发浓度」指标,作为研发效率的度量。该指标融合前文介绍的吞吐率、研发周期和资源利用率,反映了「为缩短项目周期而投入资源」的决策收益。计算公式如下: 研发浓度 = 项目工作量人日 ÷ ( 研发周期 × 参与人数 ) × 100% 场景a:单人满负荷完成全部工作。这个场景比较简单,聚焦并独立完成一件事,此时的研发浓度是:100%( = 10人日 ÷ ( 10个工作日 × 1人 ) × 100%)。 [图片] ▲图3. 单人满负荷完成全部工作 场景b:单人拖沓完成全部工作。和图2中出现的问题一样,甲中途离开,去处理项目以外的工作,导致研发周期发生变动(工作量并未发生变化),此时的研发浓度是:66.7%( = 10人日 ÷ ( 15个工作日 × 1人 ) × 100%),且精力越分散,该项目的浓度越低。 [图片] ▲图4. 单人拖沓完成全部工作 场景c:两人分工紧密衔接。由于职能或既定工序等原因(比如:甲先负责开发,然后乙负责测试),需要由不同的角色,分别负责先后两道工序,来协同完成工作。从项目的视角来看,甲和乙分别存在等待(尽管人员不会闲置,比如处理一些日常事务性工作,但终究无助于该项目的尽快交付)。此时的研发浓度是:50%( = 10人日 ÷ ( 10个工作日 × 2人 ) × 100%)。在这种流水线工作模式下,同一时刻始终只有 1 人处于工作状态,故随着参与人数上升,研发浓度下降。 [图片] ▲图5. 两人分工紧密衔接 场景d:紧后工作部分前置。乙的 4 人日工作,是甲的紧后工作。如果乙想办法将一部分准备工作前置(比如:提前写测试用例),就能使研发周期缩短。此时的研发浓度是:62.5%( = 10人日 ÷ ( 8个工作日 × 2人 ) × 100%) [图片] ▲图6. 紧后工作部分前置 场景e:两人并行工作。乙的工作完全不依赖甲(工作节奏完美匹配),甲是唯一的关键路径,乙可以在6个工作日内弹性完成自己的任务,但依然存在等待。该场景在规模较大的项目中经常出现(比如:多名研发人员并行开发)。此时的研发浓度是:83.3%( = 10人日 ÷ ( 6个工作日 × 2人 ) × 100%)。 [图片] ▲图7. 两人并行工作 场景f:两人各担一半工作。甲和乙能自由地均分任务,尽量不出现某个人成为关键路径的情况,这样能最大程度上缩短研发周期(这在任务层面是一种理想状态,但如果甲和乙是两个跨职能的平行团队则完全是可能的)。此时的研发浓度是:100%( = 10人日 ÷ ( 5个工作日 × 2人 ) × 100%)。 [图片] ▲图8. 两人各担一半工作 在上述各场景中,我们可以看到,在项目中采取不同的资源利用率策略,会形成不同的研发周期效果,进而影响吞吐率,这就是「研发浓度」所要表达的信息。即:资源的利用率越高(包括:掌握的功能模块和技能越全面、越少被外界打扰、越简洁无依赖的工作流),单个项目的研发周期就越短,研发效率就越高。 三、实践运用 下图是有赞某业务线在某段时期内的研发浓度统计,其中高亮的红色柱子,体现出浓度最集中(超过该业务线的一半项目)的区间是在 12% ~ 28% 的范围里。 [图片] ▲图9. 研发浓度直方图 我们从这些项目中找几个案例: 【正面案例】A项目(图10),3人参与(前端×1,后端×1,测试×1),项目周期 20 个工作日,总工作量是 45 人日,计算研发浓度 = 75%(45 人日 ÷ (20 工作日 × 3 人) × 100%)。 [图片] ▲图10. A项目甘特图 【反面案例】B项目(图11),8人参与(前端×3,后端×2,测试×3),项目周期 43 个工作日,总工作量是 26 人日,计算研发浓度 = 8%(26 人日 ÷ (43 工作日 × 8 人) × 100%)。 [图片] ▲图11. B项目甘特图 目测相较于A项目,B项目的复杂度略高一些,跨了3条业务线的协作。分析甘特图,体现出来的可改进点非常有意思,笔者罗列一二,期待读者朋友能留言,参与互动: a)两位核心开发人员的投入时间相差较大(图中两根最长的蓝色柱子),导致形成关键路径,拉长开发周期。我们的疑问是:后进入者是否被上一个项目所牵绊?本项目是否有必要匆忙启动呢? b)个别参与开发的成员,工作量只有半天(图中最短的两个蓝色颗粒)。我们的疑问是:他们是否有必要参与项目,其工作能否交接给其他人完成呢? c)开发和测试在工序上形成明显的交接(图中空心蓝色柱子)。我们的疑问是:是否可以把用例设计工作进行左移,以及在测试阶段提升自动化水平来提升测试效率呢? 四、小结 「研发浓度」的优势在于,它是一项领先指标,能直接体现任意项目的研发效率,并在过程中进行度量,发现问题可以随时介入并进行改进。希望能借助本文,得到读者朋友的垂青,并将其运用到更广泛的度量场景之中。
2022-01-13 - 微信一边偷偷开小号,一边亲自「下海」教涨粉,葫芦里卖的什么药?
这两天微信「小号」冲上热搜!原因是有消息称微信正悄悄内测「同一手机号可注册 2 个微信」功能! 也就是说,微信即将能开小号啦!这命中了多少用户的痛点啊,小编都不免得有些期待了起来! 微信为什么要做这件事?仅仅是为了满足长久以来用户对小号的需求? 不对!要知道,与此同时,微信广告官宣推出「企明星计划」,告诉大家:腾讯系流量已经全面打通企业微信,这是要「全面攻略」私域领地了。 为什么偏偏是此刻? 一边让用户开小号,一边加速企业微信渗透,两者联系在一起,可以看到:一边是用户权益,一边私域未来,小心而克制的微信,正在用「一换一」的方式,均衡 2 者的关系,为私域「铺路」。 [图片] 大胆推测一下,这里释放 2 个关键信号: 第一,开始做私域吧!腾讯将不惜一切代价,加大私域发展速度。既然你们说私域会打扰客户,那微信就干脆开放小号权限,这样就可以更加开放地「大展身手」一番。 另一方面,利用微信小号做微型私域的小商家也会因此增多,利好私域。 第二,提醒私域运营者,以用户为第一要义的私域精细化运营,已成必然趋势!为什么?开放小号后,添加了成千上万的客户微信,其中很有可能有一部分只是用户小号而已! 这也意味着,商家入局私域,重视产品和服务的商家才能成为赢家 腾讯生态内大闭环,把流量变成留量腾讯为什么要做企业微信? 腾讯从不缺流量,却做不好电商。数十亿用户流动在腾讯的生态内,却不知道怎么变成能够产生商业价值的「留量」?企业微信就腾讯的答案。 再联系这段时间以来,企业微信不断推出的重磅功能点,我们可以观察到: 第一,在产品上,企业微信逐步把能为自己带来流量的通道全部打通,就连风口上的视频号也在近日也与企微实现了真正意义上的打通。 什么概念?客户在看视频的时候,就可以直接添加到你的企业微信上来,一气呵成! 【功能回顾】 视频号支持配置企业微信,顾客点击进入主页就能添加导购为好友,喜欢的商品可以立刻联系购买。 [图片] 员工还可以通过群发助手、客户朋友圈向顾客发送企业的视频号动态,更好地进行品牌宣传和活动传播。 [图片] ▲图片来自“企业微信”官方公众号 其实很早以前,企业微信就发布了与微信互通的能力,打通了小程序与微信支付的能力。对于商家来说,微信公域内的流量都能够直接汇聚到企业微信上,这就完成「流量」变「留量」的第一步。 第二,开放「企微朋友圈」、群接龙、企微群内能@全体成员……一系列功能更新不仅说企业微信从原来的小心翼翼变得愈来愈开放,更让企业微信具备了更强的「客户联系」能力,无疑,为了更深入的用户触达做铺垫。 【功能回顾】 ①开放「企微朋友圈」 在企微可以看到朋友圈入口,商家可以通过在企微发布朋友圈,触达用户。与此同时,朋友圈能够帮助塑造更真实的人设,建立用户信任感。 [图片] ②企业微信群支持发起群接龙 打开企业微信客户群,点击底部的接龙,即可发起群接龙。群接龙是运营社群的有效工具之一。 [图片] 第三,现在连怎么获取流量也帮你规划好了,针对不同行业在获客方式上的差异,微信广告「企明星计划」推出了三大获客模式,教你企业微信怎么做获客增粉……腾讯生态内大闭环越来越明显,就差把「开始做私域吧」这几个字直接打在公屏上了! [图片] ▲图片来自微信广告助手 私域:告别粗暴、迈向精细化时代微信近期发布的「微信群折叠功能」、小号灰度测试,让不少准备入局私域的朋友,产生了畏难情绪。 事实上,所有产品功能都不能片面来看,腾讯一方面在微信加大对用户的保护,另一方面却在企业微信做深触达场景,做到了平衡。 而且有意思的是,你会发现,往往企微前脚更新完,微信才推出新功能—— 群虽然折叠了,但用户能够在刷朋友圈直接看到企微的动态、企微还提供了@所有人、群接龙等工具增强用户触达…… 这种平衡不会被打破,未来,一定会看到,微信方面愈来愈谨慎,企微方面愈来愈开放的状态,而不论是当下还是未来,依然会是私域的时代,只不过,私域运营会从粗暴转向精细化,怎么办? ① 第一,企业微信需要有自己的个人形象,而不是冷冰冰的机器人; 张小龙对企业微信的定义是「人即服务」—— 让每一个企业员工都成为企业服务的窗口。既然是人,就应该有个性。毕竟企微里我们服务的每一个微信 ID ,背后也都是一个活生生的人。 比如卖牛奶,该打造什么样的 IP ?主营鲜奶的新希望白帝就成功打造了「黑小优」品牌营养师 IP ,专门策划了干货分享类、活动营销类、客户关怀类等多个系列内容,对应不同的客户需求,定期在企微社群输出饮奶及亲子育儿知识,建立起专业的人设形象,又能完成企微的转化目标,一年时间,线上商城销售额增长 8 倍。 [图片] ② 第二,要做低频有效的触达,而不是无脑高频的触达; 做到有效的触达,首先要做的是,用户分人群。每一个企微添加的新客户,都要打标! 周黑鸭做过测试,通过增加用户触达机制,企微渠道转化率对比微商城转化率增长 314% , 30 天复购率对比微商城提升 479% ,复购周期整体比其他渠道缩短了 1/3 。 什么概念,一个企微用户只要能做好精细化运营,就能带来 3 倍的单客收益增长,私域的力量就是这么大! 周黑鸭利用有赞 CRM 的「人群标签」功能,根据客户是否下单、是否领券、是否核销券等行为,并区分到不同的目标用户标签下;再借助有赞企微助手里的「精准营销」功能,针对不同标签下的客户做不同的互动触达。触达主要会分成 2 类: [图片] ▲触达机制示意图 第一类,未下单加企微客户 1. 针对未下单的客户,加微欢迎语中发送一张 0 元兑换产品的优惠券,并且仅 3 天有效; 2. 如果客户迟迟未核销这张优惠券,系统自动识别未核销客户,并在两天后触发优惠券到期提醒; 3. 若客户仍未下单,一周后给客户推送产品秒杀活动。 第二类,下单后加企微客户 1. 下单后通过支付有礼加企微的客户,会在 24 h 内收到食用提醒; 2. 一周后,系统自动推送 1 分钱秒杀大额优惠券的活动; 3. 如果客户购买优惠券,但是未下单核销的, 3 天后就会收到优惠券到期提醒。 除了分人群精准触达,可以看到周黑鸭同时控制了「触达时间」,根据客户行为定向触发推送消息,且规定时间间隔,拒绝因过高频率触达而打扰客户。 ③第三,培养用户习惯 真正的私域,不是单向的触达,而是用内容和活动培养用户的习惯。私域之争,是回头客的较量。 小镇水果店「果优多」通过“定期活动”+“精准选品”+“到店转化”的策略,每周定时在社群内发起秒杀活动,每周只有一次,一场活动就能从回头客手里拿到300个到家订单。 记住,私域一定要坚持反复做同一件有利于用户的事情,这样,当用户习惯养成后,他们在固定的时刻,想起的就是你,而不是别的商家。 以上,是私域先行者借助企微,摸索出来的行之有效的增长方法。可以预见的是,腾讯生态内大闭环越来越明显,模式也已经被验证可行:从腾讯公域内吸粉沉淀至企业微信,再做精细化运营,达成转化率的翻倍级提升。 相信腾讯近期的这些动作还只是开端,一切都是为了平衡更好的私域和最优的用户体验。
2021-10-25 - 微信支付后默认关注公众号与推荐关注公众号规则(已下线)
2021年8月19公告支付后推荐关注公众号功能下线通知https://pay.weixin.qq.com/index.php/public/cms/content_detail?lang=zh&id=122567 推荐关注规则指微信支付内部制定,推荐关注框和默认勾选能否出现的规则和判断逻辑,当前线上生效的逻辑有: 1、刷卡支付默认有推荐关注 2、九宫格业务默认不勾选推荐关注 3、粉丝数大于50W支付金额大于等于10元有默认勾选,小于10元无默认勾选,粉丝数小于50W支付金额大于等于5元有默认勾选,小于5元无默认勾选 4、已经关注的不展示推荐栏 5、服务号未设置头像的在IOS不展示推荐关注栏 6、用户取消过关注的默认不勾选 7、有过取消默认推荐关注标识的,以后不进行默认推荐关注勾选。简单一句话理解:你去美宜佳买一笔,支付后手动取消他的勾选,以后再去饭店吃饭付款后就是没有勾选的。 8、服务商模式的,需要在特约商户开发配置页设置推荐关注APPID,服务商给特约商户自行配置关注了服务商公众号,部分场景下才会展示,仅支持停车场、加油站、高速收费行业场景,完成整改后的电商工具箱的电商服务商,除此以外不会展示关注入口。 9、订阅号目前是不会有默认推荐关注的 10、公众号支付和扫码支付需要5元以上才有推荐关注 11、微信支付四种支付方式:刷卡支付,公众号支付,扫码支付,APP支付,前三种支付方式有默认关注公众号功能,APP支付需要额外申请(APP支付的默认关注目前只对行业的龙头公司才开放申请。)。 12、在服务商模式下,商户需要配置推荐的,需要在特约商户开发配置页设置推荐关注subappid,可配置商户同主体公众号。
2021-08-20 - 公众号诱导关注案例集锦
诱导关注,即商家通过外链、公众号群发、搜索或二维码等方式,以奖励或其他形式,强制或诱导用户关注公众号的行为。部分性质恶劣的诱导行为,不仅影响着用户的精神寄托,而且还容易导致用户出现金钱损失。 为了进一步肃清公众平台的“诱导关注”,让用户认清商家的诱导手段,公众平台对诱导用户关注公众号的行为和类型进行了整理,目前对诱导关注的界定,具体分为营销诱导关注、恶意诱导关注。 1.营销诱导关注 涉及营销活动,并利用一些实质好处,以实物奖励、虚拟奖励、现金红包等诱导大家关注公众号。 [图片] 2. 恶意诱导关注 ☛强制诱导关注 用户需关注后才可获得好处或进行下一步操作。 [图片] ☛使用政治秘史、夸大误导、低俗挑逗类的字眼 利用标题引发用户好奇心,诱导用户点击,跳转内容实为关注公众号。 [图片] ☛直接体现关注指向 关注后才可获取答案。 [图片] ☛利用视频图文形式 当前页无具体内容,通篇仅二维码/视频/关注指向(点击关注/点击阅读原文/图片形式指向)诱导用户关注公众号。 [图片]
2020-03-18 - Android微信内网页音频自动播放能力调整
各位开发者: 微信内网页在不经过用户允许的情况下自动播放音频,会导致用户没有预期、用户体验差等问题。此外,音频自动播放可能会在用户不知情的情况下给用户带来较大的流量消耗。基于此,微信公众平台将对微信内网页自动播放音频能力进行如下调整: 自2020年04月28日起,用户打开微信内网页时将无法自动播放音频。必须在得到用户手动允许(比如触摸屏幕,单击按钮等)的情况下,才能播放音频,开发者可以提前进行适配调试。 具体的适配调试方法如下: 1、下载安装包:http://dldir1.qq.com/weixin/android/wechat_0x27000C70_1620_autoplay.apk 2、扫描二维码安装浏览器内核 [图片] 3、打开网页,点击右上方菜单,第二行最后一项禁止自动播放(注:再点一次可以变回允许自动播放) [图片] 4、退出页面,重新进入即可体验禁止自动播放的效果。 附测试用例:https://docs.qq.com/sheet/DWlduYWxhVEFkRkVa?tab=BB08J2&c=B12A0F0 微信团队 2020年03月30日
2020-03-30 - 小程序内嵌二维码长按识别内测QA
小程序内嵌二维码长按识别内测QA Q1:支持识别的码类型与场景如何? A1:小程序内一直支持小程序码的长按识别,公众号二维码仅在小程序内嵌公众号文章场景下识别。 此次放开内测识别的码包括:微信个人码、企业微信个人码、普通群码与互通群码,支持的场景包括: 调用previewImage接口后,长按图片出现菜单:iOS 8.0.6&安卓8.0.3以上版本支持调用previewMedia接口后,长按图片出现菜单:iOS 8.0.6&安卓8.0.3以上版本支持<image>组件将 show-menu-by-longpress属性设置为true后,长按图片出现菜单:iOS 8.0.8&安卓8.0.7以上版本支持(未发布)<web-view>组件中长按图片出现菜单:iOS 8.0.6&安卓8.0.3以上版本支持 Q2:使用该能力时需要注意什么? A2:请勿使用利诱等方式诱导用户添加好友或者加入群聊,页面内容需要遵循小程序运营规范,若发现违反规范的行为将封禁识别能力。 Q3:为什么有些图片长按没有弹出菜单? A3:在小程序中<image>组件需要将 show-menu-by-longpress属性设置为true后才可以直接长按出现菜单。 同时<image>支持识别微信个人码、企微个人码、普通群码、互通群码的能力目前在iOS下存在问题需要客户端进行修复(预计8.0.8版本);安卓8.0.3版本未在此场景下支持,预计8.0.7版本完成支持。 Q4:为什么有些图片长按会出现菜单,也会出二维码的跳转入口,但是点击后不跳转? A4:此问题已知,是iOS的跳转出现了问题,将在8.0.8版本修复 Q5:为什么企业微信群码有时可以识别有时无法识别? A5:请确认是否为企业微信活码,企业微信活码不支持识别,暂无放开计划 Q6:为什么H5中的图片长按不出现菜单,反而出现一个系统的共享/添加到“照片”/拷贝菜单? A6:此处是iOS WebView的特性,可参考此链接进行禁用:https://developers.weixin.qq.com/community/develop/doc/000a20560c89a8f7555a0b16051400
2021-06-09 - 记录几种特殊场景进入小程序
一、小程序打开另一个小程序 navigator组件 和 wx.navigateToMiniProgram API 这个文档写的挺详细的就不多说了。 https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html 二、扫描普通二维码打开小程序 1、二维码链接配置 首先配置普通二维码地址:小程序管理后台--开发管理--开发设置--扫普通链接二维码打开小程序,配置好二维码规则之后,使用符合规则的链接生成普通二维码,扫码就可进入对应页面。测试的时候需要把完整二维码地址添加到测试链接处保存配置,如果二维码链接符合规则但是没有配置到管理后台,扫码之后就会进入正式版对应页面。 2、二维码内容获取 在小程序后台配置二维码跳转小程序规则之后即可使用微信(6.5.6及其以上客户端版本)扫码打开小程序。二维码链接内容会以参数 q 的形式带给页面,在onLoad事件中提取 q 参数并自行 decodeURIComponent 一次,即可获取原二维码的完整内容。 Page({ onLoad(query) { const q = decodeURIComponent(query.q) // 获取到二维码原始链接内容 const scancode_time = parseInt(query.scancode_time) // 获取用户扫码时间 UNIX 时间戳 } }) 参考文档https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html 三、服务号绑定“JS接口安全域名”下的网页跳转小程序 微信开放标签 wx-open-launch-weapp 注意:微信版本要求为:7.0.12及以上,系统版本要求为:iOS 10.3及以上、Android 5.0及以上 接收参数:在页面onLoad周期函数获取 a = options.a, b=options.b 参考文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#21 四、短信、邮件、外部网页、微信内等拉起小程序 1)无参数或者参数固定 打开小程序管理后台--右上角处工具--生成URL Scheme,按要求选择填写即可,复制生成的URL Scheme,如下示例: location.href = 'weixin://dl/business/?t= *TICKET*' 该跳转方法可以在用户打开 H5 时立即调用,也可以在用户触发事件后调用。 [图片] 也可通过调用服务端接口生成,感觉完全没必要那么麻烦,不推荐! 2)动态参数 通过调用服务端接口生成,文档https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.generate.html根据文档调用就行,比较详细了。 请求示例: { "jump_wxa": { "path": "/pages/publishHomework/publishHomework", "query": "a=123&b=321" }, "is_expire":true, "expire_time":1606737600 } 这里主要说一下,接收参数,文档没看到,亲测:在页面onLoad周期函数获取 a = options.a, b=options.b URL scheme和URL Link(https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/url-link/generateUrlLink.html)使用基本差不多,就不单独记录了。 五、微信内拉起小程序(电商类目) 这个由于本人没有电商的账号没有亲自使用过,所以看文档吧.......先记录有这么个途径。 文档地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/short-link/generateShortLink.html
2022-08-29 - 关于小程序接入视频号,想问微信的官方:为什么总是给开发者设置障碍?
作为All in小程序的开发团队,我们一直很期待微信可以给小程序更多的支持。但是在小程序接入视频号的开发中,我们是彻底失去了耐心。只是想问微信官方:为什么总是给开发者设置障碍? 视频号刚出来的时候,我们整个团队都很期待,因为小程序+视频号简直是完美的配合。可以补上小程序传播的短板(对比h5,小程序的限制太多)。但是等了很久,到现在视频号仍然只能接入微信公众号文章的链接。这个问题当然可以曲线救国,把小程序放到公众号文章里面再进行传播。这个问题我们就忍了。 接下来直播出来了,我们在想,这个时候应该可以在直播间接入小程序链接下单了吧。因为小程序直播组件就是这么做的,虽然小程序直播组件也是各种迷惑操作,详见: 强烈建议小程序直播优化订阅用户推送逻辑? 建议:小程序直播组件是否可以将长期订阅改成对主播的订阅? 小程序直播添加预告之后预约通知按钮太不明显了? 小程序直播我就不吐槽了。至少还是可以用的。现在细数一下小程序接视频号的迷惑操作: 1、小程序没法直接接入视频号,需要接交易组件 2、先开放了标准版交易组件,自定义版交易组件内测 3、结果标准版交易组件是微信小商店 4、自定义版交易组件开放了之后,结果发现开通了标准版的无法注销!无法注销!无法注销! 5、标准版不注销就没办法接入自定义版交易组件 6、官方说会出注销功能,现在两个月快过去了仍然没有动静。 [图片] 为什么我要问:微信官方为什么总是给开发者设置障碍? 首先,小程序都是经过严格的审核,是基于什么理由不能直接接入视频号? 其次,如果说要保证消费者体验,要保证售后,为什么小程序直播又可以这么操作?如果说小程序直播都是私域流量,那视频号大可以对没有接入交易组件的直播间限制公域流量导入。 再次,官方在开发过程中,明显可以预知到有大量的开发者会误开通标准版的交易组件,为什么不能提前规划好注销功能?就算没有预知到,现在都已经两个月过去了还是没出来,都快被搞出心梗了。可以说步步都是障碍,步步都走的很不顺。 最后我想说: 作为公司的技术负责人,我们在选择技术平台的时候都背负了很大的压力,比如直播为例,我们要选择是开发抖音平台还是要开发视频号平台,当我们投票视频号平台的时候,遭遇的是重重的障碍以及极其缓慢的工作效率,希望官方能多听听一线开发者的心声,解决一线急迫的需求。很多中小公司可能拖半年几个月就倒闭了,如果官方可以快速解决问题能够早点解决,不要再给开发者设置那么多人为的障碍!感谢。
2021-06-30 - #小程序 小程序和公众号内长按识别哪些码是有效的
Tip:2021-05-21 测试了小程序图片长按识别个人微信码、群聊码、企业微信码可以直接添加。 须知:以下结果均在微信IOS最新版(8.0.2)测试所得!!! 视频号二维码 公众号内长按识别结果:可以 小程序内长按识别结果:不可以 小程序内webview(公众号文章):不可以 小程序内webview(自定义H5):不可以 小程序客服消息长按识别:可以 [图片] 个人赞赏码 公众号内长按识别结果:可以 小程序内长按识别结果:不可以 小程序内webview(公众号文章):不可以 小程序内webview(自定义H5):不可以 小程序客服消息长按识别:可以 官方回复小程序因策略调整不能识别:https://developers.weixin.qq.com/community/develop/doc/0008ea7edb8f4845c39be413456c00?highLine=%25E8%25B5%259E%25E8%25B5%258F%25E7%25A0%2581%25E8%25AF%2586%25E5%2588%25AB [图片] 个人微信号二维码 公众号内长按识别结果:可以 小程序内长按识别结果:不可以 小程序内webview(公众号文章):不可以 小程序内webview(自定义H5):不可以 小程序客服消息长按识别:可以 [图片] 个人收款二维码 公众号内长按识别结果:可以 小程序内长按识别结果:不可以 小程序内webview(公众号文章):不可以 小程序内webview(自定义H5):不可以 小程序客服消息长按识别:可以 [图片] 公众号(订阅号)二维码 公众号内长按识别结果:可以 小程序内长按识别结果:不可以 小程序内webview(公众号文章):可以 小程序内webview(自定义H5):不可以 小程序客服消息长按识别:可以 [图片] 小程序码 公众号内长按识别结果:可以 小程序内长按识别结果:可以 小程序内webview(公众号文章):可以 小程序内webview(自定义H5):可以 小程序客服消息长按识别:可以 [图片] 小商店码 公众号内长按识别结果:可以 小程序内长按识别结果:可以 小程序内webview(公众号文章):可以 小程序内webview(自定义H5):可以 小程序客服消息长按识别:可以 [图片] 企业微信码 公众号内长按识别结果:可以 小程序内长按识别结果:不可以 小程序内webview(公众号文章):不可以 小程序内webview(自定义H5):不可以 小程序客服消息长按识别:可以 [图片] 普通网址二维码 公众号内长按识别结果:可以 小程序内长按识别结果:不可以 小程序内webview(公众号文章):不可以 小程序内webview(自定义H5):不可以 小程序客服消息长按识别:可以 [图片]
2021-05-21 - 华为安卓用户,无法上传图片相册,官方至今没有解决方案
window.wx.uploadImage({ localId: localId.toString(), isShowProgressTips: 0, success: (res) => { console.log(res,'success'); }, fail: (err) => { console.log(err,'errrrrr') }, }); 安卓手机内即不执行success 也不执行 fail 微信版本:8.0.9 android: 11.0.0.139 js sdk: 1.6.0
2021-07-27 - 如何解决小程序中webview页面多层history返回问题?
我微信小程序使用webview 跳转到H5页面 ,在到H5页面1静默授权,使用window.location.href = webUrl 获取到code,然后我点击回退按钮,会返回至页面1而不会返回至小程序的页面,请问这该如何解决,我试过监听新老路由变化,来调wx JDk来跳转,但是 发现页面1跳转到页面2 老路由的name是null参数也是空值, 然后我在到页面2回退到页面1发现 老路由的参数和页面1跳转到页面2 是一致的无法判断, 下面是网上搜索到的一种方法,但是我有些疑惑 比如说我从页面2在跳转到页面3 然后页面3回退到页面2他是不是也会执行wx.miniProgram.navigateBack();这个呢 window.addEventListener('popstate', (event) => { console.log('656+') wx.miniProgram.navigateBack() }) if (!cache.getSession('Code')) { // 1 在小程序里 2 在微信环境 3 不在微信环境 if (this.layer.isEnv() != 3 && !query.code && !query.orderId) { let abc = encodeURIComponent(window.location.href) console.log(abc) this.req.wxCode({ appId: query.appId }, res => { if (res.appId) { let webUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + res.appId + '&redirect_uri=' + abc + '&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect' console.log(webUrl, cache.getSession('Code')) console.log(window.location.href = webUrl) window.location.href = webUrl cache.setSession('one', '1') } }) } } else { console.log('456') history.pushState({ page: 1 }, null, window.location.href) }
2021-03-25 - 利用hash不刷新页面的特性,实现小程序向webView通讯
如果直接使用hash值传递参数,ios上会异常添加页面栈,点击小程序左上角会返回到上一次带hash的地址,参数传递多少次,页面栈就有多少个。以下代码解决了这个问题,废话不多说,直接贴代码。 //在webview中添加代码 let hash; // 监听hash变化 window.addEventListener("popstate", function() { // 有hash值时返回上一个页面,并储存hash。 // 因为返回了上一个页面,会立马进入else分支。 // 将存好的hash渲染到页面 if(location.hash){ hash = location.hash.split('#')[1]; history.back(); } else { //hash值最好是编码后的数据 document.getElementsByTagName('body')[0].innerHTML = '解码后参数:' + decodeURIComponent(hash); } }, false); wxml中引入web-view组件 <web-view src='{{src}}'></web-view> 小程序js代码 const src = 'http://127.0.0.1:8080/'; //替换成webview地址 Page({ data: { src: src, }, onLoad(){ let j = 0; // 每2秒传递一次值 setInterval(() => { let a = {test: j++}; let data = encodeURIComponent(JSON.stringify(a));//hash值最好经过编码 this.setData({src: `${src}#${data}`}) }, 2000); } })
2021-07-15 - navigation跳到一个webview页面 怎么去掉小程序左上角的返回按钮?
navigation跳到一个webview页面 怎么去掉小程序左上角的返回按钮?
2021-03-05 - H5和小程序间的通信
1.h5向小程序发送消息,根据官方文档,网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。小程序页面通过 bindmessage 绑定的函数读取 post 信息。 2.微信小程序怎么向H5发送消息呢? 目前常用的方法是通过设置webview指向网页的链接(url)拼接参数,然后H5页面截取url中的参数的方式来通信。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 基于以上两种相互间的通信和传参,现在要解决H5页面A,跳转到H5页面B,在页面B中做了一些操作(这些操作会改变了页面A中的一些数据),然后返回到页面A,希望将这些改变反馈到页面A。 如果页面A跳转到页面B是使用的location.href,操作完成后完返回上一页(页面A)用的是window.history.go(-1)。这时是不会触发visibilitychange事件,可以使用pageshow事件window.addEventListener('pageshow', (event) => { if (event.persisted) { // 是否从缓存读取 } }) 2.第二种方式是使用hashchange来处理的,具体操作如下: 页面B中发送postMessage,增加标识符test,值为test_时间戳,用来告知webview,返回上一页面的时在页面A的url后拼接#test_。(建议使用时间戳,如果是固定值,hashchange之后执行一次) webview中接收页面B发送的消息postMessage,判断是否存在test,如果有则将test的值存入全局变量。在webview的onShow中判断全局变量中是否有test,如果有,修改webview的src,增加hash参数#test_,如果没有则不增加。清除全局变量test。由于只修改了hash部分,页面不会重新刷新。 页面A中绑定hashchange事件,hashchange事件执行自定义逻辑方法,读取hash参数,调用window.history.go(-1),恢复history。
2021-08-03 - 如何在小程序中通过小商店的appid获取到商店的名字?
如何在小程序中通过小商店的appid获取到商店的名字? 我现在小程序中增加绑定微信小商店功能,支持绑定其他人员的微信小商店。不知道使用哪个接口实现?
2020-11-26 - 微信小程序开发之富文本编辑器
微信小程序开发之富文本编辑器 一年多去了,还有这么多人关注这个编辑器,那就索性把这个组件放上去,各位直接引用吧!如果您感觉很好用,很实用,也请大家给点一个赞!前言:富文本在Web开发上的地位大家可想而知,很多地方都需要用到富文本编辑器,比如开发类似新闻管理小程序、商品简介等。微信小程序在基础库2.7.0之后上线了一个editor富文本编辑器组件,这个组件是本次要讲的内容。组件相关的内容大家可以去看官方文档的内容,这里我们就不进行讲解。而我们要做的就是将官方的富文本组件进行二次开发达到一个好用而又实用的地步:https://developers.weixin.qq.com/miniprogram/dev/component/editor.html 先看效果图(以下只是一个基础的实用): [图片] 代码方案: 1.引入组件(组件的下载地址链接:https://pan.baidu.com/s/15D3ejvs30BZPwn94RgyNmw 提取码:hg66) 2、在你需要的使用的页面的JSON文件中引入该组件,引入方法如下: "usingComponents": { "hg-editor":"../../../components/hg-editor/hg-editor(根据自己的放置位置修改,其中/hg-editor/hg-editor是固定的)" } 3、在wxml文件中使用,使用案例如下,可选参数有四个 参数详解: [图片] showTabBar :是否显示工具栏(默认为true,显示,如果改为false则为不显示)placeholder:文本框提示文字,默认为“请输入相关内容”name:是编辑器的name属性,默认为空uploadImageURL:图片的上传地址,默认为空使用属性案例测试: bind:input可以获得用户输入的内容: onInputtingDesc: function (e) { let html = e.detail.html; //相关的html代码 let originText = e.detail.text; //text,不含有任何的html标签 this.setData({ ['topic.text']: html, ['topic.originText']: originText }); } 使用案例: [图片][图片][图片] 您的想法有多大,组件拓展的无限可能就有多大,欢迎各位留言,欢迎各位使用! 好用,就来收藏一下,更新不易,点个赞!
2022-04-22 - 自开发小程序关联视频号解决办法
众所周知目前自开发小程序暂时不支持关联视频号。但是现在甲方爸爸需要真个功能,跟甲方爸爸说微信不支持,甲方爸爸不满意,给甲方爸爸实现这个功能,小程序不支持,掉了三根头发后终于想出了一个折中的办法:借用公众号。 具体思路如下:1,公众号添加一篇文章,插入视频号视频2,小程序webview 加载这篇公众号链接。具体操作: 1,添加公众号文章插入视频号视频 [图片] 2,添加好文章后,微信打开这篇文章,复制该文章链接 [图片] 3,微信小程序用webview 加载该链接,效果如下 [图片]
2020-12-26 - 获取用户信息方案介绍
背景 小程序一个比较重要的能力就是获取用户信息,也就是使用 [代码]wx.getUserInfo[代码] 接口。我们发现几乎所有的小程序都会调用这个接口。虽然我们在设计文档上有提出最好的设计是在真正要用户信息的情况下才去获取用户信息,不过很多开发者并没有按照我们的期望去做,导致用户在使用的时候有很多困扰。 归结起来有几点: 开发者在首页直接调用 [代码]wx.getUserInfo[代码] 进行授权,弹框有会使得一部分用户放弃小程序的使用。 开发者没有处理用户拒绝弹框的情况,有部分小程序强制要求用户授权头像昵称等信息才能继续使用小程序。 用户没有很好的方式重新授权,虽然在前几个版本我们增加了[代码]设置[代码]页面可以让用户选择重新授权,但是操作还是不够便捷。 开发者希望进到首页就获取到用户的[代码]unionId[代码],以便和之前已经关注了公众号的用户画像关联起来。 开发者默认将 [代码]wx.login[代码] 和 [代码]wx.getUserInfo[代码] 绑定使用,这个是由于我们一开始的设计缺陷和实例代码导致: [代码]getUserInfo[代码]必须通过[代码]wx.login[代码] 在后台生成[代码]session_key[代码] 后才能调用。 为了解决以上几点,我们更新了三个能力: 使用组件来获取用户信息,用户拒绝授权后也可以重新弹窗再次授权 若用户满足一定条件(下文有详细介绍),则可以用[代码]wx.login[代码] 获取到的code直接换到[代码]unionId[代码] [代码]wx.getUserInfo[代码] 不依赖 [代码]wx.login[代码] 就能调用得到数据。 获取用户信息组件介绍[代码][代码] 组件变化: [代码]open-type[代码] 属性增加 [代码]getUserInfo[代码] :用户点击时候会触发 [代码]bindgetuserinfo[代码] 事件。 新增事件 [代码]bindgetuserinfo[代码] :当 [代码]open-type[代码] 为 [代码]getUserInfo[代码] 时,用户点击会触发。可以从事件返回参数的[代码]detail[代码]字段中获取到和[代码]wx.getUserInfo[代码] 返回参数相同的数据。 示例: [代码]<[代码][代码]button[代码] [代码]open-type[代码][代码]=[代码][代码]"getUserInfo"[代码] [代码]bindgetuserinfo[代码][代码]=[代码][代码]"userInfoHandler"[代码][代码]> Click me </[代码][代码]button[代码][代码]>[代码]和 [代码]wx.getUserInfo[代码] 不同之处在于: API [代码]wx.getUserInfo[代码] 只会弹一次框,用户拒绝授权之后,再次调用将不会弹框 组件 [代码][代码][代码][代码] 由于是用户主动触发,不受弹框次数限制,只要用户没有授权,都会再次弹框 直接获取unionId考虑很多场景下,业务方申请userinfo授权主要为了获取unionid。我们鼓励开发者在不骚扰用户的情况下合理获得unionid,而仅在必要时才向用户弹窗申请使用昵称头像。为此,凡使用“获取用户信息组件”获取用户昵称头像的小程序,在满足以下全部条件时,将可以静默获得unionid。 在微信开放平台下存在同主体的App、公众号、小程序。 用户关注了某个相同主体公众号,或曾经在某个相同主体App、公众号上进行过微信登录授权。 getUserInfo 和 login很多开发者会把login和getUserInfo捆绑调用当成登录使用,其实login已经可以完成登录,可以建立账号体系了,getUserInfo只是获取额外的用户信息。 在login获取到code,然后发送到开发者后端,开发者后端再通过接口去微信后端换取到openid和sessionKey(并且现在会将unionid也一并返回)之后,然后把3rd_session返回给前端,就已经完成登录行为。而login行为是静默,不必授权的,不会对用户造成骚扰。 getUserInfo只是为了提供更优质的服务而存在,比如展示头像昵称,判断性别,通过unionId和其他公众号上已有的用户画像结合起来提供历史数据。所以不必在刚刚进入小程序的时候就强制要求授权。 推荐使用方法调用[代码]wx.login[代码] 获取[代码]code[代码],然后从微信后端换取到[代码]sessionKey[代码],用于解密[代码]getUserInfo[代码]返回的敏感数据。 使用[代码]wx.getSetting[代码] 获取用户的授权情况 如果用户已经授权,直接调用 API [代码]wx.getUserInfo[代码] 获取用户最新的信息 用户未授权,在界面中显示一个按钮提示用户登入,当用户点击并授权后就获取到用户的最新信息。 获取到用户数据后可以进行展示或者发送给自己的后端。 文档中的quickStart已经更新 特别注意为了给用户提供更好的小程序环境,我们约定在一段时间后(具体时间会做通知),若还出现以下情况(包括但不限于),将无法通过审核 初次打开小程序就弹框授权用户信息 未处理用户拒绝授权的情况 强制要求用户授权 已经上线的小程序不会受到影响。 FAQ Q: 除了 UserInfo 呢,比如说位置信息 --- ’风の诺言 . A: 其他授权信息不像用户信息那么高频繁,也基本是在使用时候才申请授权,所以没有同 UserInfo 一起给出。我们会先看看 UserInfo 的使用情况再结合具体场景我们会给出相应的方案 Q: 后台要维护用户信息 --- Azleal 我们的小程序业务是功能都需要授权才能使用的(也就是必须拿到unionid获取用户信息) --- elemeNT 我在小程序与服务号的数据需要互通,通过unionId来确定用户的唯一性,如果在用户进入小程序后不强制他授权,单凭一个openid来存储他的用户数据,在用户下次从服务号进入时。不就会产生重复数据吗?就没做到数据互通了 --- ﺭ并向你吐了趴口水ﺭ五年. 另外看到官方提到 要强制推行,我想说我们目前所有用户是通过unionid注册的。那么这些用户就不得不使用 openid重新登录 、注册一遍。更重要的是,之前他们的相关数据都会对应不上(因为你们也不允许强制用户登录授权) --- 羊毛 现在这种方案,不能满足我们的需求,我们的小程序,必须一进入就要获取他的信息,然后加载他的数据; --- 韩文 A: 调用`wx.login`已经可以获取到用户的登录态,已经可以做用户账号的管理。 UserInfo 中带的 UnionId 是额外的信息,没有它完全可以完成登录 对于需要和开发平台绑定的业务进行数据互通的情况,一个新用户进来没有互通数据的情况下也是可以体验到所有业务,那么对于没有授权unionId的用户,可以将其当成是新用户,当真正授权unionId之后再做绑定完全是可以的 Q: 我需要确保用户的唯一性,这样就必须取unionID,否则用户删除了小程序,或者换了设备, 下次再进来这个小程序,该用什么来区分是上次来过的用户呢?? --- WEI+ A: 如果你本身没有其他公众号、App、小程序,那么也就没必要拿到unionid,因为unionid是打通你在开放平台下所有应用的标识 如果只有一个小程序,用 openid 足以, openid 是一个用户对于一个小程序的标识,永远不变 Q: wx.getUserInfo 是网络请求,如果使用了 open-type = "getUserInfo",是否每次点击都会调接口? --- SouthernBox A: 是的,open-type="getUserInfo" 的作用以及内部实现基本和 wx.getUserInfo 一样 区别是一个开发者主动(拒绝一次不再弹窗),一个是用户主动(拒绝任意次都可以重新弹窗) Q: 比如有一个创建按钮,用户点击一次授权了,我已经获取到用户信息,再次点击就没必要再调用 getUserInfo 去网络请求了。 --- SouthernBox A: 可以参考文中 quickStart 的做法,如果已经授权了,那就可以把按钮隐藏,之后的授权直接用API wx.getUserInfo 调用(因为已经授权,所以也不会弹窗),用户也不会再点了 Q: 小程序是不是必须要用微信自带的授权才可以登录 ,能否不使用授权方式登录,用自己系统的api接口数据实现?这个会不会涉及到审核不过的问题??麻烦解答一下 谢谢了。 --- WEI+ A: 自己做登录不会涉及到审核问题。 不过不建议在没有原有账号体系的情况下让用户在小程序内注册,过重的行为会损失用户。 Q: 在小程序中有一个"我的"页面,这是属于会员页,如果用户要进入这个页面就必须授权。交互方式就是在用户未授权情况下整个页面只显示一个授权获取用户信息的button 按钮,这个需要用户自己去触发,算不算强制授权? --- ﺭ并向你吐了趴口水ﺭ五年. A: 强制授权是说如果用户如果不授权基本信息,连最基础的浏览功能都不提供(当然这个也是要分具体的业务场景,不会限制得太死板) 可以有更好的交互,参考下主流App,在未登录的时候点击【我的】页面,也不会直接要求登录,而是展示了一定的页面结构,同时给一个登录按钮(例如【携程】【京东】等),之后再在这个页面做操作的话可以弹一个登录页面或按钮提示用户登录是完全可以的。 上述所说的登录只是用户感知上的登录,从业务逻辑上用户其实在 wx.login 的时候已经完成登录了。 Q: 看了很多评论,有些人还是不知道为什么官方要这样做,我作为一个商家角度来说下。 --- Mr.J 1. 比如我们要做一些户外推广的二唯码,用户只看到了你的图片宣传单,扫描二唯码一打开就提示“需要获取你的个人信息,您是否允许”,你不要当自己是开发者当自己是一个正常人,看到这个提示我相信很多人的第一反应就是拒绝。如果第一步已经把你拒之门外,谈何营销? 2. 没有小程序之前,我们在公众号有很多用户,都绑定了unionid,有小程序之后我们考虑怎么让用户接受小程序,可以静默登录我觉得非常好,从公众号过来的用户可以直接就登录了,没有任何提示,完美的对接,这是一个很好的体验。 A: 说得很好,我们的这些改造不仅是为了开发者,同时也是为了这个生态下的用户考虑。希望开发者们也能站在用户的角度去思考怎么做一个产品。 Q: 我不明白为什么login 给多个unionid 为什么不行? unionid也不能算是个人信息吧,给多个unionid可以更方便开发者,而且很多情况下就不用调用getUserInfo了 --- candyTong 我们提个建议,能否直接开放unionid呢?这样也许会有许多小程序不需要再弹窗了。既一定程度保障了用户体验,也照顾到了我们开发者的体验。 --- 羊毛 A: 如果直接开放了unionid,就会出现这种情况:当你作为一个用户进入一个小程序,这个小程序并没要求你授权就直接把你的头像昵称显示出来(它之前把unionId对应的头像昵称都存了下来),但是这个小程序主体(open平台主体和公众平台主体并不相同)相关的任何一个应用你从来没用过,你会不会觉得很奇怪并且很不舒服,觉得自己在微信内的用户信息没有丝毫的保障? Q: 那有推荐的比较好的例子么?对于必须使用用户头像、昵称这些信息的小程序而言 --- 亚里士朱德 A: 首先,没有什么逻辑是一定要使用用户的头像、昵称才能work的。对于这个case,完全可以先用默认头像、匿名昵称先做替代,用户点击默认头像后就可以弹出授权信息,非常的水到渠成。 Q: 之前看了这个帖子一直在思考,如果是一进去需要回去用户的地理位置信息显示到地图上的呢?这样算不算是一进去就弹窗授权获取用户信息? --- 吴俊绩🤔 A: 地图的情况和获取用户信息不同,我们目前还没对地图的授权请求有所调整。当前不受上述策略的影响 Q: 对于开发者而言,小程序与公众号是同级的,只是不同的入口 但是这样的设计,公众号与小程序成了主从关系咯 --- log琥珀① A: 并无什么主从关系,只是多一个渠道让开发者可以更方便的获取到已经是该主体下用户的unionId
2017-08-07 - 小程序自定义tabbar踩坑记
小程序为什么要用自定义tabbar? 我们是为了实现小程序中多个tabbar的效果的。用户进首页的时候,是一个tabbar,在进入到另外的页面的时候,底部的tabbar显示的是另外的一个。这样可以更好的让用户浏览到不同的内容。有点类似于一个主小程序中嵌套了一个子小程序。 现有的一些方案 我们在做这个之前,是有看过其它小程序做的一些效果的。比如小米lite和携程的小程序。 他们的实现的方式是一样的,就是做一个tabbar的自定义组件,然后跳转每个页面的时候用wx.navigateTo方法去跳转。这样是能实现多个tabbar的,当然也是有一些问题的,因为 navigateTo和switchTab的页面加载效果是不一样的。navigateTo是有一个页面的过渡效果的,有一个新页面整体从右侧滑出的动画。但是switchTab是直接出页面的。因为在tabbar上的页面,往往就是需要经常打开的页面,如果有一个跳转页面的滑出动画是会影响用户体验的。所以我们把这个方案做为了一个备选方案。 我们采用的方案 其实微信官方是有一个自定义tabbar的,我们的方案是基于官方的自定义tabbar完成的。 自定义tabbar的地址:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html (在看下面的文章之前,可以先看一下这个例子) 刚开始看,感觉实施起来并不难,而且官方还提供了一个简单的代码片段,但是在这个过程中,遇到了一些问题,以下是记录遇到的问题和解决方法。 我们新建一个js文件用来管理多个tabbar的状态。在router层做了判断,当进入需要显示另一个tabbar的时候,改变这个全局的状态,并且setdata让新的tabbar显示在视图层上。就是要中心化的管理tabbar的状态。 遇到的问题与解决方法 必须在根目录下的指定文件夹 这个自定义tabbar组件必须放在根目录的custom-tab-bar 文件夹下。这样才能被识别。 tabbar上下跳动 当我第一次把官方的例子稍加修改,移植到我们的小程序上的时候,发现tabbar会在真机上,在点击tabbar上图标的时候,上下跳动。当时也差点因为这个原因放弃这个方案。然后在之后的摸索中发现,官方的例子用的是<cover-view>和<cover-image>,改成<view>和<image>标签以后,就没有这种跳动了。当然换为view和image的后,层级会变低,所以要记得给tabbar设置高的层级,否则会被别的内容挡到。 iphonex以上手机底部tab适配 iphonex以上手机因为底部有一个小横条,所以iPhonex以上手机的tabbar的高度是比较高和其它的手机是不一样的。微信小程序原生的tabbar是有这个高度适配的,但是如果换成自定义的tabbar就需要自己适配了。需要自己做一下高度的适配。而且要注意一下开发者工具和真实机型的差距。开发者工具显示iphonex上的tabbar的样子并不是真实机型中看到的,需要注意一下。 tabbar上item数量或小红点 以前在用原生tabbar的时候,有微信的api可以全局的改变某个item上面的数字和小红点。这样在做像购物车上小红点数量改变的时候就可以用这个api。但是在使用了自定义tabbar的时候,就需要自己更新item上的数量或小红点了。而且是全局更新,因为可能在没有tabbar的页面也需要更新。为了实现全局更新,开始没有想到很好的办法,最开始是把tabbar这个组件的setdata方法存到app.js中,然后在需要更新的时候调用setdata。但是这个方法不太好,之后在跟组长讨论后,提示可以用eventhub了。在tabbar的js中来监听数量的改变,在需要改变数量的地方,触发这个event,这样就实现了全局的数量更新。 switchtab加参数 因为我们的页面在tabbar上面,只能用switchtab的方法去跳转到这个页面,但是小程序的switchtab方法是无法带参数的(我其实不太理解为什么不能带参数,但是从二维码或者分享进入tabbar上的页面,又是可以带参数的),我们采用的方法是我们有一个router工具,当检测到要跳到需要带参数的页面的时候,就把解析到的参数加到storage中,然后在页面的onshow的方法中获取。 小程序的基础库问题 自定义tabbar支持的小程序基础库版本是2.5.0,所以我们需要注意一下老基础库版本的兼容性问题。在低基础库的小程序上,自定义tabbar是可以在小程序的后台设置最低的基础库要求。 tabbar闪动 因为在切换tab的时候,必须setdata,所以肯定有闪动的,这个目前还没有找到很好的办法。 最后 小程序自定义tabbar这个特性,感觉使用的小程序也不是很多。我们先进行了一些踩坑,也希望可以帮到使用这个特性的小程序。
2020-12-25 - 微信小程序去掉左上角返回键
问题原因: 在小程序某个页面鉴权不通过时,需要将小程序跳转到登陆页面,让用户重新输入账号密码,此时该页面顶部会显示返回按钮,用户可以点击返回上一个页面,因此想去掉返回按钮 解决办法: 使用wx.reLaunch({url: "/pages/login/login"});方法跳转到登陆页面login.wxml,然后在login.js中的onShow方法中,使用wx.hideHomeButton();方法将返回键隐藏。 注: 必须先使用wx.reLaunch({url: "/pages/login/login"});跳转,然后用wx.hideHomeButton();才能隐藏,直接使用wx.hideHomeButton();没有效果,测试的手机系统版本IOS14.4,微信版本8.0.6
2021-06-04 - webview跳转小程序的另一种实现
起因 因为公司业务原因,小程序嵌套了大量的h5页面供; 但涉及到支付类的操作必须在小程序原生页面完成; 这就牵扯了webview跳转原生小程序问题; 我们在线上经常遇到用户投诉;在webview页面点去支付没有反应; 代码逻辑上,这个按钮点击应该跳转原生页面才对的; 我们也在相关页面添加了日志,显示已经触发jssdk成功跳转回掉 但是并没有跳转成功 就在前几天我们又接到用户关于跳转失败投诉; 这种收到反馈,搜集微信日志,联系官方的操作过于被动; 每次都要被公司质量管控部门吐槽,有苦难言; 社区也有不少开发者反馈相关问题;但是偶现bug,官方也不易排查 所以除了等待官方解决我们就没有别的办法了么? 突破 就在我辗转反侧,彻夜难眠的时候,官方文档的一句话吸引了我 [图片] 每次网页加载都能触发bindload事件获取到url 那么我们能不能指定一个url,获取url上的指定的参数,利用小程序原生能力进行跳转呢 实现 wxml 页面添加bindload事件监听 [代码]<web-view src="{{url}}" bindload="load"></web-view> [代码] js 监听url中的变化,检测到指定值执行跳转逻辑 [代码]load: function (e) { // 获取url const src = e.detail.src; const query = src.split('?')[1] || ''; // 检测url参数中是否有指定的参数 const isJump = query.indexOf('word=jump'); // 检测到指定值执行跳转逻辑 if(isJump >= 0){ wx.navigateTo({ url: '/index/index' }) } } [代码] demo 这里写了一个简单的demo https://developers.weixin.qq.com/s/HCPpEzmU7DkV 嵌入了触屏的baidu 当监听到搜索关键词为jump时,会执行原生的跳转 [图片] 兼容性的问题 因为公司小程序基础库是2.9.2,大于等于这个版本的可靠性是经过我们线上验证的 低于2.9.2的基础库版本有待考证,可能需要使用者自测 这里给大家提供一种思路,可以结合场景使用 安卓微信8.0.1,出现webview bindload没有执行的情况,这个api在新版本微信上可能有兼容性问题(20210322)
2021-08-13 - 安卓曲面屏手机,从小程序跳转web-view中内嵌h5页,h5页面内多次跳转,右划直接返回小程序
android曲面屏收集,从小程序页面跳转到web-view内嵌h5页面 h5页面内多次跳转 右划后退 直接返回到小程序页面 期望结果:与其他android的返回,表现一致 手机:小米 Mi 10,系统MIUI11.0.25,微信版本: 8.0.1
2021-05-31 - 由webview在小程序内不能正常返回说起
前几天在将一个已有的H5项目,嵌入小程序,遇到小程序左上角无法返回的问题, H5 页面中,浏览器/安卓/小程序 的 back(返回) 键,默认会直接回退到上一个页面,这听起来似乎十分正常。 但是当遇到不按常识的现象时,我们就要思考,是不是有哪个知识点,我们是缺失的?最后定位到是由于在返回这里做了特殊逻辑,特意控制不能正常返回的 本文背景我们在平时浏览页面时,习惯了,点左上角的返回,但是有没用想想这个返回是不是可以由代码来控制呢?比如希望能监听到返回事件并且做一些处理。 本文内容我们每次访问浏览器的时候,浏览器会按照时间的顺序把访问的页面放到历史记录里面,而且每个次都会有一个索引,默认是从0开始依此类推,所以我们刚开打浏览器控制台输出的length是1。 除此之外 HTML5引入了 history.pushState() 和 history.replaceState() 方法,它们分别可以添加和修改历史记录条目。这些方法通常与window.onpopstate 配合使用。可以用来通过代码控制返回的一些额外业务逻辑, 其中本文开头描述的,不允许返回,也是基于该事件来完成 参考文章1)解决浏览器返回页面不刷新的问题 https://juejin.im/post/6844903818191175687 2)移动端h5监听浏览器返回操作(目前在react项目中用到) https://juejin.im/post/6844903649378992136 3)你必须知道的路由原理 https://juejin.im/post/6844903858255167501 4)H5:“同样是返回,我们不一样” https://juejin.im/entry/6844903625823633415 5)SPA路由机制详解(看不懂不要钱~~) https://juejin.im/post/6844903682828402701 本文备注我在社区有几篇实践文章,讲述正常情况下webview嵌入小程序的跳转 小程序webview嵌入H5网页,网页之间跳转实践? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/000c6e20624a10e0720b80e895b813 本文总结该文描述内容同样适用于下面需求的实现 ~~~ 今天中午在领完盒饭,吃饭的时候,正吃着深海鳕鱼片,蘸上番茄酱,那美味,简直无以言表。突然产品急匆匆的跑过来说:“我们要做一个搜索功能,用户在搜索框输入不同的搜索关键词时,url也要跟着变化,但是页面不能被刷新...保证用户刷新页面的时候还能定位到当前的搜索关键词”吧啦吧吧说了一大堆后,留下一句:“这个需求很简单,怎么实现我不管”,便扬长而去...留下我独自一人,面对着我已经凉透的深海鳕鱼片... ~~~~
2020-11-03 - 小程序导航栏出现返回首页按钮
目前返回首页按钮出现的条件为(需同时满足): 1. 使用了默认导航栏样式(非 custom) 2. 不是首页或 tabbar 页面(在 app.json 中定义的) 3. 是页面栈最底层页面 如果是开发者自己手写的 tabbar 导致的问题,需要在页面的 onShow 中调用 wx.hideHomeButton() https://developers.weixin.qq.com/miniprogram/dev/api/ui/navigation-bar/wx.hideHomeButton.html手动隐藏返回首页按钮。
2019-09-27 - 小程序在web-view中跳转小程序,提示“当前小程序无法打开***小程序”
每个小程序可跳转的其他小程序数量限制为不超过10个,在web-view中打开的小程序也包含在这个限制中。 从 基础库2.4.0 版本以及指定日期(参考公告)开始,开发者提交新版小程序代码时,如使用了跳转其他小程序功能,则需要在代码配置中声明将要跳转的小程序名单,限定不超过 10 个,否则将无法通过审核。该名单可在发布新版时更新,不支持动态修改。配置方法详见 小程序全局配置。
2019-11-11 - 小程序跳转数量限制总结
总结一下小程序的跳转能力和数量限制 表格 来源 目标 方案 数量限制 优点 缺点 小程序 小程序 通过原生Api跳转 10个 用户体验最好 仅限跳转10个小程序,且不可动态替换 官方已放开限制 小程序 小程序 通过预览Api,预览小程序码,长按识别跳转 无 无数量限制 操作复杂,需要先预览图片,然后用户长按识别 小程序 小程序 webview打开H5,在h5中长按识别小程序码 无 无数量限制 需要对接额外开发h5,但相比上一方案,可减少一步预览图片 小程序 h5 webview 20个业务域名 减少小程序页面的开发,直接对接已有的h5 需要配置业务域名,限制为20个 公众号h5 小程序 小程序卡片 10个相同主体,3个不同主体 用户体验最好 需要关联公众号,且仅支持微信文章h5,无法动态进入 公众号h5 小程序 长按识别小程序码 无 无限制,可动态生成二维码 需要用户自己长按图片,用户体验较差 app 小程序 微信sdk 50个相同主体、5个不同主体 就这一个方案,没得选 需要在开放平台上关联app和小程序 小程序 app 小程序原生Api 无 就这一个方案,没得选 只能从小程序返回app,不能主动打开app 小程序 公众号 原生关注公众号组件 1 必须是扫码进入小程序的场景,才会出现公众号关注组件,且需要关联公众号和小程序 小程序 公众号 小程序客服消息发送公众号二维码,用户自己长按识别 无 操作复杂,用户体验差 小程序 公众号 通过预览Api,预览公众号二维码,长按识别跳转 无 无数量限制 操作复杂,需要先预览图片,然后用户长按识别 小程序 公众号 webview打开H5,在h5中长按识别公众号二维码 无 无数量限制 需要对接额外开发h5,但相比上一方案,可减少一步预览图片 思维导图 [图片]
2020-06-24 - 第三方平台的服务器域名有“最多绑定20个小程序”的限制么?
小程序已经授权给第三方平台,第三方平台的域名列表里配置了一部分域名,授权的小程序需要调接口再设置一次域名,第三方平台的域名列表里的这些域名,有“最多绑定20个小程序”的限制么? 1、如果有的话,那第三方平台怎么做到授权给无限个小程序呢,第三方平台能配置的域名也是有限的,给小程序设置的域名又必须在第三方平台的域名列表里? 2、我看业务域名支持第三方平台配置域名,授权小程序设置已配置域名的子域名,不知道服务器域名什么时候也能支持子域名设置?
2019-11-19 - 微信第三方平台:若干项能力优化提升
微信团队近期对第三方基础能力进行了若干项优化,并对服务平台提供的能力及服务进行了迭代,详情可见微信第三方平台开发文档和微信服务平台,优化内容具体如下: 优化业务流程 1.第三方代注册小程序,可快速设置登录邮箱和密码 第三方平台使用快速创建小程序接口代商家创建小程序后,商家将收到设置小程序登录邮箱和密码的微信消息提醒,管理员可点击提醒前往设置,或直接搜索「小程序助手」进行邮箱密码设置。 具体操作指引详见第三方代注册小程序支持快速设置登录邮箱和密码。 2.第三方代注册小程序,支持更多类目上线 第三方调用接口快速创建小程序现已支持更多类目,以往只支持创建线下类目的小程序,目前除了境外主体的类目、内测类目、以及个别敏感类目暂不支持外,大部分类目均与“微信官方文档-小程序开放的服务类目”对齐。快速创建小程序接口-类目参考表已更新。 提高开发效率 1. 完善第三方开发文档 近期在微信开放平台上,陆续补充、完善第三方开发文档,其中数据分析、小程序直播两个接口文档已上线。 后续将继续完善、输出更多面向第三方平台的接口能力与文档。 2. 第三方平台服务器域名设置 1)提升服务器域名数量上限:Request域名、Socket域名、Uploadfile域名、Download域名、Udp域名的设置数量均最大支持200个; 2)服务器域名的每月修改次数上限,提高至50次。 3. 第三方平台业务域名设置 业务域名数量上限提升至100个。 4. 第三方平台小程序模板库数量限制 小程序模板库数量上限,从50个提升至200个。 5. 上传小程序代码时,ext.json对插件的支持 通过commit接口上传小程序代码时,可通过ext.json完成对Plugins的配置,该配置会覆盖模板中app.json中的Plugins配置。 6. 小程序直播插件在ext.json的配置优化 小程序直播插件,可直接通过Plugins进行配置;不再需要额外配置recompile:true才会生效。 7. 第三方平台调用头像修改接口的报错说明 修改头像接口的返回错误码47001,含义为“数据格式错误”。需注意,此接口入参中,x,y参数均需为字符串类型。 8. 第三方平台模板保存的优化建议 当第三方平台模板较大时,保存模板容易触发每秒30M的上传流量限制,建议开发者注意调用频率和控制模板大小。 提供更多能力 微信服务平台,是给微信公众号、小程序运营者提供优质服务的官方平台,提供小程序开发、小程序插件、接口能力等开发服务,以及直播、视频等运营内容服务。 1. 提供AI、安全、地图、内容等近50项接口、插件能力 提供来自微信团队、腾讯云、腾讯音乐在内的近30项接口、插件能力,例如OCR识别、珊瑚内容安全、人脸检测与分析等,可供开发者在开发小程序过程中使用,实现基于接口的服务能力。 [图片] 2. 提供直播、视频、图文等内容代运营服务 MCN内容服务专区现已正式对外开放,帮助合作伙伴为商家提供直播、视频、图文等内容服务,满足商家直播方案策划、达人代播、公众号代运营、图文视频制作等需求。 商家可在内容服务专区选择服务商,下单并联系合作。 想要入驻专区的机构可以查看MCN服务商入驻要求后,与平台联系。 [图片] 平台将继续与各位合作伙伴共同建设更为完善的第三方平台生态,共同创造出更多优质小程序。
2020-07-15 - 关于服务器域名绑定限制
对于每个需要配置域名的接口,分别可以配置最多 20 个域名;对于每个域名,分别限制最多被20个帐号绑定。 更多关于域名配置请参考文档说明。 第三方平台是授权的小程序共用一套域名,第三方平台代表一个帐号。
2019-11-25 - 微信登录能力介绍
为了便于用户便捷使用App、网站、移动端网页、小程序的服务,微信提供不同的技术方案,便于开发者在不同终端平台的服务中接入微信登录。 通过这个教程,开发者可以了解平台提供的针对各终端平台的微信登录能力,并可以根据实际使用场景合理选择接入方式。 以下为几类型微信登录的功能说明: 类型授权域/接口 用户侧使用流程 接入流程 App 接入微信SDK,并调用snsapi_userinfo (1)在App内选择使用微信登录 (2)拉起微信客户端,打开用户授权页,完成登录授权(1)注册微信开放平台(open.weixin.qq.com)帐号,并完成开发者资质认证 (2)申请【App移动应用】并审核通过后可以使用,查看开发文档网站应用 snsapi_login (1)用户使用微信“扫一扫”,在PC端扫码 (2)客户端打开授权页,完成登录授权 (1)注册微信开放平台(open.weixin.qq.com)帐号,并完成开发者资质认证 (2)申请【网站应用】并审核通过后可以使用,查看开发文档 微信客户端内H5使用公众号的登录能力: snsapi_base snsapi_userinfosnsapi_base:静默授权 snsapi_userinfo: (1)用户在H5内点击登录,唤起授权弹窗 (2)用户侧完成登录授权(1)注册微信公众号,选择“服务号”类型,并完成微信认证 (2)在公众号管理后台设置回调域名 (3)接入微信登录能力,查看开发文档 小程序wx.login wx.getUserInfowx.login:静默授权,开发者可获取openid wx.getUserInfo: (1)用户在小程序内点击组件,唤起登录窗口(2)用户侧完成登录授权 (1)注册小程序 (2)接入微信登录功能,查看开发文档,查看登录流程设计指引 开发者在不同使用场景下接入微信登录,应该注册符合要求的帐号并使用对应的登录能力。 【常见问题】 Q1: 在调用微信登录时,出现了“此帐号并没有这些scope的权限,错误码:10005”,是什么原因? A:对于场景与帐号属性、能力项不对应时(如在移动端网页中使用网站应用的AppID调用登录能力),将会出现以下的错误提示:此帐号并没有这些scope的权限,错误码:10005 [图片] Q2:我的服务同时有App、官网、公众号、小程序,那我怎么打通用户数据? A:对于多平台的服务,若开发者希望能识别用户身份,例如:希望用户在小程序内也能查看到在App内购买的商品订单,则可以通过平台提供的UnionID机制来实现用户身份识别。
2019-03-06 - 感觉这个功能对于saas新服务商有点不友好
[图片][图片] 感觉这个前缀占用规则功能对于saas新服务商有点不友好,原因有以下两点: 1.saas服务商层面通过变量参数来让商户在同一个主页面不同变量实现不同链接配置,一旦其中有一个用户占据了整个,商户在没有发现的情况下占据整个主页面,那其他的用户就没办法使用这个功能,同时我们也不好也不方便排查具体哪个用户出的问题 2.一般客户也没有强制性要占据这个规则的要求。 所以鄙人建议是否能默认为不占用,避免一个用户误操作导致其他几百个用户都用不了。 对我们saas开发服务商开发功能也比较友好一些。
2021-03-09 - 关于小程序SaaS站点部署模式,探讨小程序未来可期
近几个月,市场上流行SAAS小程序模式 我们团队经过几个月的开发测试,终于攻克了,一个代码SAAS多个站点的模式 具体情况测试 小程序代理商管理测试后台 http://wxapp.yssy168.com/index.php?s=/proxy/passport/login 账号admin 密码skw123456 以上解决了,常规的独立部署代码的繁琐,以及推广效率问题 代理商城管理的单独小程序站点管理 https://wxapp.yssy168.com/index.php?s=/store/passport/login 账号123456 密码123456 通过开源免费代码也可以实现如上,前提开发团队需要有过硬的技术团队支撑 例如 前端 后端,UI等相互配合 希望大家多多探讨
2020-10-26 - 使用小程序内的扫码功能实现网站和小程序端用户账号统一
前言 众所周知,目前情况下要实现微信账号相关的多端账号统一必须通过开放平台,使用unionid来实现。但是如果在没有开放平台(或者其他原因不想用、不能用),或者先有网站端已使用了原始登录方式(账号密码、手机号验证码等)的情况下,怎么实现账号统一呢?我这里想到了一种使用小程序内的扫码功能api(wx.scanCode)实现网站和小程序端用户账号统一的方法,欢迎讨论。 小程序扫码登录网站 这种一般是先有小程序,小程序端使用微信授权登录,然后需要在网站上使用同一账号登录。一般来说是在小程序端要求用户设置账号密码、或者先绑定手机号之后,再用账号密码或者手机号验证码登录。 小程序扫码的方法是网页上要登录时先生成一个唯一的登录码,比如:[代码]1234[代码],然后放在网站域名下的一个网址中,比如:[代码]http://www.abc.com/?loginCode=1234[代码],然后把这个网址生成二维码展示。为了更好的用户体验,这个网址应该是实际可访问的,可以用于在使用微信扫码时展示小程序码引导用户打开小程序。 用户在小程序中使用扫码api扫码后从扫码结果中提取出登录码,提交到后端接口,后端接口将登录码和当前登录小程序的用户绑定。网页端在展示二维码后,开启一个轮询,定时访问后端接口查询该登录码的登录状态,在该登录码和小程序已登录用户绑定后完成网站上的用户登录。 [图片] 小程序扫码登录小程序 这种一般是先有网站,小程序端要用网站用户登录的情况,一般的做法是小程序端也用和网站上一样的账号密码或者手机号验证码(或者微信授权获取手机号)的方式登录。 小程序扫码的方法大体原理上和上一个情况一样,流程略有不同。网页上用户登录后展示带登录码的网址对应的二维码,同时将当前登录用户和登录码绑定。小程序中扫码后提取出登录码,提交到后端接口,后端接口查询该登录码绑定的用户返回后在小程序端完成登录。还可以配合wx.login绑定当前用户的openid,实现自动登录。 网页端展示二维码后使用轮询查看登录码的登录状态,到期或者已登录后在网页端销毁二维码。 [图片] 总结 总结下来,这个方法就是以登录码为媒介,通过在某一端将登录码和登录用户绑定后,在另一端实现同一用户的登录,实际使用中还需要考虑登录码的有效期等。 以上方法流程不知道会有什么风险,欢迎大家的讨论。 ---------网友讨论分割线---------- 社区大佬杨泉提出扫码登录小程序的场景中,可以使用微信直接扫带参数的小程序码来实现。这个方案从技术上来说应该没什么问题,大致原理也是类似的,但是用户体验会好很多。 然鹅,我在实际项目中没有采用这一方案,主要基于以下两个原因: 微信直接扫码的情况下用户不知道小程序是否已登录,这时候如果扫了一个其他用户的码,还要涉及到用户切换操作,很麻烦 这个码有时效性,我实际设置的是1分钟过期,这就表示每1分钟就有可能要重新请求一次微信的服务端接口,也很麻烦 ---------网友再次讨论分割线---------- 社区大佬拾忆提出可以使用扫普通链接二维码打开小程序来实现功能。在小程序后台完成相关配置后,直接用微信扫码就会打开小程序指定页面个并将网址直接通过参数[代码]q[代码]带给页面,用户体验再次获得提升,果然大佬就是大佬。
2020-11-01 - 小程序关联公众号策略调整
各位开发者,大家好。 目前,小程序需要与公众号关联,才可被使用在公众号自定义菜单、模板消息、客服消息等场景中。而公众号关联小程序时,需要小程序管理员确认,该环节增加了开发者之间的沟通成本。 为了降低公众号与小程序间的合作门槛,我们将调整小程序关联公众号策略如下: 公众号关联小程序将无需小程序管理员确认。 取消“小程序最多关联500个公众号”的限制。 若希望小程序在被关联时保留管理员确认环节,可前往“小程序管理后台-设置-基本设置-关联公众号设置”修改设置项。 公众号文章中可直接使用小程序素材,无需关联小程序。 开发者可在“小程序管理后台-设置-关联设置”中管理已关联的公众号。 微信团队 2019.04.04
2019-04-08 - 同一个小程序可以被多少个不同主体的公众号关联?
团队正在开发一个商户用的小程序,商户想把小程序关联在自己的公众号上,商户的会员通过公众号菜单栏就能登录小程序。 我们目前有数千家商户,那么不同主体的公众号关联同一个小程序,会有数量限定吗?
2020-05-29 - 同一小程序下openId竟然发生重复?
贴代码: 1.微信授权 [图片] 2.获取用户手机号并保存微信信息 [图片] 3.最后数据库中 出现重复的openId,无法理解是哪个步骤出现问题
2020-11-02 - 基于域名重定向的微信域名检测拦截技术
由于业务或工作需要在微信进行推广和宣传,微信域名中基于Web页面的服务存在巨大的网络安全隐患。网络中的DNS(Domain Name System)数据内容中含有大量与Web应用有关的信息,例如接口;通过检测DNS数据内容可以高效地发现、定位、解决Web页面安全问题,降低域名在微信中被误判为非安全页面。作为一名程序猿,基于域名重定向的微信域名检测技术实现过程和设计方案的一些研究成果。 域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供域名和IP地址之间的转换及有关电子邮件的选择信息。域名是Internet上某一台计算机或计算组的名称,用于在数据传输时标识计算机的电子方位。域名是由一串用点分隔的名字组成,通常包含组织名,而且始终包含两到三个的后缀,以指明组织的类型或该域所在的国家或地区。 在微信中点击链接时,首先通过向域名系统发送域名查询报文,获得域名的IP地址,然后去访问此IP地址上的Web服务器。通过劫持域名查询报文,并伪造域名响应报文,将此可疑域名重定向到某一个安全网站,从而实现了微信域名拦截。 DNS域名重定向原理 设计方案 [图片] 如图所示,主机 1、2、3、4 代表一个局域网中的电脑(如微信平台),通过交换机A连接到外部网络,域名重定向系统接在交换机的镜像端口上,监控局域网中的所有数据,对微信中的可疑域名进行重定向或拦截,防止病毒网页的入侵。 基于域名重定向的微信域名拦截技术的实现 域名重定向主要功能是捕获网络中的数据,对流经微信中的DNS域名请求包进行处理,伪造应答包,将DNS域名重定向到目的IP地址,实现对某些网站的屏蔽或拦截。 [图片] 数据采集模块:初始化所需的各项参数,正确初始化之后,采集流经网络中的数据,交给数据分析模块。 数据分析模块:解析数据采集模块采集到的数据包,逐层分析,判断是否为 DNS 域名请求包,提取数据包的有用信息交给数据包发送模块。 数据包发送模块:利用数据分析模块提交过来的有用信息,伪造 DNS 域名应答包,发送给目的主机,实现 DNS 域名重定向。 数据库模块:数据库模块对可疑域名列表进行管理和拦截,可以添加、删除可疑域名,设置可疑域名的重定向目标 IP 地址,并可更改可疑域名的属性(是否需要重定向),为数据分析模块提供判断依据,即提供给数据分析模块可疑域名表单,根据表单中的可疑域名,有选择性的对网络中的域名进行重定向。图所示,基于域名重定向的微信可疑域名系统可分为四大模块:数据采集模块、数据分析模块、数据包发送模块以及数据模块。 如图为基于域名重定向的微信域名拦截系统流程图 [图片] 可疑微信域名拦截可疑域名的过程 假设域名www.urlzt.com为可疑域名,重定向到目标IP:202.112.144.31 则在数据库中添加可疑域名www.urlzt.com并设置重定向目标IP为202.112.144.32 基于域名重定向的微信域名拦截系统对www.urlzt.com的拦截过程如下: 1) DNS 客户端(局域网中的主机)向首选 DNS 服务器发送对于 www.urlzt.com的递归解析请求; 2) 域名重定向系统监听到这个请求,解析数据包,获取所请求域名 www.urlzt.com 3) 与数据库中的可疑域名列表比对,判断 www.urlzt.com为可疑域名 4) 向 请 求 者 发 送 伪 造 应 答 包 , 通 知 与www.urlzt.com 对 应 的 IP 地 址 为202.112.144.31; 5) 只要伪造应答包先于合法应答包返回到主机,当本地 DNS 服务器返回合法应答时,但由于在时间上晚于监听者的应答,结果被丢弃; 6) 重定向完成,微信会对 www.urlzt.com的访问被重定向到 IP 地址为 202.112.144.31 的网址,也就成功拦截了www.urlzt.com 基于域名重定向的微信域名拦截技术的实例测试 设置数据库内容,在数据库中添加www.urlzt.com为可疑域名,并把目标IP:202.112.144.31 如果检测显示正常则为域名进行重定向,否则为取消对其重定向。 [图片]
2021-04-30 - 非微信环境网页如何拉起微信登录
前言:微信网页登录文档 A https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html B https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 1、 检测网页环境 https://www.cnblogs.com/wangtz/p/12538850.html 2、 若pc调用 上面B的API即可实现 3 、若h5调用 则需要调以下的链接格式 https://open.weixin.qq.com/sns/explorer_broker?appid=wx62ba64796e13f092&redirect_uri=https%3A%2F%2Faccount.xiaomi.com%2Fpass%2Fsns%2Flogin%2Fload&response_type=code&scope=snsapi_userinfo&state=STATE_685333#wechat_redirect 4、小米案例 a、登录链接 https://account.xiaomi.com/pass/serviceLogin?callback=https%3A%2F%2Fsupport.kefu.mi.com%2Fsts%3Fsign%3DjorTe2AgW3OD2juZGL2HJC73mjQ%253D%26followup%3Dhttp%253A%252F%252Fsupport.kefu.mi.com%252Fpage%252Findex%252Fv2%253Ftag%253Dcn%2526token%253DY24ud2ViLm1pLmh0dHBzLm1vYmlsZSNyZWZlcmVy%2526productId%253D9452%2526goodsId%253D2191000003&sid=mcc_chat_fe b、pc拦截 https://open.weixin.qq.com/connect/qrconnect?appid=wxa21de3acc0d5e79b&redirect_uri=https%3A%2F%2Fsns.account.xiaomi.com%2Fpass%2Fsns%2Flogin%2Fload&response_type=code&scope=snsapi_login&state=STATE_889829#wechat_redirect c、h5的拦截链接 https://open.weixin.qq.com/sns/explorer_broker?appid=wx62ba64796e13f092&redirect_uri=https%3A%2F%2Faccount.xiaomi.com%2Fpass%2Fsns%2Flogin%2Fload&response_type=code&scope=snsapi_userinfo&state=STATE_685333#wechat_redirect 附:参考案例博客 https://blog.csdn.net/tiantian082054/article/details/90711900 https://www.jianshu.com/p/a1f357152dca 备注:主来自一位社区开发者的问题解决的整理:https://developers.weixin.qq.com/community/develop/doc/0004caea6a836871524a7402156000
2020-05-21 - 微信小程序+webview+百度地图问题的终结答案
1、问题现象 [图片] 2、当前的反馈帖子 https://developers.weixin.qq.com/community/develop/doc/000eca6d5443c05f57ea3a84854400?highLine=webview%2520%2520%25E7%2599%25BE%25E5%25BA%25A6%25E5%259C%25B0%25E5%259B%25BE https://developers.weixin.qq.com/community/develop/doc/000a4c01754120c0f038259dc56800 https://developers.weixin.qq.com/community/develop/doc/000cc0bfab8258a6d3d70f4c751800 3、当前的结论 官方未回答,因为这是百度地图的功能。开发者也是迷茫为什么,该怎么办。 4、百度的开发文档和官方问答分析 http://lbsyun.baidu.com/index.php?title=wxjsapi http://lbsyun.baidu.com/index.php?title=FAQ/wxjsapi [图片] 5、结论: 小程序内web-view能否用百度地图,取决于你引用百度地图后是否有调用百度服务器。如果只是用来渲染地图类或本地交互类的是可以支持的,但是如果是打开网页直接调了百度地图的服务器,就会通不过微信服务器的校验。 如果需要再小程序内调百度地图的服务,只能用原生地图的开发模式,先注册百度地图-微信小程序类型的ak,并下载js文件后,给小程序配置服务器百度地图的request域名后,再调用。 综上所述:百度地图在小程序web-view模式,是无法调用百度地图服务。如果有此需求可以自己规避下,或者切换技术架构或实现方案。
2020-10-15 - 小程序服务商开发者,如何用工作流思维管理大量小程序的版本迭代?
和普通的单个小程序开发不一样,小程序服务商,除了要完成小程序代码本身的开发,管理好小程序代码的版本之外,还需要维护旗下所有小程序的线上版本迭代。 作为垂直领域的小程序服务商,每一次小程序版本升级都是新的业务能力的推出,助力垂直领域的客户更好的使用垂直领域的服务能力。垂直领域服务商和中小型企业相互借力,更好的发挥自身的长处,进而实现商业价值。 那么如何用开放平台的接口能力实现服务商小程序的版本管理,让版本升级这件事情,不在随着旗下小程序的用户量的增加而变得日益困难呢?下面我来跟大家分享下我自己在管理旗下所有小程序的版本时的小小心得。 1 引导授权 引导用户授权小程序给平台,且在授权时注意要把一下权限包含在内。 帐号管理权限 生成带参数二维码接口,获取修改基本信息 开发管理与数据分析权限 代码开发管理,(注意此权限集只能授权给一个第三方平台,如果授权时没用显示此权限集,就需要用户先登录小程序后台取消授权给其他平台后再次扫码) 小程序·云开发管理权限集 如果使用云开发,则需要此权限 2 首次提交审核 首次提交前,先给客户设置业务域名和服务器域名。 A 直接把线上稳定版本的的templateid的代码给客户提交 B 把后期升级需要替换ext.json所需要数据准备好,如果可以根据appid查到就可以用appid作为外键即可 C 提交代码核心参数 appid templateid ext_json 3 代码包的开发 下面我们来说一下代码包的开发与测试。 根据第三方平台的审核审核机制优化规则,会采取抽样审核的快速审核机制,所以对开发者提交的版本的质量会有很高的要求。而且对于一个平台来说,自2019.9.1后,每个月可提交的小程序的额度是自然月内有限的,及时撤回也占用审核额度。代码包的质量就会尤为重要。 那么怎么提高代码包的质量呢? A 提高自身的开发能力,写出性能稳定的代码。 B 多看小程序的开发文档,提高对接口能力的理解和应用,和接口的间的关联的理解 C 测试时要覆盖到每个分支 D 多逛社区,帮助他人,同时也知道哪些地方有不完善或者有坑,该如何避开 E 另,针对平台的整改及一些近期版本计划的公告,社区也是最先发布的 4 后期版本升级维护 当有新的功能推出上线时,需要迭代开发小程序代码,产生新的稳定版本后再给旗下小程序提交审核。用开发小程序通过真机测试后,再通过开发者工具·提交代码到第三方平台草稿箱,再添加到模板库。 这时就能得到新版本templateid。得到新版本templateid后并不是直接去给旗下小程序提交审核,而是要用内测或者开发小程序,先用新的id的代码包先提交审核,审核通过上线测试无误后,在批量给旗下小程序提交代码审核。 5代码模板的提审处理 后期对代码包的提审和首次代码包的提审是一样的维护方式。代码审核结果会下发到消息与事件通知url,此时要把审核结果记录再自己的数据库,作用有以下几点 A 查询每个版本的提审通过率,及审核期间的审核进度 B 对于异常审核的账号做记录和分析,反向去思考自己代码包存在的问题,提高平台的性能和代码包的质量 C 小程序的基本信息会影响小程序的版本审核,对于这样的小程序,只能暂缓提升新版本,给客户处理完基本信息规范符合小程序平台规范后,再重新提交审核 D 方便记录每个小程序的版本提审和通过时间 E 一般建议,审核通过的小程序可以直接提交上线。至于灰度覆盖率,大家可以根据自己的需求来决定 6代码模板的审核进度查询 通常关注以下主要指标即可: A 旗下小程序用户的总量 B 新版本提审成功总量 C 当前版本审核通过且上线的总量 7 异常审核账号的特殊处理 前面说过我们会把审核结果分类整理。 A比如审核不通过是因为部分小程序在注册时没用根据一定的运营规范来取名字,导致审核通过但不能上线,那就需要加强对运营规范下的基本信息规范的学习。 B 审核时有些客户功能不能正常体验导致审核失败,那就要去找这些客户的共性,分析哪种客户容易出现这种审核,从而在下次提交审核时,提前把这类客户经过处理后再提交。 C 再比如,有时确实是自己代码包的测试case没覆盖到位,那么就需要找到影响体验的小程序代码的具体代码未知,优化分支逻辑。 总结 综上所属,我再管理旗下小程序版本时,采用的是工作流思维,再根据审核结果去归纳总结平台出现的问题,进而优化平台整个服务流程,提高平台的稳定性。用一张草图简述: [图片]
2019-09-02 - 视频号关联小商店/小程序
更新:以下内容适用于微信8.0.6版本前的设备,微信8.0.6版本后的设备详见指引 一、视频号关联商店的作用 [图片][图片] 二、关联条件 「小商店」 当前视频号的超级管理员为小商店的超级管理员当前视频号的超级管理员为小商店的成员「小程序」 当前视频号和小程序的主体一致当前视频号和小程序的超级管理员一致视频号的管理员为小程序的推广者(可在mp后台交易组件模块设置)三、如何上架直播 请完成视频号关联小商店/小程序步骤后,前往查看视频号直播关联小商店/小程序指引 四、视频号关联小商店/小程序步骤的详细说明 [图片][图片] 更多资讯,欢迎到【交流专区】微信小商店主页发帖和寻找答案。
2021-06-11 - 红包封面的N种玩儿法
首先,需要有足够多的红包封面样式,越多越好,而且还得好看。 红包封面申请地址:https://cover.weixin.qq.com,支持个人(认证视频号)和企业认证公众号申请。 需要提供资质:作品源文件+作品著作权,缺一不可。可同时提交三个封面,简单的封面3个工作日审核,复杂的封面30天审核。审核通过后可无限购买,1元一个。 做自媒体朋友,千万不要错过这波流量,赶紧推广,活动可持续到2月底。这波营销可以让你的公众号从0-100万粉丝,一个月完成。可以让你的小程序流量主在一个月之内从日收益1元到日收益万元。 下面说下玩儿法,玩儿法很多,选择合适自己的,一定要看到最后,要不然你的封面怎么没的都不清楚。 红包封面公众号玩儿法: 1、关注赠送红包封面,对接系统以openid发放,按取关率50%来说,就是5块钱一个粉丝,成本较高,不推荐。 2、完成公众号任务送红包封面,比如集字、集卡活动,自己可设置概率。因集卡活动周期比较长,所以取关率较低,大约在20%左右,粉丝成本也不是很高。实验数据:7天新增3300粉丝(数据比较低,因为我只有一个红包封面,而且特别low),支出205个封面,34元现金,粉丝单价7分钱一个。(红包封面以openid发放) [图片] [图片] 3、公众号其他任务,比如邀请关注等等,成本相对都比较低。(红包封面以openid发放) 红包封面小程序玩儿法: 1、签到赠送,比如签到7天+邀请5个好友,赠送一个封面,签到以激励方式进行,配合页面视频、插屏广告等。 我做的活动是7天内签到3天+邀请5个好友,赠送一个封面。7天总收益是3W+,支出数据是500个封面左右,我的签到没设置订阅消息,大部分都是用户自己忘记,或者邀请好友数量不足。(因为做了openid 判断,必须邀请新用户助力) 2、抽奖赠送,比如满X人抽奖,随机中奖者可获得一个红包封面,可以设置激励抽奖,配合视频、插屏广告。 我做的活动是满20人抽奖,随机中奖,邀请好友赠送抽奖次数(非强制)。7天总收益是5W+,支出是300个封面左右。后来添加粉丝好友做了私域流量群,抽奖次数50+不中奖的赠送一个封面,邀请好友超过50+的赠送一个红包封面,这个具体看自己操作。收益绝对高 3、其他类型小程序玩儿法,比如闯关赠送、答题赠送等等,根据自己的系统去做方案,千万不要忘记裂变,这个活动主要靠裂变。 红包封面后期裂变: 当用户使用你的封面发红包时,所有人都可以看到你的封面故事,从而点击进你的公众号、小程序,是给你二次裂变用户,也是一个可观的数据。 [图片] 红包封面注意事项: 不要投机取巧,让用户购买你的会员、商品等赠送红包封面。一旦被微信查到,直接封掉。未经腾讯允许,你也不得因微信红包封面而以任何形式、向最终用户或其他任何主体收取任何费用。也就是说,只要和钱挂钩,那么你的封面就会被封。(能以openid 发放尽量以openid 发) [图片] [图片] 最后祝大家粉丝多多,流量主收益多多,牛年发发发!!!
2021-01-13 - 小程序迁移,AppId、AppSecret、openid、unionID的变化情况?
小程序迁移,AppId、AppSecret、openid都不会变,unionID会视情况而定: 1、如果只是单纯的小程序迁移,不涉及open帐号变化,unionID就不会变。但是有可能会因为主体改变而影响unionID的获取逻辑,请开发者根据实际情况调整UnionID的获取方式。 2、如果涉及到open帐号变化,unionID就会改变,因为unionID就是根据open帐号的信息直接计算出来的。
2019-11-20 - 企业微信3种裂变玩法,保证你一看就懂
前段时间wetool被封杀,很多小伙伴都在寻找替代的运营工具。这样一来,企业微信作为官方运营工具,可以说是我们做私域流量、精细化运营客户的唯一选择。 [图片] 企业微信作为新的私域流量工具,存在大量的机会,越早布局能抢占更多的流量。目前,宝洁、猿辅导、小红书、屈臣氏、恰恰等各行业的top品牌,都已经开始了企业微信的裂变。可以毫不夸张的说企业微信是2020年下半场微信生态引流变现红利。 今天为大家分享企业微信的3种裂变玩法,保证你一看就懂,一学就能够增长。 一、企业微信社群裂变玩法简介 以社群为载体,通过诱饵包装,以海报的形式吸引用户入群,通过话术提醒,引导用户完成海报转发任务,吸引更多用户。 活动路径 [图片] 辅助工具 1、群活码 这个是官方自带的【群裂变】功能,可在PC端【客户联系-配置-加入群聊-新建加入群聊】配置。 用户扫描群活码可以直接进群,群人数达到上限会自动创建新群。 目前每个群活码上限是5个群,每个外部群为200人,相当于可添加1000人进群,而且群活码二维码不会过期,方便线下门店打印物料。 Tips: 如果社群用户量比较大的话,建议使用几何裂变的活码工具(免费提供),提前建好群,将群二维码批量上传至活码工具。 2、群任务发布 通过入群欢迎语可以对新入群的用户自动发送消息,还可以@用户,这里就可以用来发布群任务,引导新进群的用户按照要求完成任务领取奖励。 Tips: 1、入群欢迎语只能在手机上设置,不管是用电脑上在素材库里添加编辑,还是手动编辑发布,都需要登录手机企业微信操作、替换; 2、入群欢迎语最多只能设置2条,一条文本消息,一条图片消息; 3、入群欢迎语弹出时间可以自定义, 3、群任务审核 群管理员需要在手机端开启自动回复,客户在群里@小助理,会根据后台设置的内容触发相应的消息回复。 自动回复内容在PC端【客户联系 - 工具 - 效率工具 - 自动回复】中设置。 自动回复的信息一般会提示用户正在审核,这个审核提醒不具备任何审核的功效,只是另外一个引流入口,审核的工作还需要人工操作完成。 4、防骚扰 群管理员可设置防骚扰规则,消息包含关键词/发网页/发小程序/消息长度超过N个字或N行/连续N秒发N条消息都可以自动将用户移除群聊,并且加入黑名单,后续再次进群会再次踢除,同时还有社群去重功能。 二、企业微信好友裂变玩法简介 用户扫码添加企业微信,企业微信自动推送活动规则和用户专属分享海报,用户只有转发海报让其他人添加企业微信,达到一定的人数后才算完成任务,并获得奖励,例如某个东西或某个活动的免费参与资格。 活动路径 [图片] 1、朋友圈/社群看到活动海报 2、用户扫码添加企业微信,企业微信自动发送活动规则,获取专属海报 3、用户转发海报,邀请好友为自己助力 4、好友成功添加企业微信,则助力成功 5、用户完成任务,领取奖品 企业微信好友裂变玩法的优势是路径简短,对于用户来讲,只有扫码添加企业微信和分享2步,就有机会完成任务领取奖品,也是我最推荐的企业微信的裂变方式。 tips: 1、可以设置多个企业微信成员,客户扫码添加的企业微信成员会随机分配,好友数量和账号安全双保障; 2、客户已经添加了该企业微信,也可以自动发送活动规则,获取专属海报,不限制是否是老客户。 [图片] 三、企业微信任务裂变玩法活动路径 [图片] 1.朋友圈/社群看到活动海报 2.用户扫码关注公众号,公众号弹出企业微信二维码 3.添加企业微信,在企业微信对话框获取专属海报及活动规则文案 4.用户转发海报,邀请好友为自己助力 5.好友关注公众号,并且成功添加企业微信,则助力成功 6.用户完成任务,领取奖品 tips: 1、助力的好友必须同时关注公众号和添加企业微信,才算助力成功,如果只是关注公众号,系统则不会对助力值+1,相当于助力不成功。 2、如果你的助力好友只添加了公众号没有添加企业微信,公众号自动发送消息提醒,必须添加企业微信才算助力成功。 企业微信任务裂变玩法的优势是能实现公众号和企业微信的双引流,缺点是路径长,由公众号添加到企业微信会有用户流失,具体的流失率跟你引流产品的势能和任务人数都有关系。
2020-09-16 - 实时消息提醒的单向客户关系
在企业微信拉新时,由于企业微信免验证规则限制(免验证设置后必须通过联系我二维码扫码才能实现双向客户关系),经常出现用户扫码后是单向客户关系,而工作人员认为自动免验证加入,出现对用户的服务不到位,被用户拉黑或删除的情况,导致潜在客户的流失。 对出现单向客户关系,解决方法如下: 一、企业微信改变规则 在设置“加我为联系人需要验证”设置禁用后,给用户出示联系我的二维码(外部客户添加时是否无需验证字段skip_verify设置为true,默认为true),才能实现双向客户关系。 在运营工作中,由于各种原因,工作人员为用户出示的是“请加我的企业微信”中的二维码,导致单向出现客户关系,如果工作人员不去确认添加,就成为了真正的单向关系; 解决建议:企业微信官方改变规则,只要设置“加我为联系人需要验证”设置禁用后,不管用什么二维码扫码,默认都自动通过,不需确认。 二、教育员工正确使用免验证 由于第一条中的原因,在官方未改变规则的情况下,避免出现单向客户关系的最好办法,就是教育员工,设置免验证后,必须使用客户联系,联系我,通过二维码联系生成的二维码。 事实上,我们运营过程中经过多次教育,仍存在单向客户关系: 1、前期分享出去的二维码; 2、渠道下的人员众多,某些人未更换二维码; 3、新的渠道加入; 4、渠道执行不到位; …… 三、出现单向客户关系时的实时提醒 企业微信原生功能对出现单向客户关系时没有任何提醒,但我们可以借助企业微信提供的强大API接口,实现出现单向客户关系时的实时提醒,如下图所示(在企业微信自建应用中的消息): [图片] 实现方法及过程: 1、处理外部联系人免验证添加成员事件add_half_external_contact,获取EXternalUserID(openid)及UserID; [图片] 2、给员工(UserID)发送应用消息通知【文件卡片消息】,消息中包括聊天测试链接,调用创建会话接口,进入用户单聊界面; 在员工未找到消息添加的情况下,点开卡片消息,进入聊天测试,提示:无法与非外部联系人发起聊天。 [图片] 如到消息提示的时间找到外部客户,添加后,再进入聊天测试,如下提示后,然后就可以进入会话,与客户正常联系: [图片] [图片]
2020-09-07 - MoChat企业微信开源系统,让开发者快速搭建基于企业微信的私域流量运营系统
“经过行业的实战应用,企业微信已经成为”私域流量“运营的主要工具” 尽管现在基于企业微信开发的第三方产品处于一个百家争鸣的时代,但仍旧未能看到一个开源的、真正为 企业微信应用 开发服务铺路的框架&引擎,此为 Mo.Chat 开源框架及其团队成员的初衷,做市场上最好用的开源企业微信应用开发框架。Mo.Chat 开源框架提供开箱即用的企业微信管理工具,源代码100%开源,开发者还可以基于 Mo.Chat 开源框架开发更多场景化的功能和应用。 [图片] 作为国内首家开源的企业微信开源软件 Mo.Chat .在过去半年中,服务过超过百家做私域流量运营的客户。其推出的开源框架,功能丰富、简单易用,开源、扩展方便,深受广大企业微信用户和开发者的欢迎。毫不夸张的说,Mo.Chat 企业微信应用开发框架,对私域流量在企业微信场景的运营有着深远的影响。 近 3-5 年来,用户运营发生了天翻地覆的变化,运营形态从公域流量运营迁移到了私域流量运营、从微信个人号到企业微信,深刻的改变了企业和用户的沟通方式,互联网的主流形态从人与产品的连接也转为人与人的连接。随着时间的发展,我们注意到了一些重要的变化:以微信群、朋友圈为代表,人和人的连接效率越来越高,信息传播的速度越来越快,越来越多的企业或个人靠私域流量的持续经营就可以获得长期的回报。 我们最开始推出了SaaS版的系统工具,服务的客户大部分是偏互联网型的公司,有自己的技术团队。由于运营部门的需求,需要企业微信的相关工具,内部开发的话一是研发资源紧张,二是项目研发周期长,所以都是被迫从市场上寻找一些现成的第三方工具,解决当前需求。但是从长期看会遇到以下问题: 1、SaaS的产品定制化程度低,都是标准化的产品,也就是提供“我有什么你用什么的服务”。但是私域流量的运营虽然可以应用到各行各业,但是并不能通用,每一家企业都有自己的业务特点,要想做的好,一定是要基于企业自身的业务特点进行量身定制化的设计,才能使系统工具更大的发挥价值; 2、私有化成本高。一般稍具规模的企业都有私有化的需求,保障数据安全。但是目前市场上的解决方案私有化成本都非常高,最少的估计都要10万起,且源码加密,很难根据业务的发展需求实现内部的二次开发; 3、系统难以和内部其他系统打通。基于企业微信的私域用户运营系统只有同内部的其他系统数据打通,形成协作模式,才会大大提升运营效率和效果。但SaaS的方式与内部系统耦合度低,不能无缝融合,这种融合并不是开放API就能完全做到的; 以上也是我们服务的客户都遇到的问题,那么有没有什么好的解决方案?其实很简单,企业只需要拥有一个属于自己的企业微信运营系统就可以完美解决,但是自己研发又会碰到: 1、开发周期长; 2、试错成本高; 3、重复造轮子; 以上问题可以总结为一个问题,如何提升搭建一套属于自己的企业微信管理系统的效率?(提升开发效率) 因此,我们经过一年的精心准备,决定在私域流量运营经济的 2.0 的今天,正式推出全新的产品:Mo.Chat Mo.Chat 是一套开源的企业微信应用开发框架&引擎,用户可以在不需要任何编写代码的基础上,通过简单的设置和安装,在互联网上搭建属于自己的、具备完善功能、很强负载能力和可高度定制的企业微信应用服务。Mo.Chat 内置了七大能力:基础服务管理能力、渠道活码管理能力、客户管理能力、客户群管理能力、消息管理能力、侧边栏能力和应用插件扩展能力;通过 Mo.Chat 的发布,既可以满足开发者开箱即用的需求,又可以满足未来的场景定制化扩展。第三方的开发者还可以基于 Mo.Chat 开发框架开发各种应用,更多更好的服务好企业,打造一个百花齐放的全新企业微信社区生态。 [图片] Mo.Chat 继承了企业微信官方的核心能力,增强了开发效率和底层能力,原生的接入企业微信生态,帮助开发者更容易搭建企业微信应用。更重要的是,作为一个刚出生的“孩子”,我们每个月都在持续更新迭代,我们团队只做这一件事情。 尽管现在基于企业微信开发的第三方产品处于一个百家争鸣的时代,但仍旧未能看到一个开源的、真正为 企业微信应用 开发服务铺路的框架&引擎,此为 MoChat 及其团队成员的初衷,我们将持续投入并为此付出努力,也欢迎各路开发者加入我们参与开源建设。 MoChat 提供的 5 大核心特性 源代码100%开源:Mo.Chat 代码基于 Apache License 2.0 开源协议,在遵守协议规范的基础上,您可以自由的使用、修改 和 发布代码。同时,欢迎通过 Github 社区提交你的代码,让 Mo.Chat 拥有你提供的能力。 高度可扩展的插件机制:帮助开发者事半功倍,开发者无后顾之忧,只需要专注于自身业务场景定制的落地。插件机制灵活,安装即用,插件之间互不干扰。 内置强大的多种流行功能:Mo.Chat 开源框架的基础框架层功能会根据行业的发展和实际需求不断的更新和升级,保证产品的先进性和实用性。 文档详实易读:各种开发说明文档结构清晰、内容详实、健全,开发者可轻易使用,快速完成各种应用的构建。 变现能力:第三方开发者可以根据 Mo.Chat 开源框架提供的能力快速开发应用,如引流吸粉、营销裂变、客户管理、社群运营等,上架到应用市场,帮助开发者、创业者快速变现。 众所周知,技术在趋势面前的发展是不可阻挡的。也许 Mo.Chat 还不够完美,但我们会持续的优化迭代。我确信,未来每一家企业都有属于自己的企业微信运营系统,其中大部分都是基于 Mo.Chat 开源框架开发的,Mo.Chat 将成长为全网先进的私域流量经营场景必不可少的工具。 Mo.Chat 还通过社群的方式,向企业微信感兴趣的开发者、产品经理、运营、企业老板/高管、创业者等输出干货内容,最新的产品设计理念和原文件、丰富的企业微信运营案例拆解和技术分享等。Mo.Chat 希望通过开放、自由的环境,打造最好的企业微信开发者社区。 [图片] [图片] 开源才是基础软件的未来! 欢迎大家关注我们一起交流: 公众号:MoChat 开源框架
2020-11-19