You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-library/service/wechatpayapiv2/mmpaymkttransfers.sendgroup...

56 lines
2.6 KiB

package wechatpayapiv2
import (
"context"
"encoding/xml"
"github.com/dtapps/go-library/utils/gorandom"
"github.com/dtapps/go-library/utils/gorequest"
)
type MmpaymkttransfersSendgroupredpackResponse struct {
ReturnCode string `json:"return_code" xml:"return_code"` // 返回状态码
ReturnMsg string `json:"return_msg,omitempty" xml:"return_msg,omitempty"` // 返回信息
ResultCode string `json:"result_code" xml:"result_code"` // 业务结果
ErrCode string `json:"err_code,omitempty" xml:"err_code,omitempty"` // 错误代码
ErrCodeDes string `json:"err_code_des,omitempty" xml:"err_code_des,omitempty"` // 错误代码描述
MchBillno string `json:"mch_billno" xml:"mch_billno"` // 商户订单号
MchId string `json:"mch_id" xml:"mch_id"` // 商户号
Wxappid string `json:"wxappid" xml:"wxappid"` // 公众账号appid
ReOpenid string `json:"re_openid" xml:"re_openid"` // 用户openid
TotalAmount int64 `json:"total_amount" xml:"total_amount"` // 付款金额
SendListid string `json:"send_listid" xml:"send_listid"` // 微信单号
}
type MmpaymkttransfersSendgroupredpackResult struct {
Result MmpaymkttransfersSendgroupredpackResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
}
func newMmpaymkttransfersSendgroupredpackResult(result MmpaymkttransfersSendgroupredpackResponse, body []byte, http gorequest.Response) *MmpaymkttransfersSendgroupredpackResult {
return &MmpaymkttransfersSendgroupredpackResult{Result: result, Body: body, Http: http}
}
// MmpaymkttransfersSendgroupredpack
// 现金红包 - 发放裂变红包
// https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon_sl.php?chapter=13_5&index=4
func (c *Client) MmpaymkttransfersSendgroupredpack(ctx context.Context, notMustParams ...gorequest.Params) (*MmpaymkttransfersSendgroupredpackResult, error) {
cert, err := c.P12ToPem()
// 参数
params := gorequest.NewParamsWith(notMustParams...)
params.Set("nonce_str", gorandom.Alphanumeric(32)) // 随机字符串
// 签名
params.Set("sign", c.getMd5Sign(params))
// 请求
request, err := c.request(ctx, apiUrl+"/mmpaymkttransfers/sendgroupredpack", params, true, cert)
if err != nil {
return newMmpaymkttransfersSendgroupredpackResult(MmpaymkttransfersSendgroupredpackResponse{}, request.ResponseBody, request), err
}
// 定义
var response MmpaymkttransfersSendgroupredpackResponse
err = xml.Unmarshal(request.ResponseBody, &response)
return newMmpaymkttransfersSendgroupredpackResult(response, request.ResponseBody, request), err
}