potatoknight
potatoknight
  • 发布:2025-07-10 06:59
  • 更新:2025-07-10 11:01
  • 阅读:43

微信支付无法关闭订单

分类:uniCloud

微信支付,用 uni-pay (版本2.3.3)创建订单后,等了6分钟,在没有支付的情况下,在云对象中调用下面的方法:

await uniPayCo.closeOrder({
out_trade_no: "2022102701100010100101001", // 插件支付单号
});

结果: 关闭订单失败,请稍后再试

请问这个怎么解决?

2025-07-10 06:59 负责人:无 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

需要先进入过微信的输入支付密码的页面步骤时,才可以关闭订单,否则微信服务器会认为此订单其实没有创建

提示:一般无需主动关闭订单,只需要你业务层面判断不让用户支付即可

  • potatoknight (作者)

    我目前是在云函数中调用closeOrder的,是不是说closeOrder要放到前端调用?然后uni-pay 会自动让用户输入“支付密码”?然后才能关闭?


    这个“输入支付密码”是什么情况下才能触发呀?如果都输入过支付密码了,说明用户已经付款了,那场景不就变成 refund了吗?


    但一般调用 closeOrder 是用户下单未付款,导致支付超时,然后系统来 closeOrder,这个时候咋让用户输入支付密码呀?


    求指导 (●'◡'●)

    2025-07-10 11:41

  • DCloud_uniCloud_VK

    回复 potatoknight: 就是微信认为只有用户进入过支付密码页面,然后放弃输入密码,这样才能关单,否则压根没创建订单,就不需要关单

    2025-07-10 11:59

  • DCloud_uniCloud_VK

    你只需要把你自己业务系统的订单关了就行

    2025-07-10 12:00

  • potatoknight (作者)

    回复 DCloud_uniCloud_VK: 好的,感谢回复

    2025-07-10 18:40

要回复问题请先登录注册