yuanjin
yuanjin
  • 发布:2024-09-07 10:25
  • 更新:2024-09-09 10:53
  • 阅读:69

【报Bug】uni-pay2 弹窗里,切换支付渠道,在 uniCloud 数据库里 provider 变了,但 provider_appid 没有变化

分类:uniCloud

产品分类: uniCloud/App

示例代码:

在前端,正常调用 uni-pay 2 进行扫码支付:

this.$refs.unipay2.open({  
          provider: undefined,  
          total_fee: 1,  
          order_no: '1234567890',   
          out_trade_no: '1234567890xyz',   
          description: '测试‘,  
          type: 'recharge',   
          qr_code: true,   
          cancel_popup: false,   
        })

操作步骤:
  1. 用户点击支付按钮,前端弹出扫码支付收银台,选择微信支付渠道。
  2. 查看 uniCloud 数据库,在 uni-pay-orders 表格里,发现一条新记录:
    id: "66dbab7d99c624f04fda83b0",  
    provider: "wxpay",  
    provider_pay_type: "native",  
    uni_platform: "web",  
    status: 0,  
    ......  
    provider_appid: "wx??????????" // 微信 appId
  3. 用户放弃微信支付,点击选择另一个渠道 支付宝。
  4. 查看 uniCloud 数据库,在 uni-pay-orders 表格里,发现之前给微信支付创建的记录,变成了
    id: "66dbab7d99c624f04fda83b0", // 注意,仍然是原来的记录 id  
    provider: "alipay", // 变成了 支付宝  
    provider_pay_type: "native",  
    uni_platform: "web",  
    status: 0,  
    ......  
    provider_appid: "wx??????????" // 错误:仍然是微信的 appId,没有变成支付宝的

预期结果:

切换支付渠道时,既然在数据库的原记录里,把 provider 变成了 alipay,那么 provider_appid 也应该变成支付宝的 appId。

实际结果:

实际上 provider_appid 没有变,仍然是微信的 appId,如果最终用支付宝完成了支付,那么数据库里就留下了一条错误的记录。

bug描述:

使用 uni-pay 2,在前端打开扫码支付收银台,选择微信支付,

这时查看云空间的数据表 uni-pay-orders 里,自动创建了一条记录,其中的 provider: 'wxpay', provider_appid: 'wx???????????????'。

然后在弹窗里,放弃微信支付,点击选择另一种渠道,支付宝,

这时查看云空间的数据表,没有出现新的记录,而是在上面的现有记录里,把 provider 改成了 "alipay",但是 provider_appid 却仍然是 "wx???????????????",而不是相应改成了支付宝的 appId

2024-09-07 10:25 负责人:无 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

此问题会在下版本修复

提示: 此问题不会影响正常的支付和退款,目前provider_appid参数没有实际用到,仅用作记录

要回复问题请先登录注册