fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat

订单支付的时候提示201商户订单号重复

XxyGitHub opened this issue · 4 comments

本地订单状态是待支付 ,然后调用 ExecuteCreatePayTransactionNativeAsync 方法提示201商户订单号重复

同一商户订单号(out_trade_no)只能调用一次下单接口。

同一商户订单号(out_trade_no)只能调用一次下单接口。

如果第一次没有支付 下一次我的那个订单需要再次支付 是把本地的订单号重新赋值吗

如果第一次没有支付 下一次我的那个订单需要再次支付 是把本地的订单号重新赋值吗

你应该自行持久化下单时渠道返回的支付参数(例如 prepay_idpackagecode_url 等)。客户端短时间内重复唤起支付时使用之前的支付参数即可;长时间再次唤起使用新的商户订单号重新调用微信支付下单接口。

另外建议把你自己业务系统里的“订单号”,跟微信支付接口里的“订单号”区分开。前者是“业务订单号”,标识的是你自己业务系统里的一笔交易;后者是“渠道订单号”,标识的是支付渠道系统里的一笔交易。1 个“业务订单号”可以关联 N 个“渠道订单号” —— 例如你自己业务系统里同一笔订单,可以在小程序里唤起微信支付但不付款、又在 App 里唤起微信支付但也不付款、最后在网页端唤起支付宝支付完成付款,这个过程中你自己的业务订单号始终不变,渠道订单号每次都是新的。

好的 明白了 非常感谢!