讲师中心 微信公众号
AI工具推荐 视频效率加速

uni-app实现微信小程序红包功能 uni-app接入微信红包接口

秋雪姑娘_7016

秋雪姑娘_7016

发布时间:2026-04-26 09:36:18

|

838人浏览过

|

来源于php中文网

原创

微信小程序无法前端发红包,必须由企业认证服务号+商户号的后端通过微信支付V2 API调用;uni-app仅负责触发请求,后端需签名、证书、IP白名单校验,并使用商户号下有效openid。

uni-app实现微信小程序红包功能 uni-app接入微信红包接口

微信小程序不支持直接调用红包接口

uni-app 无法在微信小程序端直接实现“发红包”功能,因为微信官方明确禁止小程序前端(包括 uni-app 编译后的 WXML/JS)调用红包相关支付能力。微信红包(sendRedPack、sendGroupRedPack)仅开放给**企业认证的微信服务号 + 微信支付商户号**,且必须由**后端服务器**通过微信支付 V2 API 发起,签名、证书、IP 白名单等全部校验都在服务端完成。

常见错误现象:
— 在 uni.request 中直连微信红包接口,返回 {"errcode":40163,"errmsg":"invalid signature"} 或 40001(未授权);
— 尝试在小程序端加载微信支付 SDK 的红包方法,报错 undefined is not a function(微信小程序基础库根本不提供该 API)。

uni-app 正确接入路径:前端只负责触发 + 后端代理

uni-app 的角色只是发起一个业务请求(比如“用户点击发红包”),真正调用微信红包接口的是你自己的后端服务。关键点在于:后端必须使用微信支付 V2 版本(不是 V3),且需配置好商户证书(apiclient_cert.pem + apiclient_key.pem)和 API 密钥。

实操建议:

  • 前端(uni-app)用 uni.request 调你自己的后端接口(如 /api/redpack/send),传入必要参数:openid(用户在当前商户号下的 openid)、total_amount、send_name、act_name 等;
  • 后端收到请求后,组装 XML 请求体,用商户私钥签名,通过 HTTPS POST 到微信地址 https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack;
  • 后端必须校验 openid 是否属于当前商户号(不能用公众号 openid 或其他商户号的 openid);
  • 微信要求红包发放 IP 必须在商户平台「API 安全」中提前配置白名单,否则返回 INVALID_REQUEST;
  • 注意:红包金额单位为分,且必须是 100 的整数倍(最小 100 分 = 1 元)。

uni-app 获取用户 openid 的坑:不能用 uni.login() 直接拿

uni.login() 返回的是微信小程序的登录凭证 code,它只能换取当前小程序的 openid(即 appid 对应的 openid),而微信红包要求的是「该用户在你微信支付商户号下的 openid」——二者不同。必须用「公众号/小程序绑定同一主体」+「unionid 体系」或「通过微信支付授权获取」才能拿到正确 openid。

微信创作
微信创作

自动将 Markdown 文章转为适配微信公众号格式的 HTML,并批量发布至公众号草稿箱,支持封面图生成与专题管理。

下载

可行方案:

  • 如果你的小程序和微信支付商户号同主体(都是企业),且已开通「微信支付授权目录」,可在后端用 code 调用微信 https://api.weixin.qq.com/sns/jscode2session,但注意:该接口返回的 openid 是小程序 openid,仍不等于商户号 openid;
  • 更可靠方式:后端调用微信支付「授权获取 openid」接口(https://api.mch.weixin.qq.com/tools/authcodetoopenid),需用户提供 auth_code(通过小程序 wx.chooseInvoiceTitle 或自定义授权页获取,实际较重);
  • 最常用兜底方案:在用户首次支付时,从微信支付异步通知(notify_url)里提取 openid 并存库,后续发红包时直接查表复用 —— 这个 openid 才是有效的商户号 openid。

红包到账延迟与状态回查必须由后端承担

微信红包接口是异步的:调用成功只代表“受理成功”,不代表用户已收到。实际到账可能延迟几秒到几分钟,失败也不会实时回调。uni-app 前端绝不能依赖接口返回就提示“红包已发”,必须配合后端做轮询或监听微信回调。

关键动作:

  • 后端调用 sendredpack 后,保存微信返回的 mch_billno(商户订单号)和 send_time;
  • 微信会向你配置的 notify_url(需在商户平台设置)推送红包发放结果(XML 格式),后端必须验签并更新数据库状态;
  • 若长时间未收到通知,后端应主动调用查询接口 https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo,传入 mch_billno 查询结果;
  • uni-app 前端可定时轮询你自己的 /api/redpack/status?billno=xxx,但轮询间隔建议 ≥15 秒,避免触发微信限频。

最容易被忽略的一点:微信红包不支持部分退款、不支持撤回、不支持修改金额,所有逻辑必须在调用前由后端严格校验,前端只做轻量输入校验(比如金额格式、必填项),别信前端传来的任何关键参数。

相关文章

微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2623

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

5703

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6690

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

6398

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

903

2024.05.22

微信是谁开发的
微信是谁开发的

微信是由张小龙所带领的腾讯广州研发中心产品团队打造开发的,并不是马化腾开发的,而腾讯公司总裁马化腾是在产品策划的邮件中确定这款产品的名称叫做“微信”的。想了解更多微信相关的内容,可阅读本专题下面的相关文章。

5635

2024.11.05

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5450

2024.08.16

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

20

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn