← 返回资讯问答

微信小程序交易收款:商城订单怎么收

日照老板做了微信小程序商城,订单生成了却不知道钱怎么收、回调怎么处理、退款怎么退。这篇用我帮一家水果店上架小程序的踩坑记录,讲清小程序收款的全链路。

一家日照水果店老板想做小程序自提,商品上架、下单都行,但客人付完钱订单还是"待支付",到店取不了货。我帮他查,是支付回调和订单状态没接好。下面拆开说。

先说结论:小程序收款="统一下单+openid+支付回调+订单幂等"

  • 小程序也要商户号:得有微信支付商户号,并在平台关联小程序 AppID。
  • openid 从小程序来:用 `wx.login` 拿 code 换 openid,比公众号网页授权简单。
  • 回调地址必须 HTTPS 且公网通:钱到账通知靠这个,收不到就卡待支付(到账见第12篇)。
  • 订单用商户订单号做幂等:通知会重发,不幂等就重复发货。
  • 退款走原路:小程序退款也是 API 退款,要装证书(退款见第33篇)。

统一下单与 openid

小程序支付调用 `wx.requestPayment`,参数由后端先调统一下单换得。流程:用 `wx.login` 拿 code 换 openid → 用 openid+订单号+金额请求统一下单 → 拿 prepay_id 签名 → 回传前端调起。我那客户把 openid 当前端直接传导致不匹配,openid 必须由后端用 code 换。

支付回调怎么接才稳

客人付款后,微信向 `notify_url` 发 POST 通知。三个坑:

坑点现象处理
地址不通订单一直待支付用公网 HTTPS,别 localhost
没回 success微信反复重推收到回 SUCCESS 报文
不幂等重复发货用商户订单号查是否已处理

我加了"收到通知先查本地状态,已支付直接回 success",卡单当场没了。

订单与对账

小程序订单和微信账单每天勾,差额在未支付单占号、退款没同步、优惠券分摊错。建议每晚自动对账、异常报警(对账见第47篇)。

费率与类目

小程序费率按经营类目,水果生鲜一般 0.6%,民生类有优惠。类目报备准,乱填会被风控限交易(风控见第28篇)。

常见问题

小程序和公众号能用同一商户号?

可以且推荐。一个商户号关联多个 AppID,统一对账方便,只要类目合规。

回调收不到但钱扣了?

钱在微信侧已收,只是订单没更新。去平台查交易状态手动补单,同时修通知地址,客人无损失。

怎么防重复发货?

处理前用商户订单号加锁/查状态,已支付直接回 success。订单号设唯一索引更稳。

小程序能收信用卡?

默认开通就能收,费率同借记卡,不另加。别诱导套现,会被风控。 小程序收款跑通后,订单和钱就对上了。核心:openid 后端换、回调回 success、订单做幂等。差异细节可回看第228篇公众号H5配置。