From cf114f72268b807a9da1bbe9c93bf470d29ad451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 5 Feb 2020 10:15:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E9=99=A4=E5=88=86=E8=B4=A6=E6=96=B9=E5=92=8C?= =?UTF-8?q?=E5=88=86=E8=B4=A6=E5=9B=9E=E9=80=80=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/wxpayapi/wxpayapi.go | 59 +++++++++++++++++++++++++-- platformapi/wxpayapi/wxpayapi_test.go | 15 ++++++- 2 files changed, 70 insertions(+), 4 deletions(-) diff --git a/platformapi/wxpayapi/wxpayapi.go b/platformapi/wxpayapi/wxpayapi.go index 13ebe9a0..671da3c3 100644 --- a/platformapi/wxpayapi/wxpayapi.go +++ b/platformapi/wxpayapi/wxpayapi.go @@ -291,12 +291,12 @@ type TransfersResult struct { PaymentTime string `json:"payment_time" xml:"payment_time"` } -type AddProfitSharingReceiver struct { +type ProfitSharingReceiver struct { RequestBase Receiver CData `json:"receiver" xml:"receiver"` } -type AddProfitSharingReceiverResult struct { +type ProfitSharingReceiverResult struct { ReturnCode string `json:"return_code" xml:"return_code"` ReturnMsg string `json:"return_msg" xml:"return_msg"` @@ -310,6 +310,39 @@ type AddProfitSharingReceiverResult struct { Receiver string `json:"receiver" xml:"receiver"` } +type ReturnProfitSharing struct { + RequestBase + OrderID string `json:"order_id" xml:"order_id"` + OutOrderNo string `json:"out_order_no" xml:"out_order_no"` + OutReturnNo string `json:"out_return_no" xml:"out_return_no"` + ReturnAccountType string `json:"return_account_type" xml:"return_account_type"` + ReturnAccount string `json:"return_account" xml:"return_account"` + ReturnAmount int `json:"return_amount" xml:"return_amount"` + Description string `json:"description" xml:"description"` +} + +type ReturnProfitSharingResult struct { + ReturnCode string `json:"return_code" xml:"return_code"` + ErrorCode string `json:"error_code,omitempty" xml:"error_code,omitempty"` + ErrorMsg string `json:"error_msg,omitempty" xml:"error_msg,omitempty"` + + AppID string `json:"appid" xml:"appid"` + MchID string `json:"mch_id" xml:"mch_id"` + NonceStr string `json:"nonce_str" xml:"nonce_str"` + Sign string `json:"sign" xml:"sign"` + OrderID string `json:"order_id" xml:"order_id"` + OutOrderNo string `json:"out_order_no" xml:"out_order_no"` + OutReturnNo string `json:"out_return_no" xml:"out_return_no"` + ReturnNo string `json:"return_no" xml:"return_no"` + ReturnAccountType string `json:"return_account_type" xml:"return_account_type"` + ReturnAccount string `json:"return_account" xml:"return_account"` + ReturnAmount int `json:"return_amount" xml:"return_amount"` + Description string `json:"description" xml:"description"` + Result string `json:"result" xml:"result"` + FailReason string `json:"fail_reason,omitempty" xml:"fail_reason,omitempty"` + FinishTime string `json:"finish_time" xml:"finish_time"` +} + func New(appID, appKey, mchID string, config ...*platformapi.APIConfig) *API { curConfig := platformapi.DefAPIConfig if len(config) > 0 { @@ -547,10 +580,30 @@ func (a *API) Transfers(param *Transfers) (result *TransfersResult, err error) { //添加分账接收方 //https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=27_3&index=4 -func (a *API) AddProfitSharingReceiver(param *AddProfitSharingReceiver) (result *AddProfitSharingReceiverResult, err error) { +func (a *API) AddProfitSharingReceiver(param *ProfitSharingReceiver) (result *ProfitSharingReceiverResult, err error) { retVal, err := a.AccessAPI("pay/profitsharingaddreceiver", param) if err == nil { err = a.translateResult(retVal, &result) } return result, err } + +//删除分账接收方 +//https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=27_4&index=5 +func (a *API) DeleteProfitSharingReceiver(param *ProfitSharingReceiver) (result *ProfitSharingReceiverResult, err error) { + retVal, err := a.AccessAPI("pay/profitsharingremovereceiver", param) + if err == nil { + err = a.translateResult(retVal, &result) + } + return result, err +} + +//分账回退 +//https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=27_7&index=7 +func (a *API) ReturnProfitSharing(param *ReturnProfitSharing) (result *ReturnProfitSharingResult, err error) { + retVal, err := a.AccessAPI("pay/profitsharingreturn", param) + if err == nil { + err = a.translateResult(retVal, &result) + } + return result, err +} diff --git a/platformapi/wxpayapi/wxpayapi_test.go b/platformapi/wxpayapi/wxpayapi_test.go index 2426d7c7..04cb13a0 100644 --- a/platformapi/wxpayapi/wxpayapi_test.go +++ b/platformapi/wxpayapi/wxpayapi_test.go @@ -133,7 +133,7 @@ func TestTransfers(t *testing.T) { } func TestAddProfitSharingReceiver(t *testing.T) { - result, err := api.AddProfitSharingReceiver(&AddProfitSharingReceiver{ + result, err := api.AddProfitSharingReceiver(&ProfitSharingReceiver{ Receiver: `{ "type": "PERSONAL_WECHATID", "account":"wxid_r93tvy06srbp22", @@ -146,3 +146,16 @@ func TestAddProfitSharingReceiver(t *testing.T) { } t.Log(utils.Format4Output(result, false)) } + +func TestDeleteProfitSharingReceiver(t *testing.T) { + result, err := api.DeleteProfitSharingReceiver(&ProfitSharingReceiver{ + Receiver: `{ + "type": "PERSONAL_WECHATID", + "account":"wxid_r93tvy06srbp22" + }`, + }) + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result, false)) +}