ArtisanCloud/PowerWeChat

分账响应字段缺失

moonheart opened this issue · 5 comments

文档: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter8_1_1.shtml

文档中的响应示例中的 receivers 有多个字段

{
  "transaction_id": "4208450740201411110007820472",
  "out_order_no": "P20150806125346",
  "order_id": "3008450740201411110007820472",
  "state": "FINISHED",
  "receivers": [
    {
      "amount": 100,
      "description": "分给商户1900000110",
      "type": "MERCHANT_ID",
      "account": "1900000109",
      "result": "SUCCESS",
      "fail_reason": "ACCOUNT_ABNORMAL",
      "detail_id": "36011111111111111111111",
      "create_time": "2015-05-20T13:29:35+08:00",
      "finish_time": "2015-05-20T13:29:35+08:00"
    }
  ]
}

在 PowerWeChat 中的 Receiver 缺少了一些字段

type ResponseProfitSharingOrder struct {
response.ResponsePayment
TransactionID string `json:"transaction_id"`
OutOrderNO string `json:"out_order_no"`
OrderID string `json:"order_id"`
State string `json:"state"`
Receivers []*request.Receiver `json:"receivers"`
}

type Receiver struct {
Type string `json:"type"`
Account string `json:"account"`
Name string `json:"name,omitempty"`
Amount int64 `json:"amount,omitempty"`
Description string `json:"description,omitempty"`
}

谢谢你的发现的问题,我看了一下你的写法,没问题的
但是我现在为了保留以前的写法,要兼容之前的写法,所以就直接补充了缺失的字段。

不过还是谢谢你的PR

请查看版本v3.0.17

有问题,可以直接加微信群,提问,谢谢!

你好, 我看到这个 Receiver 在分账请求和响应都用到了, 但是分账请求的 receiver 没有这么多参数, 这和微信官方不一致, 可能会造成一些误用.

{
  "appid": "wx8888888888888888",
  "transaction_id": "4208450740201411110007820472",
  "out_order_no": "P20150806125346",
  "receivers": [
    {
      "type": "MERCHANT_ID",
      "account": "86693852",
      "name": "hu89ohu89ohu89o",
      "amount": 888,
      "description": "分给商户A"
    }
  ],
  "unfreeze_unsplit": true
}

了解,如果是要区分的话,那么我可能把字段完整的receiver放到response里,request里还是保留原先简单的结构字段中。
我之所以放在同一个结构体重,原因我对比了微信的request和response的结构体,request是被包含在response里,所以可以用同一个结构体。而且我加了",omitempty",所以应该不会影响使用。

当然如果你要是还是觉得会误用,我可以分开在request和response里。

如果没问题的话,我们就暂时close这个issue?

好的, 不区分的话也能正常使用