点击确认收货调用以下方法
//拉起确认收货组件
if (wx.openBusinessView) {
wx.openBusinessView({
businessType: 'weappOrderConfirm',
extraData: {
merchant_id: order && order.mchId, //
merchant_trade_no: order && order.orderId,
transaction_id: order && order.transactionId
},
success: e => {
console.log("e1", e)
if (e.extraData.status === 'success') {
// 用户确认收货成功,再执行自己的代码
takeOrderHandle(order.orderId).finally(() => {
that.reload();
that.getOrderData();
});
} else if (e.extraData.status === 'fail') {
// 用户确认收货失败
console.log('下单opedId和确认收货人的要一致')
} else if (e.extraData.status === 'cancel') {
// 用户取消
console.log('需要确定用户状态为待发货')
}
},
fail: e => {
console.log("e2", e)
},
complete: e => {
console.log("e3", e)
console.log("无论是否成功都会执行")
}
});
} else {
//引导用户升级微信版本
uni.showToast({
title: "请升级微信版本",
duration: 3000,
icon: "none",
});
}
status: cancel,检查目标订单号是否处于待收货状态,如果不是就不能调起确认收货组件。
status: fail,检查当前使用的微信号与订单支付者是否相同,需要相同的openid才能调起
使用这个方法报错status: cancel的时候查到了这两句话,我不是特别理解,但是弹框一直调用不起来,然后状态一直status为cancel
沟通后才知道,在后台点击发货时要通知小程序官方,不然他们是不知道我们的订单状态,就不会知道这个单子已发货,从而就是status:cancel
点击完已发货之后,服务通知会收到一个商品发货通知
这个时候在小程序里点击确认收货就会调起确认收货弹框啦!
整体流程:
小程序买商品=>后台点击发货并且调用小程序后天接口告知已发货=>微信收到服务通知商品发货通知=>点击确认收货才会调起弹框