当前位置: 首页 > news >正文

微信支付流程

1. 创建订单

  • 请求创建订单的 API 接口:把 订单金额、收货地址、订单中包含的商品信息 发送到服务器
  • 服务器响应的结果:订单编号

2.订单预支付

  • 请求订单预支付的 API 接口:把步骤1得到的 订单编号 发送到服务器
  • 服务器响应的结果:订单预支付的参数对象,里面包含了订单支付相关的必要参数

3.发起微信支付

  • 调用 wx.requestPayment() 这个 API,发起微信支付;把步骤2得到的 订单预支付对象 作为参数传递给 wx.requestPayment() 方法
  • 监听 wx.requestPayment() 这个API 的 success,fail,complete 回调函数

示例代码如下(注意:以下代码仅作为示例,实际使用时需要根据业务需求进行调整): 

// 1. 用户触发支付
async function onOrderClick() {const orderInfo = {// 这里填入你的订单信息};// 2. 调用后端提供的创建订单的 API 向服务端发起请求,将订单信息参数 orderInfo 传给服务端,服务端创建订单,并将订单编号返回给前端const orderNumber = await getOrderNumber(orderInfo)// 3.调用后端提供的预支付订单的 API 向服务端发起请求,将拿到的订单编号传给服务端,来获取订单预支付参数const prepayData= await getOrderPrepayData({orderNumber})// 订单预支付参数具体如下:prepayData={"timeStamp": "xxx", // 时间戳,精确到毫秒级"nonceStr": "xxxx", // 随机字符串,长度为32位字符"package": "prepay_id=xxxx", // 微信生成的预支付交易会话标识"signType": "RSA", // 签名方式,默认为RSA"paySign": "xxxx", // 签名值,用于验证签名的正确性}// 4. 调用支付APIwx.requestPayment({...prepayData, success: function (res) { // 支付成功后的回调函数// 更新订单状态和页面提示信息updateOrderStatus(orderInfo);showToast({title:'支付成功'});},fail: function (res) { // 支付失败后的回调函数// 显示错误信息或重试逻辑wx.showToast({title:'支付失败,请重试'});}});
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【实现100个unity特效之22】unity用Particle粒子系统制作2d龙卷风特效效果
  • 【Rust】使用开源项目搭建瓦片地图服务
  • xcode14.2学习笔记 swift5开发macos网络程序笔记
  • CPU缓存一致性机制详解
  • 我的第一个CUDA程序
  • AI大模型入门基础教程(非常详细),AI大模型入门到精通,收藏这一篇就够了!
  • C# MaterialDesign抽屉式风格
  • 静态代理和动态代理
  • JavaEE从入门到起飞(八) ~ Git
  • 今日(2024 年 8 月 15 日)科技新闻
  • RESTful API设计指南:构建高效、可扩展的Web服务
  • 仿RabbitMq实现简易消息队列正式篇(连接篇)
  • C 开源库之cJSON
  • 比特币8.12学习问题
  • 学懂C++(二十三):高级教程——深入详解C++ 标准库的多线程支持
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • express如何解决request entity too large问题
  • JavaScript-Array类型
  • JavaScript的使用你知道几种?(上)
  • javascript面向对象之创建对象
  • js对象的深浅拷贝
  • js学习笔记
  • LeetCode18.四数之和 JavaScript
  • MYSQL 的 IF 函数
  • MySQL用户中的%到底包不包括localhost?
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • zookeeper系列(七)实战分布式命名服务
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 从零开始的无人驾驶 1
  • 精彩代码 vue.js
  • 如何解决微信端直接跳WAP端
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 数组的操作
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 写代码的正确姿势
  • 赢得Docker挑战最佳实践
  • 找一份好的前端工作,起点很重要
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 扩展资源服务器解决oauth2 性能瓶颈
  • #07【面试问题整理】嵌入式软件工程师
  • #if #elif #endif
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (42)STM32——LCD显示屏实验笔记
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (四)事件系统
  • (五)网络优化与超参数选择--九五小庞
  • (转)详解PHP处理密码的几种方式
  • (自适应手机端)行业协会机构网站模板
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作