微信小程序——支付成功后更新订单为已支付
过程演示:当我们点击购买,弹出微信支付,我们输入密码进行支付。之后,当我们点击订单页面时,可以在已支付页面中看到我们已经购买的商品。
实现逻辑:
1.购买按钮绑定一个点击事件
2.点击事件中写入获取商品信息,调用微信buy-pay函数,调用微信支付请求API,之后把商品信息传入订单页面,最后改变其中的状态。
首先是获取商品信息,我们使用consel窗口打印出他在数组goodlist中的位置。
之后,把这个数组内容中的信息赋值给order库中。
addorder(event){// 显示数组中的位置console.log(event)let index=event.currentTarget.dataset.indexlet orderid=Date.now()console.log(Date.now())
// 添加到数据库
wx.cloud.database().collection('buy_order').add({// 增加的数据data:{orderid:orderid,title:this.data.goodslist[index].title,price:this.data.goodslist[index].price,num:this.data.goodslist[index].num,// -id是系统随机生成的不需要我们去指定。// _id:this.data.goodslist[index]._id,status:0,//是否订单已经支付的状态。time:util.formatTime(new Date())},}
).then(res=>{console.log(res)this.setData({order_id:res._id})
下一步,调用buy-pay函数,传递进入这个函数内容。
// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init()// 云函数入口函数
exports.main = async (event, context) => {const res = await cloud.cloudPay.unifiedOrder({"body" : event.body,//商品描述??body是属性还是自定义好的。==是从event中传入的。"outTradeNo" : event.outTradeNo,//订单号"spbillCreateIp" : "127.0.0.1",//终端IP"subMchId" : "1621670684",//商户号"totalFee" : event.totalFee,//订单金额"envId": "pay-try-0gmo3urf4597ee3d",//云环境名称"tradeType":"JSAPI",//交易类型"functionName": "pay_cb" //调用云函数成功之后的回调函数})return res
}
调用 wx.requestPayment这个API,把从函数中得到的内容赋值给API中的参数。
wx.cloud.callFunction({name:'buy-pay',// 向云函数传入参数data:{body:this.data.goodslist[index].title,// 这个地方要加一个单引号outTradeNo:orderid +'', // 这个地方必须是number类型totalFee:Number(this.data.goodslist[index].price) * 100}
}).then(res=>{console.log(res)this.pay(res.result.payment)
})
})
},pay(payment){var that=thiswx.requestPayment({// 依次进行赋值...payment,success(res){console.log(res)// 把订单状态改变,当在订单页面显示时,可以显示出已支付// 数据库部分的内容是先进行查询,之后再更新wx.cloud.database().collection('buy_order').doc(that.data.order_id).update({data:{status:1},// 每一个函数调用成功之后,都可以加上一项successsuccess(res){console.log(res)wx.showToast({title: '支付成功',})}})},fail(res){console.log(res)wx.showToast({title: '支付失败',})}
最后获取我们商品信息的-id然后数据库查询和更新。
wx.cloud.database().collection('buy_order').doc(that.data.order_id).update({data:{status:1},
微信小程序——支付成功后更新订单为已支付相关推荐
- PHP更新小程序,微信小程序Tab页切换更新数据详细介绍
这篇文章主要介绍了微信小程序 Tab页切换更新数据的相关资料,需要的朋友可以参考下 微信小程序 Tab页切换更新数据 微信小程序还处于内测阶段,最不方便的莫过于官方在不停的更新,前几天写的功能隔个几天 ...
- 微信小程序使用echarts实时更新数据以及常见bug
** 微信小程序使用echarts实时更新数据以及常见bug ** 参考echarts官方文档:https://echarts.apache.org/zh/tutorial.html 下载小程序ech ...
- 微信小程序认证成功怎么操作
微信小程序认证成功怎么操作?要花你多少钱呢! 现在是Z世代,新能源车.芯片.AI的时代了,不会还有企业.店铺,想通过聘请程序员,或者花个大几万去开发一个微信小程序吧. 不会吧,这不会是真的吧. 今天珍 ...
- 微信小程序键盘弹起后页面上推问题
微信小程序键盘弹起后页面上推问题 小程序的 input 组件聚焦后弹起键盘,自动通过页面上移的方式将输入框所在位置定位到键盘上方. 如果输入框本身就位于页面顶端,则不会造成上推. 但是,如果输入框是位 ...
- 微信小程序上传后 进行性手机扫码阅览 发现白屏的解决
目录 问题: 微信小程序上传后 进行性手机扫码阅览 发现白屏的解决 1.上传时没有勾选保护 2.请求的域名没有配置 问题: 微信小程序上传后 进行性手机扫码阅览 发现白屏的解决 1.上传时没有勾选保护 ...
- 小程序上传音频失败_微信小程序实现录音后上传文件方法详细
本篇文章讲述了微信小程序实现录音后上传文件方法,大家对微信小程序实现录音后上传文件方法不了解的话或者对微信小程序实现录音后上传文件方法感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 ...
- 微信小程序——获取视频的URL地址【已解决】
微信小程序--获取视频的URL地址[已解决] 如何获取音乐MV的URL地址 虾米音乐 试了很多音乐网站发现"虾米音乐"的MV的URL地址是可以获取的,并且在微信小程序播放视频的时候 ...
- 微信小程序开发一个小型商城(七、支付页面)
上一篇:微信小程序开发一个小型商城(六.购物车页面) 在这里,基本上是与购物车页面相似的: 在从购物车页面跳转过来,在购物车界面对购物车商品会进行合法判断,是否有收货人的信息和是否存在商品,而在订单页 ...
- 微信小程序web-view与H5之间交互(含支付)
第一章 了解web-view与H5的交互(含支付) 文章目录 第一章 了解web-view与H5的交互(含支付) 前言 一.web-view是什么? 二.使用步骤 三.业务场景 1.小程序带参数跳转链 ...
最新文章
- [STL][C++]STACK QUEUE
- XenServer 6.5实战系列之三:Prepare for XenServer 6.5
- Vue组件之间相互传值的方式
- angular中封装fancyBox(图片预览)
- wordpress支持MySQL5.5_CentOS 5.5安装Nginx、PHP(FastCGI)、MySQL --搭建LNMP环境安装Wordpress...
- python环形链表的使用
- JSTL Tutorial with Examples – JSTL Core Tags
- 谈谈基于SQL Server 的Exception Handling[中篇]
- LibSVM文本分类之结果统计
- ASP.NET MVC Framework体验(1):从一个简单实例开始(转)
- 一年级下册健康教育教案
- HorizontalScrollView入门技术
- Twaver-HTML5基础学习(4)告警元素(Alarm)
- Windows 使用 ssh 命令行 通过密钥连接到 云服务器
- CAD学习之CASS快捷键
- java股票接口怎么样获得?
- 非常感人非常激发人的潜能的信,你一定要看!
- 同源策略的限制,没有同源策略会怎么样?
- JQuery实现音乐导航栏的简单实现
- C语言的return用法