- 如何快速应对商户号消费者投诉
前言: 商家有时候会遇到订单被消费者投诉的情况,当发生该情况时,商家需要高度重视并及时处理这些问题,否则会对自己商户号产生不良影响。 一、消费者投诉介绍 *相关介绍参照官方文档 https://pay.weixin.qq.com/wiki/doc/apiv3/download/交易投诉运营规范2.0.pdf (一)消费者投诉是什么? 1,概念 消费者投诉,是指用户对微信支付订单有异议,通过对订单的“投诉商家”功能,发起对订单商户的投诉留言。 2,商家查看投诉位置: 登陆商户平台https://pay.weixin.qq.com ——账户中心—— 消费者投诉查看用户投诉信息。 3,商家处理流程: 每天登录商户平台,及时处理用户投诉信息,和用户进行沟通解决,然后更新商户后台投诉状态。 [图片] (二)消费者投诉处理要求 1,首次回复用户时效要求: 商家最晚需在投诉单生成 1 天内回复用户投诉受理情况(如 3 月 20 日的投诉,商家需在 3 月 21 日 24 点前回复用户); 2,投诉处理沟通: 商家需要根据客诉解决情况,及时跟用户进行留言沟通、或通过用户授权的联系方式进行沟通解决用户问题; 3,投诉处理完成: 商家最晚需在投诉单生成 3 天内妥善处理完用户问题,并在平台标记“投诉处理完成”(如3 月 20 日的投诉,商家需要在 3 月 23 日 24 点前处理完结)。 (三)商家服务质量考核指标 [图片] (四)不及时处理投诉的影响 平台将根据商家服务质量各项指标进行综合评估,对服务指标较差的商户为保障用户体验,可能会采取相应限制措施,包括但不仅限于警告、限制新功能使用、在必要环节进行用户风险提示、限制部分权限功能等。 当其他用户购买商户产品时,可能会因支付警告或限制支付能力,而无法完成支付。 (五)官方规定的高压线行为 1,不得通过交易投诉系统恶意诱导、辱骂用户、散布非法信息等; 2,不得将用户授权联系方式做为他用,或对用户进行恶意骚扰。 二、快速应对消费者投诉方案设计 (一)常规应对 企业安排人员每天登录微信商户平台,查看是否有新的投诉信息; 一旦发现有新投诉信息,及时联络用户沟通,消除投诉。 (二)API接口对接监控 官方提供了关于消费者投诉的相关API接口,企业完全可以通过接口对接方式,将消费者投诉信息对接到自己的内部平台,在内部平台统一处理企业内部待办事项。 1,创建回调地址与处理投诉API https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter6_2_5.shtml 1)创建投诉通知回调地址 当用户产生新投诉且投诉状态已变更时,微信支付会通过回 调URL通知商户。 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_2.shtml 2)提交回复API 商户可通过调用此接口,提交回复内容。其中上传图片凭证需首先调用商户上传反馈图片接口,得到图片id,再将id填入请求。 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_14.shtml 3)商户上传反馈图片API 商户上传反馈图片的接口。 将媒体图片进行二进制转换,得到的媒体图片二进制内容,在请求body中上传此二进制内容。 媒体图片只支持jpg、png、bmp格式,文件大小不能超过2M。 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_10.shtml 4)反馈处理完成API 商户可通过调用此接口,反馈投诉单已处理完成。 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_15.shtml 2,主动查询投诉信息API 1)查询投诉单列表 商户可通过调用此接口,查询指定时间段的所有用户投诉信息,以分页输出查询结果。 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_11.shtml 2)查询投诉单详情 商户可通过调用此接口,查询指定投诉单的用户投诉详情,包含投诉内容、投诉关联订单、投诉人联系方式等信息。 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_13.shtml 3)查询投诉协商历史 商户可通过调用此接口,查询指定投诉的用户商户协商历史,以分页输出查询结果。 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_12.shtml (三)商家平台设计 1,接收投诉回调接口信息 对微信商户平台推送过来的信息,解析并存储到商家自身数据库。 如有必要,也可以直接短信或微信周知相关人员。 可以将商家多个项目的商户号投诉信息,都统一存储。 2,内部平台展示 商家内部平台的运维人员,关注是否有新商户投诉发生。 在商户消费者投诉一览页面,查看具体的投诉信息。 可以考虑在内部平台调用官方API直接提交回复,处理投诉; 也可以考虑去官方商户号后台处理投诉。 画一个简易流程图: [图片] 再放一个内部平台页面示例图: (此处应放一张内部平台页面设计图,偷懒用官方页面截图了) [图片] [图片] 感谢阅读!
2021-04-29 - 一文教你如何更优雅的处理微信支付商户订单投诉?
在国内做产品涉及使用微信支付商户收款时,难免会遇到一些消费者对支付订单发起投诉,商户如果处理不当会导致商户号出现被延长收款结算周期、限制收款能力、调整交易额度或限制提现等处罚,严重的会关闭商户主体下商户全部支付权限。 那么商户该如何正确处理消费者投诉,降低各项投诉指标呢?一些简单实用的小技巧解除你的烦恼。 微信支付对于消费者投诉处理时效要求: 1)商户最晚需在投诉单生成1天内回复用户投诉受理情况(如9月20日的投诉,商户需在9月21日24点前回复用户) 2)商户最晚需在投诉单生成3天内处理完用户问题,并在商户平台标记“投诉处理完成”(如9月20日的投诉,商户需要在9月23日24点前处理完结) 如何判断一笔投诉单属于已解决?对与投诉单微信支付的认可的处理完成标准如下: ①订单原路全额退款 ②用户主动在投诉入口回复“撤诉” ③商户通过投诉交互功能协商,确认投诉已协商达成一致,点击处理完成,用户点击“已解决”且用户不再重复投诉。 一些处理小技巧: 1)在产品中增加明显的“联系客服”入口,一般用户可以联系到客服的情况下,一般不会优先去投诉支付订单,可以有效降低商户号的客诉率 2)接入微信支付商户的“消费者投诉”接口,实时获取投诉通知,通过类似企业微信机器人能力,让指定人员可以实时接到客户投诉信息,及时处理客户投诉;针对一些投诉即将到达72h的投诉单对指定人员进行多次推送,以免出现投诉单出现超时未处理的情况,微信支付考核商户投诉处理三大指标之一的“及时处理率”就是近30天(T-33天到T-4天)内发起的投诉单,在首次投诉发起后72h内处理完成的比例。 3)在投诉单对用户进行回复后,不要直接去点击“处理完成”,当商家点击“处理完成”后,用户是无法再进行直接回复的,会发起二次投诉,标记”投诉处理完成"前是需要已完成处理用户问题的,此类操作会导致“重复投诉率”大幅度提升,不少商户都在此处踩坑。建议申请结单前确认是否已经与消费者妥善协商处理,针对重复投诉的商户需要关注并及时处理,如重复投诉较多,需要及时排查原因并做优化。 4)当遇到一些恶意投诉/不合理的投诉,请按照商户公司自己的流程妥善处理,并将具体的处理情况和结果回复用户。如果确认无法满足用户的诉求且已经是最终处理方案,在连续发起结单3次后用户仍不满意可以先暂停处理,但这单会被记录服务不满意。如果是恶意投诉,微信侧针对重复投诉会提供10%的“容错率”,如果因为此类恶意投诉导致风控,提供相关凭证在商户后台进行申诉即可。 以下是在处理客诉过程中不可取的行为,会触及“平台消费者投诉管理规范”高压线: 🙅不要主观上先去给用户扣上一顶“恶意投诉”的帽子,搞清楚状况之前,不要妄下结论,主观是大忌,会影响你对客诉处理过程中的判断 🙅不要在沟通过程中(无论是在交易投诉系统还是电话或者商家自建客服系统等)去恶意诱导或辱骂用户 🙅不要去恶意骚扰用户,例如在交易投诉系统拿到用户手机号给他来个“轰炸机”套餐 🙅不要脱离平台去使用三方聊天工具进行沟通 有问题欢迎跟帖讨论,文明沟通,理性发言!!!
2023-09-19 - 微信-商户平台-特约商户, 有没有api 获取实时运营账户余额?
微信-商户平台-特约商户, 有没有api 获取实时运营账户余额, 相关文档有吗?
2022-12-05 - h5微信公众号,能授权获取用户手机号码?
h5微信公众号,能授权获取用户手机号码?
2020-10-26 - h5可以获取微信手机号吗?
在果宝妈咪公众号里看到可以获取我自己的手机号
2019-12-25 - 小程序webview组件,小程序和webview交互,小程序内联h5页面,小程序webview内网页实现微信支付
小程序支持webview以后,我们开发的好多h5页面,就可以直接在小程序里使用了,比如我们开发的微信商城,文章详情页,商品详情页,就可以开发一套,多处使用了。我们今天来讲一讲。在小程序的webview里实现微信支付功能。因为微信不允许在小程序的webview里直接调起微信支付。所以我们这节课就要涉及到小程序和webview的交互了。 老规矩先看效果。 因为这里涉及的东西比较多,录gif太多,没法上传,我就录制了一段视频出来。 https://v.qq.com/x/page/t0913iprnay.html 原理 先说下实现原理吧,实现原理就是我们在webview的h5页面里实现下单功能,然后点击支付按钮,我们点击支付按钮的时候会跳转到小程序页面,把订单号,订单总金额,传递到小程序里,然后小程序里使用订单号和订单金额去调起微信支付,实现付款,付款成功或者失败时都会有回调。我们再把对应的回调传递给webview,刷新webview里的订单和支付状态。 一,定义webview显示h5页面 关于webview的使用,我就不做讲解了,官方文档里写的很清楚,用起来也很简单。https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html [图片] webview很简单,就是用一个webview组件,显示我们的网页。 二,定义h5页面 我这里启动一个本地服务器,用来展示一个简单的h5页面。 [图片] 上图是我在浏览器里显示的效果。 接下来我们在小程序的webview里显示这个页面,也很简单,只需要把我们的src定义为我们的本地网页链接就可以了。 [图片] 这里有一点需要注意 因为我们是本地链接,我们需要到开发者工具里把这一项给勾选。 [图片] 三,来看下h5页面代码 [代码]<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>小程序内嵌webview</title> <style> .btn { font-size: 70px; color: red; } </style> </head> <body> <h1>我是webview里的h5页面</h1> <a id="desc" class="btn" onclick="jumpPay()">点击支付</a> <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script> <script> console.log(location.href); let payOk = getQueryVariable("payOk"); console.log("payOk", payOk) if(payOk){//支付成功 document.getElementById('desc').innerText="支持成功" document.getElementById('desc').style.color="green" }else{ document.getElementById('desc').innerText="点击支付" } //获取url里携带的参数 function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return (false); } function jumpPay() { let orderId = Date.now();//这里用当前时间戳做订单号(后面使用你自己真实的订单号) let money = 1;//订单总金额(单位分) let payData = {orderId: orderId, money: money}; let payDataStr = JSON.stringify(payData);//因为要吧参数传递给小程序,所以这里需要转为字符串 const url = `../wePay/wePay?payDataStr=${payDataStr}`; wx.miniProgram.navigateTo({ url: url }); // console.log("点击了去支付", url) console.log("点击了去支付") } </script> </body> </html> [代码] h5代码这里不做具体讲解,只简单说下。我们就是在点击支付按钮时,用当前时间戳做为订单号(因为订单号要保证唯一),然后传一个订单金额(单位分),这里节约起见,就传1分钱吧,花的是自己的钱,心疼。。。。 关键点说一下 1, 必须引入jweixin,才可以实现h5跳转小程序。 <script type=“text/javascript” src=“https://res.wx.qq.com/open/js/jweixin-1.3.2.js”></script> 2,跳转到小程序页面的方法 [代码]const url = `../wePay/wePay?payDataStr=${payDataStr}`; wx.miniProgram.navigateTo({ url: url }); [代码] 这里要和你小程序的页面保持一致。payDataStr是我们携带的参数 [图片] 四,小程序支付页 来看下我们的小程序支付页 [图片] 小程序支付页功能很简单,就是来接收我们h5传过订单号和订单金额。然后去调起微信支付,实现支付。支付成功和支付失败都有对应的回调。 [图片] 支付我们这里实用的小程序云开发来实现的支付,核心代码只有10行。由于支付不是本节的重点,所以这里不做具体讲解。感兴趣的同学可以去看我写的文章和我录的视频 小程序支付文章:https://www.jianshu.com/p/2b391df055a9 小程序支付视频:https://edu.csdn.net/course/play/25701/310742 下面把小程序接收参数和支付的完整代码贴出来给大家 [代码]Page({ //h5传过来的参数 onLoad: function(options) { console.log("webview传过来的参数", options) //字符串转对象 let payData = JSON.parse(options.payDataStr) console.log("orderId", payData.orderId) let that = this; wx.cloud.callFunction({ name: "pay", data: { orderId: payData.orderId, money: payData.money }, success(res) { console.log("获取成功", res) that.goPay(res.result); }, fail(err) { console.log("获取失败", err) } }) }, //微信支付 goPay(payData) { wx.requestPayment({ timeStamp: payData.timeStamp, nonceStr: payData.nonceStr, package: payData.package, signType: 'MD5', paySign: payData.paySign, success(res) { console.log("支付成功", res) //你可以在这里支付成功以后,再跳会webview页,并把支付成功状态传回去 wx.navigateTo({ url: '../webview/webview?payOk=true', }) }, fail(res) { console.log("支付失败", res) } }) } }) [代码] 代码里注释很清楚,这里有一点,就是我们支付成功后,需要告诉h5我们支付成功了,通知h5去刷新订单或者支付状态。 到这里我们就完整的实现了小程序webview展示h5页面,并且做到了h5和小程序的交互,实现了小程序webview的支付功能。 是不是很简单呢。 源码地址 1,关注“编程小石头”公号,回复“webview”即可获取源码 2,也可以到我github下载源码 https://github.com/qiushi123/xiaochengxu_demos [图片]
2019-08-15 - 小程序 webview 内嵌 h5 支付、路由跳转
一.介绍允许通过特定方式在小程序内通过 webview 内嵌 h5 页面,跳转以及支付等流程。 大致流程如下: 小程序创建 webview 加载 h5 url(https://3400.retail.../shop/index),后续跳转通过 url 后拼接的参数判断是否要跳转新的 webview 页面(参数符合规则并且此跳转点击使用了 CommonRouter(见在H5页面中集成的小程序跳转路由),否则只是普通的页面跳转),支付环节需要小程序创建一个原生页面用于支付中转; 二.集成1.创建 webview 容器用于承载 h5 页面(webview 组件用法参考官方组件) 创建一个 webview page,用于加载 h5 url,路径没有要求,只需在 步骤2>参数拼接 时带上路径即可。 2.参数拼接在 webview 加载 url 之前,需要在 url 后拼接上必要的参数,否则无法在新的 webview 打开下一次页面和在H5生成支付参数,在H5页面生成支付参数,请求后端生成支付参数接口要用小程序的appid,openid。webview 完整示例如下: Page({ data: { weburl:'' //加载的 url }, onLoad: function (options) { let url = decodeURIComponent(options.url) // url 拼接参数 this.dealUrl(url) }, dealUrl(url) { /** * miniProgramWebviewPath webview 的路径, 必传 解决采用小程序路由跳转H5嵌在多个小程序webview,跳回小程序webview * miniProgramPayPath 支付中转页路径,必传 * pageStackLength 页面路由栈个数,必传 解决小程序跳转10级问题,改用redirectTo跳转, * ec_appid、ec_openid 两个参数为支付所需参数,必传 */ let miniProgramWebviewPath = encodeURIComponent(`${this.route}?weburl=`) let miniProgramPayPath = "pages/h5payment/payMiddle/index" let pageStackLength = getCurrentPages().length let ec_appid = "wxb956c83845b9c0" let ec_openid = "oOVgY4xSj-LyuFifcaF_YDcRLU" const urlParams = {} urlParams.ec_openid = ec_openid urlParams.ec_appid = ec_appid urlParams.miniProgramWebviewPath = miniProgramWebviewPath urlParams.pageStackLength = pageStackLength urlParams.miniProgramPayPath = miniProgramPayPath let weburl = this.onInsterParamsInUrl(url, urlParams) this.setData({ weburl }) }, /** * 解析 url param */ onInsterParamsInUrl(url, params) { let tempUrl = '' let hasParams = url.indexOf('?') !== -1; tempUrl = Object.keys(params).reduce(function (before, after) { return before + after + '=' + params[after] + '&' }, tempUrl) tempUrl = tempUrl.substring(0, tempUrl.length - 1) return hasParams ? (url + '&' + tempUrl) : (url + '?' + tempUrl) } }) 3.支付中转页小程序内嵌 h5 的支付无法直接使用微信环境 sdk 支付,需要借助小程序的支付能力,所以小程序需要提供一个支付页面,接收在h5 生成的小程序支付参数,支付成功失败的回调url,发起小程序支付。小程序支付完成,需要跳转到结果回调页面,此页面需要由 webview 打开,所以在下面代码 PayDoneCallback 方法里的跳转路径对应 webview 的路径。 Page({ onLoad: function(options) { /** * 解析 options, options为H5传过来的参数(支付参数,回跳H5的URL) */ this.successUrl = options.successUrl this.failUrl = options.failUrl options.package = decodeURIComponent(options.package); options.paySign = decodeURIComponent(options.paySign); delete options.successUrl delete options.failUrl const { success, fail, cancel } = this.PayDoneCallback(this.successUrl, this.failUrl) this.payment({options, success, fail, cancel}) }, payment(opts) { const data = opts.options let hasComplete = false; wx.requestPayment({ ...data, success: function(res){ typeof opts.success =='function'&&opts.success() }, fail: function(res) { if (res.errMsg == 'requestPayment:fail cancel') { typeof opts.cancel =='function'&&opts.cancel(); hasComplete = true; return; } typeof opts.fail =='function'&&opts.fail() }, complete:function(res){ console.log(res) if (hasComplete) { hasComplete = false; }else if(res.errMsg =='requestPayment:fail cancel'||res.errMsg=="requestPayment:cancel") { typeof opts.cancel =='function'&&opts.cancel() } typeof opts.complete =='function' && opts.complete(res) } }) }, PayDoneCallback(successUrl, failUrl) { return { success(){ wx.redirectTo({ url: `/pages/h5payment/webview/webview?weburl=${successUrl}` }); }, fail(){ wx.redirectTo({ url: `/pages/h5payment/webview/webview?weburl=${failUrl}` }); }, cancel(){ wx.redirectTo({ url: `/pages/h5payment/webview/webview?weburl=${failUrl}` }); } } } })
2021-08-20 - [填坑手册]小程序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 - 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 - 微信允许一个app上的广告位点击跳转小程序这个行为么?
一个app,想要通过广告来变现,现在有广告主想投放广告,通过广告来跳转到广告主的小程序。微信允许这种行为么?
2019-08-13 - 小程序代码提审用户隐私保护协议修改指引
为规范开发者的用户个人信息处理行为,保障用户合法权益,小程序涉及处理用户个人信息的开发者,均需补充相应用户隐私保护指引;微信会根据小程序版本隐私接口调用情况展示必填项,开发者可自主勾选其他项目。 一、代码提审版本用户隐私保护指引填写入口: 管理—版本管理—提交代码审核—信息填写页面 [图片] 二、常见驳回场景: 隐私接口授权信息描述存在不明确、空白、填写无意义内容、乱填写、填写过于简洁含糊等情况; 示例①:小程序涉及多个隐私信息接口类型,信息类型填写存在不清晰且多个接口原因一致 [图片][图片] 示例②:小程序隐私信息接口类型存在填写无意义的内容,填写“为了收集信息而收集信息”并未清晰描述信息接口原因 [图片] 示例③:小程序隐私信息接口类型存在填写“不清楚、不知道”、“111、AAA、!@#¥”等乱填接口原因 [图片] 示例④:内容过于简洁或含糊,仅填写“使用、定位、开发”等内容,无法清晰了解到使用接口原因 [图片] 【整改建议】: 请清晰补充描述隐私接口调用情况,详细说明用户信息授权目的及信息收集场景,若暂不使用某些隐私接口,请根据隐私接口与对应的处理的信息关系指引,先删除代码中涉及隐私信息的接口,不支持填写“暂未使用、暂不使用、不收集、不获取信息”等内容,若隐私接口暂未使用,建议自查代码,删除隐私接口相关代码,后续需要使用再上架代码并填写具体的使用说明再提审。 三、正确示例 小程序隐私信息接口类型填写需如实地描述获取用户隐私信息的每个接口,具体用于小程序哪一个功能或页面的服务,每一个接口都需完整、规范填写,若目前未使用到的接口需到代码包中自查删除相关接口。 示例: [图片] 本文档为【小程序代码提审用户隐私保护协议修改指引】的常见驳回类型说明,如存在上述问题应及时调整、修整,避免后续存在上诉问题审核失败;若仍有其他疑惑,可以通过以下咨询入口反馈: 1、微信开放社区-交流专区-小程序发帖咨询-提出问题-运营相关问题 2、代码审核驳回站内信通知-客服咨询入口(客服咨询入口目前正在测试开放阶段,若无客服入口,建议前往开放社区发帖咨询)
2021-12-13 - 关于补充小程序、插件用户隐私保护指引说明
为进一步规范开发者的用户个人信息处理行为,保障用户合法权益,小程序、插件中涉及处理用户个人信息的开发者,无论是通过调用涉及用户个人信息的相关接口,还是自行收集用户个人信息,在提交代码版本前,均需补充相应用户隐私保护指引,具体如下: 一、 如小程序、插件有涉及收集用户个人信息(包含通过接口形式收集、通过非接口的形式收集)开发者需在【小程序管理后台-设置-功能设置-用户隐私保护指引】(如果是第三方开发者代开发小程序可通过接口进行配置)/【小程序管理后台-功能-小程序插件-基本设置-用户隐私保护说明】针对具体使用目的与用途进行说明填写,并补充完整隐私指引内容。 二、针对隐私指引说明内容,有如下要求: 1、隐私指引说明内容需与代码包内引用相关接口一致; 2、隐私指引说明内容文字表述需清晰、完整、告知用户处理相应信息的目的与用途; 3、在代码提审环节将对以上要求进行核验,如未满足相应要求,则无法通过代码版本审核,将影响开发者后续版本提审。 平台预计于11月1日对相关接口进行隐私指引说明审核,请开发者及时补充完善隐私指引说明,避免影响相关服务及用户体验。 微信团队 2021年10月29日
2023-09-26 - 企业微信的多个员工号,能不能生成的活码功能(客户从一个二维码进来随机平均分配给多个员工)
大多数企业,都有流量入口的需求,不管是线下还是线上,但由于企微对每个员工的承接外部顾客人数限制了数量 导致经常会因为单日添加客户数超标而受限,因此希望能有一个官方的活码工具,让平均分配客户到不同的员工号上。 或者直接实现,单个企微员工账号承接客户数不限制,也许也是个法子。
2021-02-09