怎么判断微信小程序医保是否支付成功?

在做微信小程序医保支付的问题,文档:
https://yb.qq.com/yibao-payment/doc?nodeId=83680041366614016
image.png

用户在医保支付小程序完成支付后,会返回调用方的小程序,可在小程序的onShow方法通过scene等于1038(从另一个小程序返回)时,拿到小程序本身存储的上下文,获得相关订单号,然后先查询医院订单是否已接收到成功通知,如果还没有,则向微信医保支付后台查询支付结果。

医保支付小程序完成支付后,会返回上面说的东西,问题是只要我返回就都是上面的东西,没有任何其它东西,我怎么知道他是支付了还是没支付呢?

阅读 177
avatarAI BotBETA

回答

要判断微信小程序医保是否支付成功,你可以按照以下步骤进行:

  1. 监听 onShow 方法
    用户在医保支付小程序完成支付后,会返回到你的小程序,此时会触发 onShow 方法。在 onShow 方法中,你可以检查 scene 参数是否等于 1038,以确认是否从医保支付小程序返回。
  2. 获取上下文和订单号
    如果 scene 等于 1038,你可以从小程序本身存储的上下文中获取相关订单号。这个订单号通常是在发起医保支付时传递给医保支付小程序的。
  3. 查询医院订单状态
    使用获取到的订单号,首先查询你的医院订单系统是否已经接收到支付成功的通知。这通常是通过你的后端服务来完成的,后端服务会与医院订单系统进行交互。
  4. 查询微信医保支付后台
    如果医院订单系统还没有接收到支付成功的通知,你可以向微信医保支付后台发起查询请求,以确认支付结果。这通常涉及到调用微信提供的支付结果查询API,并传入订单号等必要参数。
  5. 处理支付结果
    根据查询结果,你可以判断医保支付是否成功,并据此更新你的订单状态和用户界面。

注意:由于医保支付涉及多个系统和接口,因此在实现过程中需要确保各个步骤的正确性和可靠性,以避免出现支付状态不一致的情况。同时,也需要处理可能出现的异常情况,比如网络错误、超时等。

综上所述,判断微信小程序医保是否支付成功,关键在于正确地处理从小程序返回后的逻辑,以及正确地查询医院订单状态和微信医保支付后台的支付结果。

1 个回答

image.png
文档已经表明了支付后,你能拿到订单号,拿到订单号 调用 3.4查询支付单接口 就能自动订单支付结果了
应该可以按照类似这个逻辑在referrerInfo 拿到订单

App({
    onShow(res) {
        if (res.scene === 1038) { // 场景值1038:从被打开的小程序返回
            const { appId, extraData } = res.referrerInfo
            if (appId == 'wxbd687630cd02ce1d') { // appId为wxbd687630cd02ce1d:从签约小程序跳转回来
                if (typeof extraData == 'undefined'){
                    // TODO
                    // 客户端小程序不确定签约结果,需要向商户侧后台请求确定签约结果
                    return;
                }
                if(extraData.return_code == 'SUCCESS'){
                    // TODO
                    // 客户端小程序签约成功,需要向商户侧后台请求确认签约结果
                    var contract_id = extraData.contract_id
                    return;
                } else {
                    // TODO
                    // 签约失败
                    return;
                }
            }
        }
    }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏