订单查询

通过 BaaS SDK 提供的 Order.getOrderList(params) 方法, 可查询到交易的详细信息。典型的使用场景为: 调用 wx.BaaS.pay(object) 发起支付, 在成功回调中获取到 transaction_no 或 trade_no, 在要路由到新的页面时带上此 ID, 在新页面的 onLoad 方法中获取到该 ID, 从而使用此 ID 获取交易的详细信息。

函数签名

Order.getOrderList(params)

参数说明

参数类型说明
params.merchandise_record_idString商品记录 ID,可用于定位用户购买的物品
params.merchandise_schema_idNumber商品表 ID,可用于定位用户购买的物品
params.statusString订单支付状态,可选值有:pending(待支付)、success(支付成功)
params.trade_noString真正的交易 ID, 业务方在微信后台对账时可看到此字段
params.transaction_noString知晓云平台所记录的流水号

示例代码

  1. var order = new wx.BaaS.Order()
  2. // 通过 trade_no 查询订单
  3. order.getOrderList({trade_no: '1gCeU9ZKQQAA8iQgUM0lWhEbnqr89Qtxxx'}).then(res => {
  4. // success
  5. }).catch(e=>{
  6. // HError 对象
  7. })
  8. // 通过 transaction_no 查询订单
  9. order.getOrderList({transaction_no: 'v4WoZ7aNyZPaZbNlFffOZLvagUKqDcOw'}).then(res => {
  10. // success
  11. }).catch(e=>{
  12. // HError 对象
  13. })
  14. // 分页查询所有订单
  15. order.offset(20).limit(20).getOrderList().then(res => {
  16. // success
  17. }).catch(e=>{
  18. // HError 对象
  19. })
  20. // 查询商品表为 1234 且状态为待支付的订单
  21. order.getOrderList({merchandise_schema_id: 1234, status: 'pending'}).then(res => {
  22. // success
  23. }).catch(e=>{
  24. // HError 对象
  25. })

HError 对象结构请参考错误码和 HError 对象

返回示例

成功时 res 对象结构如下

  1. {
  2. "data": {
  3. "meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 1},
  4. "objects": [{
  5. "created_at": "2018-10-12T17:18:10.992125",
  6. "gateway_extra_info": "{'payment_parameters': {'nonceStr': '1gAtaFdVpelLBqH1iNu6Drny159aN7CL', 'timeStamp': '1539335891', 'appId': 'xxxxxxxxx', 'signType': 'MD5', 'paySign': '9A9277CEDBE9A47B5A0E4CD664E3A6E9', 'package': 'prepay_id=wx121718113084277cb388281e2112421151'}}",
  7. "id": 47963,
  8. "ip_address": "183.61.109.211",
  9. "merchandise_description": "一条支付描述",
  10. "merchandise_record_id": null,
  11. "merchandise_schema_id": null,
  12. "merchandise_snapshot": "{}",
  13. "paid_at": null,
  14. "refund_status": null,
  15. "status": "pending",
  16. "total_cost": "398.00",
  17. "trade_no": "1gAtaEFcmu6DyHm5b0ycBSmNO302NGzA",
  18. "transaction_no": "XDiXbfLFyd8DpxSWqBUcb2jW1AvhVORC",
  19. "updated_at": "2018-10-12T17:18:11.317089"
  20. }]
  21. },
  22. "statusCode": 200
  23. }

err 对象结构请参考错误码和 HError 对象

常见错误:

错误码 err.code可能的原因
400查询参数不合法

返回参数说明

部分关键字段:

参数类型说明
created_atNumber调用 wx.BaaS.pay(object) 的时刻
merchandise_descriptionString微信支付-微信支付凭证-商品详情上的文字描述
paid_atNumber付款时间, 未支付的话为 null
statusString订单支付状态
total_costNumber发起交易请求时的支付金额
trade_noString真正的交易 ID, 业务方在微信后台对账时可看到此字段
transaction_noString知晓云平台所记录的流水号

wx.BaaS.order(OBJECT) API 已不推荐使用,后期 JS SDK 可能会移除此 API

通过 BaaS SDK 提供的 wx.BaaS.order(OBJECT) 方法, 可查询到交易的详细信息。典型的使用场景为: 调用 wx.BaaS.pay(object) 发起支付, 在成功回调中获取到 流水号, 在要路由到新的页面时带上此 ID, 在新页面的 onLoad 方法中获取到该 ID, 从而使用此 ID 获取交易的详细信息。

OBJECT 参数说明

参数类型必填说明
transactionIDStringYBaaS 平台所记录的流水号

返回参数说明

部分关键字段:

参数类型说明
created_atNumber调用 wx.BaaS.pay(object) 的时刻
merchandise_descriptionString微信支付-微信支付凭证-商品详情上的文字描述
paid_atNumber付款时间, 未支付的话为 null
statusString订单支付状态
total_costNumber发起交易请求时的支付金额
trade_noString真正的交易 ID, 业务方在微信后台对账时可看到此字段
transaction_noString知晓云平台所记录的流水号

示例代码

  1. let transactionID = "iMiTAsOrgjDKItmKifWzzayHAwneYwYo"
  2. let params = { transactionID }
  3. wx.BaaS.order(params).then(res => {
  4. // 注: 只要是服务器有返回的情况都会进入 success,这是微信的处理方式与 BaaS 服务(器)无关
  5. }, err => {
  6. // 注:只有发生网络异常等其他系统级别的错误才会进入这里
  7. })