- 现有多个微信认证补开发票,发票收到时已过期,现在公司要发票,在我的专属客服里没人回复,怎么补开?
公司有四个小程序进行年审认证的,发票收到时已过期,现在公司要重新开一下发票 公司主体名称:宁夏希望信息产业股份有限公司 纳税人识别号:916411006249207376 联系人:刘小东 联系电话: 小程序名称和AppID如下: 易采牛:wxc984bd024d89020d,牛市通:wx9005c4193d85cdc6,肉牛溯源:wxf059d1f5e71f68d2,固原动物防疫:wxc0afdf01e5b66245
01-04 - 【微信小程序备案】9月1日起,微信小程序需完成备案才可上架!已上架用户,查看这份备案手册,快人一步,抢先备案!
自2023年9月1日起,微信小程序必须完成备案后才可上架;已经上架的小程序,要于2024年3月31日前完成备案,若逾期未完成备案,微信官方平台会按照相关规定于2024年4月1日起进行清退处理,目前备案通道暂未开启,9月1号正式开启备案通道,来一间商户,可提前准备资料,熟悉流程! 备案需要准备哪些资料 主办单位证件(营业执照) 主体负责人证件(身份证) 小程序负责人证件(身份证) 需要小程序负责人扫脸验证 其他材料:根据各省通信管理局要求,上传对应补充材料。 备案流程 ➤ 登录小程序管理后台([https://mp.weixin.qq.com/])首页顶部会提示“小程序需补充备案信息”,点击“去备案”;也可以在小程序管理后台设置模块-小程序备案-点击去备案,填写备案信息,并上传材料 ➤ 1-2个工作日内完成初审并告知结果 ➤ 提交通管局后,24小时内完成短信核验 ➤ 通管局在1-20个工作日内完成审核并告知结果 ➤ 审核通过后,下发小程序备案号 备案信息填写 1、主体信息填写 分个人主体和非个人主体 [图片] (非个人主体) [图片] (个人主体) 提示:选择地区、详细地址,请填写实际通讯地址。 上传有效证件原件的彩色扫描件或拍照件,请保持图片清晰完整、不遮挡关键信息/图像、边角齐全,证件有效期大于1个月。 请对照证件信息如实选择、填写备案信息。 2、主体负责人信息填写 提示:手机号码请填写主体负责人、应急联系人本人使用的有效手机号码,需保持电话畅通,不同人不能使用同一个号码 [图片] 3、小程序信息填写 [图片] 4、小程序负责人信息填写及人脸核身 如果小程序负责人和主体负责人一致,可直接复用主体人信息,如不一致,需手动填写小程序负责人信息。 [图片] 平台初审 开发者在微信公众平台提交小程序备案信息后,平台将会在1-2个工作日内完成初审(具体请以实际审核时间为准),审核结果将以站内信息、模板消息等形式通知管理员。在平台初审的过程中,请备案相关人员保持电话畅通,以便平台对你提交的备案信息进行核验。 工信部短信核验 根据工信部的要求,小程序备案需完成短信核验。你的备案初审通过后,会收到工信部发送的核验短信(发送号码:12381),请在收到短信的24小时内登录工信部备案官网首页完成短信核验,短信核验成功后备案申请进入通管局审核流程。 若核验时提示验证码错误或无效,你可触发一次短信重发;24小时内未核验成功,备案将被工信部系统自动驳回,你需到微信公众平台重新提交备案申请 [图片] [图片] 通管局审核 各省通信管理局将在1-20个工作日内(具体以实际审核时间为准)完成审核,审核结果以站内信、模板消息、短信等形式通知。 备案成功 管局审核通过后,将下发的小程序备案号,代表你的小程序已完成备案,可以进入下一步版本发布等流程。 [图片] 此备案流程仅适用酒旅商家操作,如需查看更多,请查看微信小程序官方备案操作指引
2023-08-28 - 小程序隐私弹框组件
一、前言 文章这个编辑器真的太恶心了 代码块不仅不能设置缩进还不能使用tab增加缩进只能空格一个一个打 调个字体和代码格式太TM麻烦了 2023.08.22更新: 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明: 在 2023年9月15号之前,在 app.json 中配置 [代码]__usePrivacyCheck__: true[代码] 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。在 2023年9月15号之后,不论 app.json 中是否有配置 [代码]__usePrivacyCheck__[代码],隐私相关功能都会启用首先了解官方提供demo: demo1: 演示使用 wx.getPrivacySetting 和 <button open-type="agreePrivacyAuthorization"> 在首页处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/gi71sGm67hK0 demo2: 演示使用 wx.onNeedPrivacyAuthorization 和 <button open-type="agreePrivacyAuthorization"> 在多个页面处理隐私弹窗逻辑,同时演示了如何处理多个隐私接口同时调用。 https://developers.weixin.qq.com/s/4X7yyGmQ7EKp demo3: 演示 wx.onNeedPrivacyAuthorization、wx.requirePrivacyAuthorize、<button open-type="agreePrivacyAuthorization"> 和 <input type="nickname"> 组件如何结合使用 https://developers.weixin.qq.com/s/jX7xWGmA7UKa demo4: 演示使用 wx.onNeedPrivacyAuthorization 和 <button open-type="agreePrivacyAuthorization"> 在多个 tabBar 页面处理隐私弹窗逻辑。 https://developers.weixin.qq.com/s/g6BWZGmt7XK9 小程序后台隐私协议添加对应隐私协议(例如:剪贴板、手机号授权等)协议更新后有一定时间的缓存才能测试(大概是在半天之后可以测试)优先处理添加协议 (如果之前小程序已经添加过对应的协议,则需要重新提交审核同步信息才会返回正常用来测试)基础库设置3.23.3及以上 (微信版本:iOS 8.0.36、安卓 8.0.35会携带此基础库版本)app.json文件内这个配置__usePrivacyCheck__属性为true (uniapp开发参考下图) [图片]开发工具清除全部缓存之后重新编译、手机微信下拉删除最近小程序等进行隐私协议同步信息获取测试二、关于小程序隐私保护指引设置的公告为规范开发者的用户个人信息处理行为,保障用户的合法权益,自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者, 微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私接口。 开发者首先需确定小程序是否涉及处理用户个人信息,如涉及,则需配置用户隐私授权弹窗, 且仅有在平台《小程序用户隐私保护指引》中声明了所处理的用户个人信息,才可以调用平台提供的对应接口或组件。 三、设置《小程序用户隐私保护指引》 [图片] [图片] 四、填写《小程序用户隐私保护指引》[图片] 只有在指引中声明所处理的用户个人信息,才可以调用平台提供的对应接口或组件。若未声明,对应接口或组件将无法调用成功。 五、配置用户隐私授权弹窗 (触发方式:隐私API、组件) 1.了解隐私协议所需相关API 01.wx.requirePrivacyAuthorize() 用于模拟隐私接口调用 02.wx.openPrivacyContract() 用于打开下面封装好隐私弹框中的隐私协议 03.wx.onNeedPrivacyAuthorization() 用于监听用户是否吊起相关的隐私协议 04.wx.getPrivacySetting() 用于查询微信侧记录用户隐私协议状态 基本流程为:03 -----> 04 -----> 02 2.封装微信侧用户隐私协议状态 //获取微信侧同步的用户隐私协议开关 function getPrivacySetting(callback){ if(wx.getPrivacySetting){ wx.getPrivacySetting({ success: result => { console.log(result,"同步信息结果") // 返回结果为: result = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' } if (result.needAuthorization) { // 需要弹出隐私协议 console.log("获取微信储存的用户协议同步信息-用户未同意,请弹框处理") callback && callback(result); } else { console.log("获取微信储存的用户协议同步信息-用户已同意,请忽略") } }, fail: () => {}, complete: () => {} }) } } 3.封装隐私协议弹框放置全局组件中 全局组件-wxml 用户隐私保护提示 亲爱的用户,感谢您的信任!您使用本小程序提供的产品服务前应当阅读并同意 {{urlTitle}} 当您点击同意并开始使用产品服务时,即表示你已理解并同息该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法使用本小程序提供的相关产品及服务。 不同意 同意 全局组件-JS JS//引入相关模块 const { getPrivacySetting } = require("../utils/utils") //设置协议回调、关闭回调数组变量 let privacyHandler let privacyResolves = new Set() let closeOtherPagePopUpHooks = new Set() //注册并监听隐私API调用 if (wx.onNeedPrivacyAuthorization) { wx.onNeedPrivacyAuthorization(resolve => { //获取用户微信侧同步结果 getPrivacySetting(result=>{ console.log(result,"同步信息结果") // 返回结果为: result = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' } if (result.needAuthorization) { // 需要弹出隐私协议 if (typeof privacyHandler === 'function') privacyHandler(resolve,result) console.log("获取微信储存的用户协议同步信息-用户未同意,请弹框处理-页面") } }) }) } //处理关闭页面其他弹框 const closeOtherPagePopUp = (closePopUp) => { closeOtherPagePopUpHooks.forEach(hook => { if (closePopUp !== hook) { hook() } }) } Component({ options: { styleIsolation: 'shared', multipleSlots: true }, data: { urlTitle: "", privacyFlag: false, height: 0, }, lifetimes: { attached: function() { const closePopUp = () => { this.disPopUp() } privacyHandler = (resolve,result) => { this.setUrlTitle(result); console.log(result,"999999") privacyResolves.add(resolve) this.popUp() // 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗 closeOtherPagePopUp(closePopUp) } closeOtherPagePopUpHooks.add(closePopUp) this.closePopUp = closePopUp }, detached: function() { closeOtherPagePopUpHooks.delete(this.closePopUp) } }, methods: { //处理隐私弹框内展示的隐私协议标题 setUrlTitle(result){ this.setData({urlTitle:result.privacyContractName}) }, //用户同意相关协议 handleAgree(e) { this.disPopUp() // 这里演示了同时调用多个wx隐私接口时要如何处理:让隐私弹窗保持单例, 点击一次同意按钮即可让所有pending中的wx隐私接口继续执行 (看page/index/index中的 wx.getClipboardData 和 wx.startCompass) privacyResolves.forEach(resolve => { resolve({ event: 'agree', buttonId: 'agree-btn' }) }) privacyResolves.clear() this.triggerEvent('handleAgree', {result:true}); }, //用户拒绝相关协议 handleDisagree(e) { this.disPopUp() privacyResolves.forEach(resolve => { resolve({ event: 'disagree', }) }) privacyResolves.clear() this.triggerEvent('handleAgree', {result:true}); }, //打开隐私弹框 popUp() { if (this.data.privacyFlag === false) { this.setData({ privacyFlag: true }) } }, //关闭隐私弹框 disPopUp() { if (this.data.privacyFlag === true) { this.setData({ privacyFlag: false }) } }, //打开微信提供的小程序侧隐私协议 openPrivacyContract() { wx.openPrivacyContract({ success: res => { console.log('openPrivacyContract success') }, fail: res => { console.error('openPrivacyContract fail', res) } }) }, checkPrivacyStatus() { let that = this; getPrivacySetting(result=>{ if (result.needAuthorization) { that.setUrlTitle(result); that.popUp(); } else { console.log("微信侧已记录用户同意"); } }) } } }) 父组件监听全局隐私弹框时间回调 父组件-wxml 父组件-JS //隐私协议弹框按钮回调 handleAgree(event){ let that = this; console.log(event); let {result} = event.detail; // result 根据用户选择可处理后续相关逻辑 true 用户同意相关隐私 例如:因昵称组件弹出的框 为true之后就可将昵称组件设置为聚焦状态 false 用户拒绝 例如:音视频组件 用户拒绝之后可返回上级页面、继续弹框进行处理等 }, 4.app.json中引入全局组件:"privacy-popup": "/components/privacyPopup" 5.全局使用(隐私弹框) 全局隐私弹框相关代码如下: 首页wxml引入组件 首页onReady时触发检测隐私弹框逻辑 that.selectComponent("#privacyPop") && that.selectComponent("#privacyPop").checkPrivacyStatus(); 6.按需使用(隐私弹框)进入单个隐私页面时优先检测(手机号授权API触发隐私弹框) 6-1.1.引入全局组件到手机号授权页面: 6-1.2.页面onReady的时候开始检测:that.selectComponent("#privacyPop") && that.selectComponent("#privacyPop").checkPrivacyStatus(); 6-2.1.在用户点击按钮即将吊起隐私弹框时使用如下代码: getPrivacySetting(result=>{ if (result.needAuthorization) { // 需要弹出隐私协议 that.selectComponent("#privacyPop") && that.selectComponent("#privacyPop").setUrlTitle(result); console.log("获取微信储存的用户协议同步信息-用户未同意,请弹框处理") } else { console.log("获取微信储存的用户协议同步信息-用户已同意,请忽略") //走隐私允许之后的逻辑 } }) 六、清空历史同步状态 1.微信下拉---最近---最近使用的小程序 2.开发工具---清除模拟器缓存---清除全部数据/授权数据 七、常见错误说明{ "errMsg": "A:fail api scope is not declared in the privacy agreement", "errno": 112 } 使用到了 A 隐私接口,但是开发者未在[mp后台-设置-服务内容声明-用户隐私保护指引]中声明收集 A 接口对应的隐私类型。还有个114的忘记统计是啥原因了(希望官方尽快能把错误码及对应的原因贴出来)
2023-10-12 - [有点炫]自定义navigate+分包+自定义tabbar
自定义navigate+分包+自定义tabbar,有需要的可以拿去用用,可能会存在一些问题,根据自己的业务改改吧 大家也可以多多交流 代码片段:在这里 {"version":"1.1.5","update":[{"title":"修复 [复制代码片段提示] 无法使用的问题","date":"2020-06-15 09:20","imgs":[]}]} 更新日志: 2019-11-25 自定义navigate 也可以调用wx.showNavigationBarLoading 和 wx.hideNavigationBarLoading 2019-11-25 页面滚动条显示在自定义navigate 和 自定义tabbar上面的问题(点击“体验custom Tabbar” [图片] [图片] 其他demo: 云开发之微信支付:代码片段
2020-06-15 - 【12.21更新】微信小商店常见问题汇总
一、小商店是什么 1.小商店是什么? 微信小商店是小程序团队提供的一项新能力,无需开发、免费开店,帮助商家快速生成卖货小程序。小商店将降低商家在微信经营和卖货的门槛,让更多中小微企业和个体创业者可以低门槛的进入小程序生态尝试经营,开展电商业务。 2.小商店有几种类型? 小商店有四种类型: (1)企业/个体店 企业营业执照类型为:有限责任公司、股份有限公司、合伙企业、个人独资企业等。 个体营业执照类型为:个体工商户 (2)个人店 按电商法规定无须进行市场主体登记的个人主体。 (3)事业单位 是国家为了社会公益目的,利用国有资产设立的,从事教育、科技、文化、卫生等活动的社会服务组织,如旅游、报社、杂志社、学校等机构。 (4)其他组织 不属于个体户、企业、政府/事业单位的组织机构,如民办非企业、社会团体、基金会、合作社等组织。 3.“企业/个体店/事业单位/其他组织”与“个人店”有什么区别? (1)功能差异 目前企业店功能更加完善,支持直播、优惠券、数据中心等功能,个人店的功能也在同步完善中,敬请期待。 (2)收款限额 个人店正常日收款上限额度为10万,若交易良好则自动提升至20-30万/日,若交易异常则自动下降至5万以下/日。信用卡单日收款上限不超过1千,信用卡单月收款不超过1万。 二、如何开通一个小商店 1.开通流程包括哪些?需要准备什么材料? (1)搜索“小商店助手”小程序,点击“免费开店”,选择开店类型 (2)企业/个体/事业单位/其他组织店 pc登录网址: https://shop.weixin.qq.com/ https://mp.weixin.qq.com/ 扫码登录小商店,完成开店任务(共四步),即可卖货经营 -经营信息填写:营业执照(营业执照照片并填写相关信息)/事业单位法人证书(证件照片并填写相关信息)/相关登记证书(证件照片并填写相关信息)、经营者/法人信息(身份证正反面照片)、超级管理员信息(姓名、身份证号、手机、邮箱) -验证账户:法人扫描二维码验证/小额打款验证,两种方式任选其一即可 -基础信息填写:小商店头像、名称、店铺简介;品牌与类目信息(如有品牌,提供商标注册证相关信息) -签约开张:用超级管理员的微信扫描二维码即可完成签约 (2)个人店 -完善经营者信息:身份证正反面照片 -签约开张/协议签署 2.没有营业执照可以开通小商店吗? 如果没有营业执照,可以开通个人小商店,请搜索“小商店助手”小程序,点击“我要开店”,选择开店类型“个人”。 3.开通小商店有数量限制吗? (1)企业/个体/事业单位/其他组织店:一个微信号能申请3个“企业”,“个体”,”事业单位“和”其他组织“主体的小商店。 (2)个人店:一个微信号仅能申请1个“个人”主体的微信小商店。 4.开店后还可以变更店铺类型吗?从企业店改为个人店? 目前暂不支持变更店铺类型,如果需要开设其他类型的店铺,需重新申请。 三、如何登录小商店 1.小商店怎么登录? (1)企业/个体/事业单位/其他组织店: pc端登录网址: https://shop.weixin.qq.com/ https://mp.weixin.qq.com/ 用微信扫描二维码,在移动端选择对应小商店,即可跳转小商店后台。 (2)个人店:搜索“小商店助手”小程序,点击“进入我的店” 2.可以支持手机登录小商店管理后台吗? 已实现双端互通,个人店和非个人店均支持网页端、移动端登陆及管理。 3.谁可以扫码登录小商店? 注册小商店的微信号、超级管理员、添加的其他管理人员。 四、开店任务常见问题 (一)主体信息 1.营业执照/事业单位法人证书/相关登记证书信息审核不通过怎么办? 请根据营业执照/事业单位法人证书/相关登记证书驳回原因,仔细核对填写的相关信息是否准确。保证:营业执照/事业单位法人证书/相关登记证书证书未过期、清晰可见、如有二维码,尽量保证二维码可扫描。如果核对之后未发现错误,请至小商店后台,点击联系客服,我们将尽快跟进排查。 2.普通营业执照/事业单位法人证书/相关登记证书为什么要提交组织机构代码证? 个体工商户的工商营业执照和2015年10月1日前企业申请的工商营业执照及事业单位法人证书/其他组织相关登记证书,不包含组织机构代码信息,为非三证合一类营业执照/证书,因此商家提交该类证件时需要补充组织机构代码证。参考图例: https://developers.weixin.qq.com/miniprogram/product/mini-store/yingyezhizhao/putong.html 3.商户简称怎么填? 商户简称会在支付完成页向买家展示,填写商户名称即可。个体工商户,若营业执照上商户名称为空或为“无”,填写“个体工商户+经营者姓名”即可。 (二)超级管理员信息 1.超级管理员要填谁? 超级管理员信息需要填写注册微信号时的身份信息。 2.超级管理员可以更换吗? 小商店后台暂时不支持更换超级管理员。 3.填写超级管理员的时候要注意什么? 填写超级管理员信息时,务必注意填写真实姓名、身份证号,否则无法完成校验。 4.小商店可以多人管理吗?怎么进行多人管理? 企业/个体/事业单位/其他组织店支持多人管理(个人店暂不支持)。在“店铺-成员管理”中,添加成员即可,可以添加不同岗位,设置岗位权限。 (三)验证账户 1.怎么验证账户? 验证账户有两种方法,任选其一即可。 (1)法人验证:使用法人微信号扫描二维码即可验证成功。 (2)汇款验证:根据页面提示小额打款至指定账户,验证成功后,打款金额会原路退回。 2.验证账户有有效期吗? 若30天内一直未完成验证,将自动驳回申请单。若未超过30天,申请单被审核驳回,可再次提交申请单,完成账户验证流程。 (四)基础信息填写 1.店铺名称可不可以重名? 小商店不会出现店铺同名的情况,以下几点请各位商家注意: (1)小商店是小程序的一种类型,所以小商店不能和现有小程序同名,即使是同一主体也暂不支持。 (2)如果小商店和现有公众号同名,需保证二者是同一主体。 2.店铺名称、头像、简称、介绍可以修改吗? 小商店的名称和头像都可以修改。 个人店请至移动端店铺后台,点击“我-店铺信息” 企业店请至pc端后台,点击“店铺管理-基础信息” 修改次数限制如下: (1)店铺名称:企业/个体每年5次,个人每年3次 (2)店铺头像:企业/个体/个人每年5次 (3)店铺简称:企业/个体每年2次,个人每年3次 (4)店铺介绍:企业/个体/个人每月5次 3.店铺名称补充材料是什么? 当店铺名称命中一些品牌、旗舰店保护词之后,需要提交相关资质材料,请根据页面提示上传相应材料。 (五)品牌申请 1.如何申请品牌? 开店任务中可以申请品牌,需要依照页面提示上传相应资质。 开店任务完成后,在“店铺-品牌与类目”模块中,可以申请新品牌。 2.品牌有哪几种类型?申请不同类型的品牌需要什么资质? 品牌分为三种类型:自有品牌、代理品牌、无品牌。不同类型品牌需要不同的资质,详细规则可以点击链接查看。 自有品牌:https://developers.weixin.qq.com/miniprogram/product/mini-store/pinpai/ziyou.html 代理品牌:https://developers.weixin.qq.com/miniprogram/product/mini-store/pinpai/daili.html 3.如果是自有品牌,但商标主体和小商店主体不一致怎么办? 如果属于以下情况,我们支持提交相关证明材料。详情请点击链接至(开通品牌常见问题)查看。 https://developers.weixin.qq.com/miniprogram/product/mini-store/#三、微信小商店品牌开通规则 五、在小商店可以卖什么 (一)开放类目范围 小商店共开放超过2000个类目,一级类目包括:宠物生活、厨具、家用电器、手机通讯、数码、电脑&办公、服饰内衣、鞋靴、个人护理、母婴、美妆护肤、家纺、家居日用、家具、家庭清洁&纸品、家装建材、工业品、汽车用品、玩具乐器、运动户外、箱包皮具、酒类、食品饮料、钟表、农资园艺、生鲜、二手、生活服务、图书、艺术品、教育培训 详细类目开放范围请点击链接查看: 非个人主体店:https://developers.weixin.qq.com/doc/ministore/minishopspecification/leimuzizhi/qiye.html 个人店:https://developers.weixin.qq.com/doc/ministore/minishopspecification/leimuzizhi/geren.html 为什么我的类目列表里没有xx类目? 小商店部分类目需要资质,不会直接显示在“新增商品”的类目列表里,需要到“店铺-品牌与类目”模块申请所需类目,并上传相应资质。 (二)类目资质要求 哪些类目需要资质?这些资质有示例吗? 小商店部分类目需要资质,当你在“新增商品”过程中,发现没有某个类目时,可以到“品牌与类目”模块申请类目,如果选择了需要资质的类目,页面会提示上传相应资质。 整体类目及商品资质如下,请点击链接查看,具体资质证照可以点击跳转查看示例 非个人主体店类目资质: https://developers.weixin.qq.com/doc/ministore/minishopspecification/leimuzizhi/qiyeleimu.html 非个人主体店商品资质: https://developers.weixin.qq.com/doc/ministore/minishopspecification/leimuzizhi/qiyeshangpin.html 个人店商品资质: https://developers.weixin.qq.com/doc/ministore/minishopspecification/leimuzizhi/gerenshangpin.html (三)类目/商品审核 1.我的商品还没通过审核怎么办? 2.我提交了资质,对审核结果有异议怎么办? 3.希望开设更多类目,对现有类目的资质要求有异议怎么办? 如果你出现以上情况,可以通过后台的联系客服途径,反馈问题,客服人员会尽快跟进处理。 六、有什么营销功能 (一)怎样让人看到我的小商店? 小商店曝光渠道:任务栏、发现入口、客服消息、小程序码、搜索、对话分享、群分享、APP分享、模板消息、公众号Profile页/文章插入、LBS广告、微信广告 商品曝光渠道:对话分享、群分享、APP分享、小程序互跳、公众号自定义菜单/文章插入、二维码、模板消息 [图片] (二)优惠券 1.优惠券有哪几种类型? 目前小商店支持的优惠券功能,包括店铺优惠券和指定商品优惠券,每一种类型的优惠券都会分为直减券、满减券和折扣券。所有券支持两种发放渠道,小商店内推广发放和自定义渠道推广发放。 2.店铺内推广发放和自定义渠道发放的区别? (1) 小商店内推广发放: 商家在管理后台制作优惠券并生效后,优惠券会自动出现在小商店的各个位置,如小商店首页、商品详情页出现优惠的特殊样式,下单页也会出现简易的凑单提示。 商家可设置“仅该商品可以使用的优惠券”,在视觉样式上提升该商品的下单转化率,或设置一些合理的梯度满减优惠券,在给用户更多优惠的同时提高单用户单次访问的购买订单消费总额。 (2)渠道优惠券: 当商家开通小商店并将商品分发给其他人进行售卖时,可配置专属优惠券,当其他人员售卖商品时,商家在后台的优惠券详情明窗看到专属优惠券具体产生了多少次购买,了解该人员带来的订单量。 3.优惠券创建创建之后可以取消吗? 商家发布优惠券时可设置有效期,生效后的优惠券,用户已领取,则暂时不支持作废用户已领的优惠券。 (三)公众号 1.小商店怎么关联公众号? 登陆公众号后台-小程序管理-关联小程序搜索-输入小商店名称 2.小商店的带货商品链接怎么插入公众号推广? 带货商品链接支持插入公众号文章和自定义菜单进行推广,具体步骤请查看下方链接: https://developers.weixin.qq.com/community/business/doc/0000e265b90e00615a2b7c6c75b00d (四)带货 1.如何查看佣金的打款时间? 带货佣金需要等待对应平台打款后,才能打款给商家。 可点击「带货收入」查看佣金,进入「待打款佣金」页面,显示「预估X月20日可打款」栏有金额显示,如果填写的银行卡信息正确,到日期后就会进行打款。一般下单到最终收到佣金需要45-60天; 显示「平台未打款」栏,即对应第三方平台并未打款至小商店,可查看到预计的佣金款项。 更多小商店带货能力结算规则,请查看: https://developers.weixin.qq.com/community/business/doc/00064631af05c0783d8b3e9955b00d 2.商品接入范围? 鉴于微信小商店对带货平台、带货商品的资质有严格的审核要求,目前链接搜索仅支持京东、拼多多、有赞的符合小商店售卖规定的商品,其它平台暂未支持;其他平台(包括唯品会和当当)上仅支持部分已经进入商品库的商品。 3.带货成功后需要我联系供应商发货吗? 不需要。只需负责带货,生成订单后,供应商主动发货,售后问题由该带货商品的平台、供应商负责。 4.带货商品也可以在视频号售卖吗? 是的,带货商品上架小商店之后也可以在视频号直播的时候进行选择添加并售卖。 5.怎么带货? 小商店带货指引详情请见 https://developers.weixin.qq.com/community/business/doc/0000a210138b70c91c2bc32f35180d 更多关于小商店带货能力推广问题,请查看: https://developers.weixin.qq.com/community/business/doc/00084c90ecc3b0983a8b23c8156c0d 6.企业店支持带货吗? 现阶段暂时只支持个人小商店带货,企业店带货能力敬请期待。 7.为什么带货订单里看到的佣金,和我分享的时候显示的不一样? 在带货的时候看到的佣金为预估佣金,由于买家下单时可能会使用京豆、京东余额等虚拟货币,导致记佣金额减少,进而导致订单收益变少。 8.订单取消、订单已完成、平台未打款,分别是什么意思?哪些情况下我可以收到打款? 订单取消,是指因为用户主动取消订单、或第三方平台审核失败等原因,导致订单失效无法记佣。这种情况下无法收到打款。 订单已完成是指买家已经收到货并确认,但第三方平台还没有和腾讯结算,还不能收到打款。 平台未打款,是指京东、拼多多等第三方平台还没有和腾讯结算,还不能收到打款。 9.买家收货后,我什么时候可以收到打款? 买家收货并且没有发生退款及其他售后纠纷等行为的情况下,第三方电商平台会将该笔订单标记为审核通过的订单。腾讯公司会在每个月20号左右和第三方平台对当月审核通过的订单进行结算,并在次月20号左右完成打款。通常这一周期为30~60天。 更多关于小商店带货能力收入管理问题,请查看: https://developers.weixin.qq.com/community/business/doc/0002aea8e94a58f83b8be95ea5600d (五)导购分销 导购分销已开放给所有企业/个体店(个人店不支持) 1.导购被添加后,无法登录手机端后台管理?商家如何正确添加导购? 如果「店铺管理」中没有添加导购管理员,只在「导购分销」中添加导购,则导购是无法成功登陆后台导购管理体系的。 (1)方法一:商家需先在「店铺管理」-「成员管理」中添加导购管理员,商家或已被成功添加的导购管理员进入「营销中心」-「导购分销」添加导购分销员。 注:添加导购管理员和导购分销员,需在小商店后台由管理员主动添加,暂不支持增加自主申请成为导购。 (2)方法二:需要该导购删除「小商店助手」小程序后,重启该小程序。 2.导购如何推广带货商品? (1)导购分销员可通过生成「海报」和「复制链接」的推广方式,引导客户进入小商店购买,链接可挂在公众号或其他小程序中使用(链接分享至视频号不支持结算分成)。 (2)现已支持通过小程序转发记佣。导购通过在推广商品中点击进入程序,直接分享该小程序商品页面,也算该导购的。 3.导购员分享商品且交易完成,但后台没有给导购员提成? (1)情况一:该导购进行了无效推广 若客户在导购A的有效客户关系中,通过导购B推广的链接购买商品,该客户直接从B的链接购买,则计算给B。 (2)情况二:该商品被设置的结算规则有误 需确认该商品被设置的结算规则,有以下两种结算方式。 交易完成后结算——客户确认收货后,即订单完成后,该订单的相应提出才能结算给导购。 无法发起退款后结算——用户无法发起退货退款后才能结算。 (3)情况三:被同店其他导购抢客 顾客A通过导购A分享的商品海报或链接进店后,无立即购买到商品,又通过同一家店的导购B海报或链接扫码进店,购买商品,则会形成被同店导购B抢客的情况,如不在有效客户关系内购买,导购员无法获得提成。 4.商家如何管理业绩? (1)导购等级实时升降,不再与提成结算时间一致,而是在订单交易后即提升相应的业绩,相应的订单发生退款时,也会减少业绩。 (2)「营销中心」-「导购分销」中分销的佣金结算能力已支持自动结算给导购分销员。 (3)如有线下结算需要,后台支持导购业绩批量导出,方便对账。 更多导购分销疑问,请点击链接查看 https://developers.weixin.qq.com/community/business/doc/000cc6f0030558c19f2be29365100d (六)店铺直播 1.怎么开通直播功能? 成功开通的小商店(企业/个体店)自带直播能力,商家只需同时满足已开张、且商品库中有成功发布的商品,后台的直播页面将会自动开通直播功能,商家点击管理直播跳转到直播管理后台,可创建直播间、指定主播、设定直播开播时间。 Tips:建议商家在直播间选货之前,先在小商店上传好商品,直播间选品时会自动同步小商店已经上传并且发布成功的商品,提高直播的效率。 2.怎么让用户看到商家直播? 商家可直接以直播间小程序码的形式进行分享,也可以把商家的小商店主动分享给用户,凡是设定了直播的商家,小商店主页都会看到直播入口,用户点击可进入直播间观看或订阅直播。 在直播将开始时,直播间会自动给预约的用户发消息提醒,为商户提供定时召回用户的功能。直播间还会完整展示主播推荐的商品、讲解和抽奖能力,并设有直播浮窗的功能,保证用户边看边买的流畅体验。 3.店铺直播与视频号直播的区别? (1)店铺直播是小商店自带的微信小程序直播,帮助商家在自有小程序(小商店)中实现直播互动与商品销售闭环,提高转化率。店铺直播优势为低门槛、快运营,一键分享、一键订阅。 更多小程序直播信息可查看以下链接:https://developers.weixin.qq.com/community/business/doc/000e28dbfd8a8082282a60d6f5b80d (2)视频号直播作为视频号的重要能力之一,现已与微信小商店打通,商家或导购可以在直播时添加在架商品,进行引流、带货。视频号优势在于可以快速突破熟人圈,拓展更广阔的私域流量。 (七)视频号 1.视频号怎么关联小商店? 视频号关联/取消关联小商店的具体步骤请查看下方链接: https://developers.weixin.qq.com/community/business/doc/000ce0f5014a186f871bf21b459c0d?page=2#comment-list 2.视频号直播怎么带货? 视频号直播可支持带货小商店在架商品,视频号关联小商店后,即可在视频号添加带货商品,具体步骤请查看以下链接: https://developers.weixin.qq.com/community/business/doc/000ce8f5688b4873a72b2d6c15ac0d (八)后续营销能力规划 小商店是一种卖货小程序,未来,用户可以从下方图片中展示的场景,比如任务栏、会话框、扫码、搜索、分享等进入小商店。小商店将持续与微信生态的场景实现更紧密地结合,为商家提供更多连接用户的方式。 七、服务提升 1.运费险(卖家版)保障什么?保障周期是多久? 运费险是帮助买家适当减少退换货运费损失的一种服务,卖家为买家购买运费险,当买家退换货的时候,保险公司会向用户赔偿部分运费。 运费险从卖家发货开始生效,到买家确认收货/到期系统自动确认收货为止,总时长不超过90天。 2.如果同一笔订单,发生多次退换货行为,商家需要多次投保吗? 一笔订单对应一笔运费险,因此商家只需购买一次运费险。 3.运费险理赔金额标准怎么定? 理赔金额是根据用户的收货地址和商家在系统里预留的退货地址的距离进行首公斤价格赔付的,具体以实际赔付金额为准。 更多运费险疑问,请点击查看 https://developers.weixin.qq.com/community/business/doc/0006a651408b80b12dda778cd5180d 八、订单物流 1.订单是否支持改价? 商家可修改「待付款订单」的价格(目前仅支持调低价格)、减免运费。 用户拍下商品但未付款前,商家可以在订单管理中找到对应订单并修改订单价格(可直接输入修改后的价格或折扣,系统会自动计算)及选择是否减免运费,设置完成后点击确定; 用户微信上会收到订单价格已修改的服务通知,点击后可按修改后的价格进行付款; 2.如何确定收货? 目前统一的确认收货规则为:用户可手动对订单确认收货,若不手动确认收货,在商家发货15天后系统将自动确认收货。若订单中有商品发生了退款/售后,订单自动确认收货的倒计时将停止。 3.小商店支持的物流方式有哪些? 目前仅支持快递物流配送,上门自提、同城配送、无需物流模板正在开发中,敬请期待。 4.商家快递单号填写错误后,是否影响正常收货流程? 只要快递顺利到达买家手中,就不会影响正常收货。修改物流单号的功能正在开发中,敬请期待。 九、怎么结算 1.小商店结算账户是什么? 开通小商店,将自动开通一个全新的微信支付商户号。该商户号暂时不支持更换。商家可以直接在小商店后台进行经营对账,客户的每一笔货款都会直接到达商家自己的微信支付商户号账号中。 2.什么时候可以提现? 到账的款项无特殊情况均为待结算状态,商家将在客户确认收货后,可对该笔款项进行提现至银行账户操作。 3.收款提现多长时间到账? 收款提现后,无特殊情况下,24h内到账。 4.收款可以提现到私人账户吗? 如果是企业,会自动提现至对公账户,不支持提现到私人账户; 如果是个体工商户,可以选择对公或者对私账户; 个人主体的直接结算到绑定的对私银行账户。 5.小商店的结算费率0.6%指的是? 微信支付收取每笔订单实际销售金额的千分之六; 小商店不收取手续费,免费开店、免费提现至银行账户。 十、客服 1.商家客服添加多名客服后,是否只有开通小商店的微信收到顾客咨询信息? 添加多名客服后,只要绑定客服帐号的微信都可以收到顾客的资讯信息。 2.商家客服可以手机接收到消息吗? 企业/个体店,在小商店后台-客服与售后模块中,点击添加,可以绑定客服帐号,绑定后,扫描下方二维码,即可在移动端小程序客服进行客服沟通。 客服消息指南如下:https://developers.weixin.qq.com/miniprogram/introduction/custom.html#网页版客服工具 [图片] 十一、服务商 1.小商店支持服务商吗? 毋庸置疑,我们需要服务商一起参与,小商店将开放店铺、商品、订单、物流、客服等一系列API接口供第三方介入,完善小商店能力。未来,小商店会开放接入ERP/CRM、智能客服、店铺装修、营销等经营工具,和第三方合作伙伴共同帮助商家经营成长。 2.小商店开放接口在哪里? 微信官方文档-小商店板块中,已上线小商店开放组件介绍,请点击查看:https://developers.weixin.qq.com/doc/ministore/minishopopencomponent/Introduction.html
2021-02-05 - [干货]新一轮用户授权改版来了,肝起来吧!
废话不多说,直奔主题。感谢TX团队赞助,不然没机会通宵!以下思路,仅供参考。 公告开山 [图片] 改造原有授权逻辑 原来通过getUserProfile接口拿到userinfo数据,仍然不变。仅对返回结果加一次判断; [代码]wx.getUserProfile && wx.getUserProfile({ lang: 'zh_CN', desc: "desc", success: ({ userInfo }) => { if (userInfo?.nickName === '微信用户') { // 跳转至新建的资料修改页面 return } // 同步用户资料信息 api.updateUserinfo(userInfo) }, fail: (error) => { // 跳转至新建的资料修改页面 } }) [代码] 资料修改页面 页面 此处需要注意的是, 头像组件有最低版本兼容要求。而昵称填写则可以忽略版本兼容性。此处不赘述昵称填写 兼容性处理 [代码]data: { supportAvatarInput: compareVersion(version, '2.21.2') >= 0, } [代码] [代码]<!-- 代码有省略,见下 --> <button wx:if="{{supportAvatarInput}}" open-type="chooseAvatar"></button> <button wx:else></button> [代码] 页面美化 由于官方没有直接提供头像选择效果的组件可供直接使用,而是以button的形式。因此需要我们自行处理,不过也很简单position + opacity即可; 先上效果图: [图片] [代码]<view class="__input-wrapper"> <image class="avatar" src="{{avatarUrl}}"></image> <button wx:if="{{supportAvatarInput}}" class="opacity-button" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar"></button> <button wx:else class="opacity-button" catchtap="handleChooseImage"></button> </view> [代码] [代码].__input-wrapper{ position: relative; top: 0; left: 0; } .__input-wrapper .avatar { width: 120rpx; height: 120rpx; border-radius: 50%; } .__input-wrapper .opacity-button{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 9; opacity: 0; padding: 0 !important; margin: 0 !important; } [代码] 到此,界面完工。接下来开始处理头像上传问题。 业务逻辑 先来处理头像上传组件本身的事件, 此处有个坑。官方的头像上传不支持裁剪,因此需要用到更新的cropImage这个API。 所以我们先来实现图片裁剪功能, 依然是注意兼容性。因为目前是从2.26.0才开始支持。 [代码] cropAvatar(url){ return new Promise((resolve, reject) => { try { if (wx.cropImage) { wx.cropImage({ src: url, cropScale: "1:1", success({ tempFilePath }) { if (!tempFilePath) return reject(Error('处理失败,未获取到路径')) resolve(tempFilePath) }, fail(error) { reject(Error(error.errmsg || error.errMsg)) } }) return } // 低版本兼容 // 此处可弹窗提醒用户手动裁剪为1:1 if (wx.editImage) return wx.editImage({ src: url, success({ tempFilePath }) { if (!tempFilePath) return reject(Error('处理失败,未获取到路径')) resolve(tempFilePath) }, fail(error) { reject(Error(error.errmsg || error.errMsg)) } }) // 其他情况返回原url resolve(url) } catch (error) { reject(error) } }) } [代码] 考虑到用户上传的图片可能会很大。也可以继续设计一个压缩图片的方法。 此处又是一个坑,官方的compressImage API模拟器上会返回错误的tempFilePath方法(真机目前没有) [代码]compressImage(url){ return new Promise(async (resolve, reject) => { // 指定压缩为480px * 480px const COMPRESS_SIZE = 480 try { const { width, height } = await this.getImageInfo(url) const size = Math.ceil(Math.sqrt(width * height)) if (size <= COMPRESS_SIZE) throw Error(`当前图片尺寸为 ${width} * ${height} (${size}) , 已符合压缩规则,忽略压缩`) const quality = Math.ceil(COMPRESS_SIZE * 100 / size) if (!wx.compressImage) throw Error("当前基础库版本太低,请升级微信客户端") wx.showLoading({ title: '压缩中', }) wx.compressImage({ src: url, quality: quality, // 以下高版本支持,低版本仍考虑 quality compressedWidth: COMPRESS_SIZE, compressHeight: COMPRESS_SIZE, success({ tempFilePath }) { if (!tempFilePath) return reject(Error('处理失败,未获取到路径')) // 检查后缀是否存在, 应对模拟器返回错误的tempFilePath问题 if (!/^.*\.(.+)$/.test(tempFilePath)) return reject(Error('SDK错误,压缩路径不正确')) resolve(tempFilePath) }, fail(error) { reject(Error(error.errmsg || error.errMsg)) }, complete() { wx.hideLoading({}) } }) } catch (error) { reject(error) } }) } [代码] 到此准备工作已就绪。 新坑来袭 又一个坑, 此处通过头像上传的url并非和之前一样。这次的是个临时链接,不能直接存储至数据库使用。因此需要服务端提供头像上传的接口。前端调用wx.uploadFile API上传。 此处不赘述 处理头像组件的回调 [代码]async onChooseAvatar({ detail }) { let url = detail.avatarUrl // 裁剪 url = await this.cropAvatar(url) // 压缩 try { url = await this.compressImage(url) } catch (error) { console.error('头像压缩失败:', error) } try { // 此处是上传接口调用。 根据自己需要改造即可 const { avatarUrl } = await app.$http.post({ url: '/upload', header: { 'content-type': 'multipart/form-data' }, data: { name: 'picture', filePath: url, }, timeout: 30 * 1000, loading: '上传中' }) this.setData({ avatarUrl: avatarUrl }) app.$Toast("上传成功") } catch (error) { wx.showModal({ content: `${error.message || "上传失败,请稍后再试"}`, showCancel: false }) } } [代码] 别忘了还有个低版本的适配, 这个简单。 不过这个还是有低版本兼容处理 [代码]handleChooseImage() { try { let self = this if (wx.chooseMedia) { return wx.chooseMedia({ count: 1, mediaType: 'image', async success(res) { const tempFilePath = res?.tempFiles[0]?.tempFilePath if (!tempFilePath) return app.$Toast("选取失败,请稍后再试") // 此处复用之前的头像上传回调 await self.onChooseAvatar({ detail: { avatarUrl: tempFilePath } }) }, fail() { app.$Toast("头像修改失败 请稍后再试") } }) } wx.chooseImage({ count: 1, async success(res) { const tempFilePath = res?.tempFilePaths[0] if (!tempFilePath) return app.$Toast("选取失败,请稍后再试") await self.onChooseAvatar({ detail: { avatarUrl: tempFilePath } }) }, fail() { app.$Toast("头像修改失败 请稍后再试") } }) } catch (error) { app.$Toast("当前版本太低,建议您先升级微信客户端") } }, [代码] 总结 希望这是最后一次 低版本兼容性要注意, 狂放的小伙伴可以设置最低版本库,一劳永逸 头像和昵称组件,自带了安全识别功能。因此会比较慢,需要吐槽的是头像图片的鉴黄识别有点拉跨,经常误报。 如果你看到提示”当前头像不可用“之类的提示,不要担心是代码问题 图片裁剪API才出, 所以在此之前官方是没有考虑到的。吐血 官方其他的bug也该修修了,就比如compressImage里模拟器返回的路径 写的仓促,如有不对,请多指正! 一点小宣传 已经第一时间接入cropImage了,很香。 欢迎体验!! 附小程序码: [图片] 体验路径 : 我的 -> 左上角”设置“ -> 个人信息修改 大家还有什么想说的! 欢迎评论区交流
2023-02-13