fudiwei / DotNetCore.SKIT.FlurlHttpClient.Wechat

可能是全网最完整的 C# 版微信 SDK,封装全部已知的微信 OpenAPI,包含微信公众平台(订阅号+服务号+小程序+小游戏+小商店+视频号)、微信开放平台、微信商户平台(微信支付+微企付)、企业微信、微信广告平台、微信智能对话开放平台等模块,可跨平台。持续随官方更新,欢迎 Star/Fork/PR。QQ 交流群 875580418【满】、930461548【满】、611974621。

Home Page:https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

XxyGitHub opened this issue · comments

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

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

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

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

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

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

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

好的 明白了 非常感谢!