微信小程序

您所在的位置:网站首页 外卖评价后为什么不显示订单 微信小程序

微信小程序

2024-07-16 10:24| 来源: 网络整理| 查看: 265

过程演示:当我们点击购买,弹出微信支付,我们输入密码进行支付。之后,当我们点击订单页面时,可以在已支付页面中看到我们已经购买的商品。

实现逻辑:

1.购买按钮绑定一个点击事件

2.点击事件中写入获取商品信息,调用微信buy-pay函数,调用微信支付请求API,之后把商品信息传入订单页面,最后改变其中的状态。

首先是获取商品信息,我们使用consel窗口打印出他在数组goodlist中的位置。

之后,把这个数组内容中的信息赋值给order库中。

addorder(event){ // 显示数组中的位置 console.log(event) let index=event.currentTarget.dataset.index let 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=this wx.requestPayment({ // 依次进行赋值 ...payment, success(res){ console.log(res) // 把订单状态改变,当在订单页面显示时,可以显示出已支付 // 数据库部分的内容是先进行查询,之后再更新 wx.cloud.database().collection('buy_order').doc(that.data.order_id).update({ data:{ status:1 }, // 每一个函数调用成功之后,都可以加上一项success success(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 },



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3