> 백엔드 개발 > PHP 튜토리얼 > 微信支付怎么跟确认是哪个用户完成了支付?

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

WBOY
풀어 주다: 2016-06-06 20:30:31
원래의
1909명이 탐색했습니다.

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

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

回复内容:

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

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

微信会向 notify_url 发送每一次支付成功的订单信息的,具体信息参考:

<code>{
    "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"
}
</code>
로그인 후 복사

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

参考:https://github.com/thenbsp/wechat/blob/master/example/payment-notify.php

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿