- 微信小程序5个不常见,但很实用的配置。
一、微信小程序资料页客服按钮配置。 1、配置前: [图片] 2、配置后: [图片] 3、配置方法: [图片] [图片] 注意要点: ·有客户通过这个按钮咨询,客服微信会收到服务通知。但要切换成在线状态才能收到。 ·因咨询有时效性,尽量让客户加客服微信再继续深度沟通。 [图片] 二、微信小程序允许被搜索开关。 这个功能跟另一个“暂停服务设置”有点像,但搜索开关和暂停服务还是有很大区别。比如一些内部的管理小程序,内部会经常用到。但不希望被非相关人员搜索到。又或者要注销的小程序,也可以关闭搜索再注销。不然注销完成了,还是有搜索信息展示。 配置方法: 小程序后台 > 设置 > 功能设置 > 私隐设置 [图片] 三、微信小程序资料页关联小程序。 1、配置前: [图片] 2、配置后: [图片] 3、配置路径: 小程序后台 > 设置 > 功能设置 > 相关小程序 [图片] 四、微信小程序资料页关联公众号。 1、配置前: [图片] 2、配置后: [图片] 3、配置路径: 小程序后台 > 设置 > 功能设置 > 相关公众号 [图片] 五、微信小程序支付后关注公众号。 本来这一条应该放在第一位,但可惜去年因影响用户体验,2021年8月19日功能下线。 [图片] 为什么还把这条不能配置放进来呢?不是为了凑数,而是想提醒社区的每一位开发或运营不要滥用微信生态功能!自己就亲身经历了很多士多连锁,支付后就收到公众号推送的一大堆广告。 除了这5个微信小程序配置,还想知道哪个配置(非代码)?可以评论区回复。
2022-01-06 - 为什么要封装支付以及微信小程序支付的封装
为什么要封装支付 铭记一个原则,永远不要为了封装而封装。 在微信拉起支付的过程中,重复点击会多次拉起支付,通常我们会通过枷锁来控制用户点击多次触发。 但是此时如果差网环境下操作光是有枷锁是不够的,往往需要一段等待的loading来陪伴用户渡过这个无聊的等待过程。 如果我们多处都在使用支付,每个都写同样的枷锁loading,这个时候会把支付方法统一封装起来。 上面前言废话太多,直接上代码(供各位伟大的[代码]新生代农民工[代码]参考借鉴思路)[代码]import Taro from '@tarojs/taro' declare namespace Pay { interface WeChatPayOptin { timeStamp: string, nonceStr: string, package: string, signType: 'MD5' | 'HMAC-SHA256', paySign: string } interface LoadingOption { animation: boolean, title?: string } } /** * * @param option * 支付参数: * + timeStamp -时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间 * + nonceStr - 随机字符串,长度为32个字符以下 * + package - 统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=*** * + signType - 签名算法 * + paySign -签名,具体签名方案参见[小程序支付接口文档](https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3) * @param lodading * 使用 Taro.showLoading 非必选, 建议使用, 防止支付过程中进行其他操作, 如自定义拉起支付之前防止用户操作则忽略 * + animation - 必填 是否开启 * + title - 标题 可选 默认: '正在支付...' * @returns * @example * ```tsx * weChatPay({ * timeStamp: '', * nonceStr: '', * package: '', * signType: '', * paySign: '', * },{ animation: true }).then((res:any) => { * 支付成功处理 * }).catch((err:any) => { * 支付失败处理 * }) * ``` */ const weChatPay = (option: Pay.WeChatPayOptin, loading?: Pay.LoadingOption): Promise<any> => { if(loading?.animation) { Taro.showLoading({ title: loading?.title || '正在支付...', mask: true }) } return new Promise<void>((resolve, reject) => { Taro.requestPayment({ ...option, complete: () => { if(loading?.animation) Taro.hideLoading() }, success: (res: any) => { resolve(res) }, fail: (err: any) => { reject(err) } }) }) } export { weChatPay } [代码] 相信很多熟息ts的同学已经看明白了我的封装思路以及使用方法,当然注释中也注明了调用方法,写了这么多也不差这两句废话了下面介绍使用方法 在使用页面中导入方法 [代码]import { weChatPay } from '@/utils/pay' [代码] 调用方法 [代码]weChatPay({ timeStamp: '', nonceStr: '', package: '', signType: '', paySign: '', },{ animation: true }).then((res:any) => { //支付成功处理 }).catch((err:any) => { //支付失败处理 }) [代码] 对了这是笔者之前发文Taro3.0版本小程序模板里面的内容,算是业务讲解吧,同时预留了扩展其他支付方法的封装导出。
2021-08-24