php - 微信支付怎么跟确认是哪个用户完成了支付?

 majiemajiemajie 发布于 2022-11-21 08:08

使用扫码支付的模式1,获取到二维码链接的同时可以获取到 预付订单id 等信息,但是支付完成之后,微信提交给notify_url的没有跟之前对应的值用来识别订单是哪个用户支付的(刚开始也没有获取到openid,只是提交了商品相关信息,获取到二维码)。现在一个想法是在notify_url中加上用户相关信息,不知道这是不是正确做法。
另外这样做,也比较难在前端实现支付完成自动跳转。

大家是怎么做的呢?感觉文档说的不清楚。

2 个回答
  • 找到办法了。
    原来商户系统生成一个out_trade_no,会在支付完成通知商户系统的时候再传递回来,所以用这个唯一的id就可以判断支付者。另外,微信还提供了一个attach的字段,可以传递自定义信息,在支付完成通知的时候也会回传。

    2022-11-21 09:22 回答
  • 微信会向 notify_url 发送每一次支付成功的订单信息的,具体信息参考:

    {
        "appid":"wx345f3830c28971f4",
        "bank_type":"CFT",
        "cash_fee":"1",
        "fee_type":"CNY",
        "is_subscribe":"Y",
        "mch_id":"1241642202",
        "nonce_str":"fTbkMTXgMmnvTaO1",
        "openid":"oWY-5jjLjo7pYUK86JPpwvcnF2Js",
        "out_trade_no":"124164220220150803161536",
        "result_code":"SUCCESS",
        "return_code":"SUCCESS",
        "sign":"4B8948BD3E831394C956B5DFA8AAEB1E",
        "time_end":"20150803161547",
        "total_fee":"1",
        "trade_type":"JSAPI",
        "transaction_id":"1005130236201508030539058581"
    }
    

    out_trade_no 就是你自己的订单 ID,你只需要在自己应用内更新该订单状态即可。

    参考:https://github.com/thenbsp/wechat

    2022-11-21 09:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有