uniapp-小程序发券插件-领券进入微信卡包

article/2025/9/12 8:01:39

这两天有个需求,在小程序领券,然后该优惠券进入微信卡包.
官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter5_3_1.shtml
1.在小程序配置app.json 文件中加入如下配置:

{"plugins": {"sendCoupon": {"version": "latest","provider": "wxf3f436ba9bd4be7b"}}
} 

2、在小程序页面中引入发券插件

{"usingComponents": {"send-coupon": "plugin://sendCoupon/send-coupon"}
} 

接下来上前端代码部分:

            <!-- 遮罩 --><view class="mask-coupon" v-if="showMask" @click="closeMask"><view class="wx-coupon"><view class="title">提示</view><view class="content">确认领取此优惠券?</view><!-- 小程序领券插件 --><send-coupon v-if='showWechatbool' @sendcoupon="getSendCoupon" @userconfirm="redirectuser":sign="sign" :send_coupon_params="send_coupon_params":send_coupon_merchant="send_coupon_merchant"><view class="get-btn">确认领取</view></send-coupon></view></view>
// 立即领取的按钮getCoupon: function(id, index, stockId) {let that = thislet list = that.couponsListlet q = [{out_request_no: '60002019189501000121',stock_id: stockId}]//  如果是需要放入卡包的券,走这个请求if (stockId) { // stockId 后端返回批次号getWechatCoupon(q).then(res => {that.sign = res.data.sign // 获取签名that.outRequestNo= res.data.outRequestNo // 获取随机数that.send_coupon_params = [{ // 发券插件的发券参数"stock_id": stockId, // 批次号"out_request_no": res.data.outRequestNo // 后读返回的随机数}]that.showMask = true // 打开弹窗that.showWechatbool = true // 打开 领取插件}).catch(err => {// console.log('err',err)})} else {//  如果不需要领入卡包  直接领进小程序getCouponReceive(id).then(function(res) {list[index].isUse = true// 后台埋点that.describeAction = '领取优惠券'that.toGetUserVisitadd()uni.showToast({title: '领取成功',icon: 'success',duration: 2000,})}).catch(function(err) {uni.showToast({title: err.msg || err.response.data.msg || err.response.data.message,icon: 'none',duration: 2000,})})}},
            // 小程序发券插件APIgetSendCoupon(res) {let that = thisconsole.log('res', res)if (res.detail.errcode == 'OK') {console.log(222)if (res.detail.send_coupon_result[0].code == 'SUCCESS') {that.showWechatbool = falsethat.showMask = falseuni.showToast({title: '领取成功',icon: 'success',duration: 2000,})} else {uni.showModal({title: '领取失败',content: res.detail.send_coupon_result[0].message,showCancel: false,success: function(res) {that.showWechatbool = falsethat.showMask = false}})}} else {// uni.showToast({//  title: '领取失败',//  icon: 'none'// })that.showWechatbool = falsethat.showMask = false}},

接下来上图解:

图1为小程序领券页面,立即领取也就是调用getCoupon这个方

图1为小程序领券页面,立即领取也就是调用getCoupon这个方法.

图2如果是该券领取后是需要进入微信卡包,则点击立即领取不调用getCoupon这个方法,而是调用getWechatCoupon获取批次号,成功之后打开弹窗和领券插件(图2),图2的确认领取才会真正调用领券方法

在这里插入图片描述

领券成功后,控制台会返回相关详情信息(图3)

在这里插入图片描述

图4是我的微信卡包,可以看得到已经成功领取了

在这里插入图片描述
这就是前端负责部分,如有不足之处,多多指教哈


http://chatgpt.dhexx.cn/article/E6CAvLa7.shtml

相关文章

wxFormBuilder + wxPython 工具开发第二章-日记本工具数据连接与展示

目录 前言 一、代码目录层级 二、数据库 三、数据表设计 四、展示数据 前言 上一章节已经介绍了如何将程序主窗口设计好生成python代码&#xff0c;运行成功的展示了窗体。 上一章内容地址&#xff1a; wxFormBuilder Python 工具开发第一章-拖出日记本图形界面_魂尾ac…

HBuidler运行小程序:rovider:wxf72d316417b6767f, version:1.0.1, AppID 不合法,invalid appid

解决&#xff1a; 这个是官方的demo,把对应的id值删掉就可以运行成功&#xff0c; 在微信开发者工具里&#xff0c;找到app.json, plugins里的2个广告配置删除可以运行成功。

wxFormBuilder + wxPython 工具开发第三章-日记本工具树节点增、改、删功能

目录 前言 一、添加树右击菜单 二、新增 1、实现二级日期节点新增 2、实现三级文章节点新增 三、修改 四、删除 前言 上一章节实现了对目记本表数据设计&#xff0c;数据库连接&#xff0c;数据展示的功能 wxFormBuilder Python 工具开发第二章-日记本工具数据连接与展…

进程和多线程的生命周期

进程和线程 进程 对于操作系统来说&#xff0c;一个任务就是一个进程&#xff08;Process&#xff09;。 课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等。 内核观点&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实…

Python 线程的生命周期

CPU 在轮换执行线程过程中&#xff0c;线程都经历了什么呢&#xff1f;线程从创建到消亡的整个过程&#xff0c;可能会历经 5 种状态&#xff0c;分别是新建、就绪、运行、阻塞和死亡&#xff0c;如图 1 所示。 图 1 线程状态转换图 线程的新建和就绪状态 无论是通过 Thread …

线程的生命周期和线程池的生命周期

目录 线程的生命周期 1、新建状态 2、就绪状态 3、运行状态 4、死亡状态 5、阻塞状态 线程池的生命周期 1、RUNNING 2、SHUTDOWN 3、STOP 4、TIDYING 5、TERMINATED 线程的生命周期 1、新建状态 通过new关键字创建出一个线程对象&#xff0c;没有启动之前&#xff…

Java多线程的生命周期

多线程的生命周期 1. 线程周期 NEW &#xff1a;新建状态。RUNNABLE&#xff1a;在JAVA虚拟机中执行的线程处于这个阶段BLOCKED&#xff1a;线程阻塞状态&#xff0c;被阻塞等待监视器锁定的线程处于这个状态。WAITING&#xff1a;正在等待另一个线程执行特定的动作的线程处于…

Java多线程(1):线程生命周期

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 从事Java开发这些年来&#xff0c;如果要问我Java当中最难的部分是什么&#xff1f;最有意思的部分是什么&#xff1f;最多人讨论的部分是什么&#xff1f;那我会…

多线程的生命周期

1、线程的生命周期及五种基本状态 新建状态&#xff08;New&#xff09;&#xff1a;当线程对象对创建后&#xff0c;即进入了新建状态&#xff0c;如&#xff1a;Thread t new Thread(); 就绪状态&#xff08;Runnable&#xff09;&#xff1a;当调用线程对象的start()方法&…

Java线程的生命周期(有代码演示)

文章目录 概览NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATED 概览 Java语言中&#xff0c;多线程是由线程的核心概念驱动的&#xff0c;而线程的生命周期会经历以下的不同状态。 Java java.lang.Thread类包含了一个静态类State&#xff0c;它定义了线程的状态&#xff…

Java 多线程之线程的生命周期 | 图解

转载&#xff1a;https://www.exception.site/java-concurrency/java-concurrency-thread-life-cycle 在 Java 初中级面试中&#xff0c;关于线程的生命周期可以说是常客了。本文就针对这个问题&#xff0c;通过图文并茂的方式详细说说。 结合上图&#xff0c;线程的生命周期大…

java多线程之线程的生命周期

1.生命周期 一个事物从出生的那一刻开始到最终死亡中间的整个过程.在事物的漫长的生命周期过程中,总会经历不同的状态(婴儿状态/青少年状态/中年状态/老年状态...).线程也是有生命周期的,也是存在不同的状态的,状态相互之间的转换. 线程对象的状态存放在Thread类的内部类(Sta…

线程生命周期及五种状态

文章目录 一、线程生命周期及五种状态1、New(初始化状态)2、Runnable(就绪状态)3、Running(运行状态)4、Blocked(阻塞状态)5、Terminated&#xff08;终止状态&#xff09; 二、线程基本方法1、线程等待&#xff08;wait&#xff09;2、线程睡眠&#xff08;sleep&#xff09;3…

线程的生命周期和状态

线程的六种状态 线程的生命周期主要有以下六种状态&#xff1a; New&#xff08;新创建&#xff09;Runnable&#xff08;可运行&#xff09;Blocked&#xff08;被阻塞&#xff09;Waiting&#xff08;等待&#xff09;Timed Waiting&#xff08;计时等待&#xff09;Termin…

线程的生命周期以及其中的方法

文章目录 线程的生命周期线程的5种状态 线程的基本方法线程等待&#xff1a;wait 方法线程睡眠&#xff1a;sleep 方法线程让步&#xff1a;yield 方法线程中断&#xff1a;interrupt 方法线程加入&#xff1a;join 方法线程唤醒&#xff1a;notify 方法后台守护线程&#xff1…

Java多线程 (五)—— 线程的生命周期

文章目录 前言1、线程生命周期1.1、NEW&#xff08;新建&#xff09;1.2、RUNNABLE&#xff08;可运行&#xff09;1.3、BLOCKED&#xff08;阻塞&#xff09;1.4、WAITING&#xff08;等待&#xff09;1.5、TIMED_WAITING&#xff08;计时等待&#xff09;1.5、TERMINATED&…

线程的生命周期及五种基本状态

一.线程的生命周期及五种基本状态 关于Java中线程的生命周期&#xff0c;首先看一下下面这张较为经典的图&#xff1a; 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点&#xff0c;Java中的多线程也就基本上掌握了。主要包括&#xff1a; Java线程具有五…

浅谈线程的生命周期

当线程被创建并启动以后&#xff0c;它既不是一启动就进入了执行状态&#xff0c;也不是一直处于执行状态。在线程的生命周期中&#xff0c;它要经过新建(New)、就绪&#xff08;Runnable&#xff09;、运行&#xff08;Running&#xff09;、阻塞(Blocked)和死亡(Dead)5种状态…

java中,线程的生命周期

java中&#xff0c;线程的生命周期 一、什么是线程&#xff1f; 见之前写的。 当线程启动后&#xff08;线程对象调用start方法&#xff09;&#xff0c;它不能一直"独占"着CPU独自运行&#xff0c;所以CPU需要在多条线程之间切换&#xff0c;于是线程状态也会多次…

JAVA 多线程并发

1.1.1. JAVA 并发知识库 1.1.2. JAVA 线程实现/创建方式 1.1.2.1. 继承 Thread 类 Thread 类本质上是实现了 Runnable 接口的一个实例&#xff0c;代表一个线程的实例。启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法&#xff0c;它…