- update wechatpayopen

master
李光春 2 years ago
parent 6511308ae7
commit fa00a0a875

@ -28,7 +28,7 @@ type CertificatesResult struct {
Err error // 错误
}
func NewCertificatesResult(result CertificatesResponse, body []byte, http gorequest.Response, err error) *CertificatesResult {
func newCertificatesResult(result CertificatesResponse, body []byte, http gorequest.Response, err error) *CertificatesResult {
return &CertificatesResult{Result: result, Body: body, Http: http, Err: err}
}
@ -36,12 +36,12 @@ func NewCertificatesResult(result CertificatesResponse, body []byte, http gorequ
// https://pay.weixin.qq.com/wiki/doc/apiv3/apis/wechatpay5_1.shtml
func (c *Client) Certificates() *CertificatesResult {
// 请求
request, err := c.request("https://api.mch.weixin.qq.com/v3/certificates", map[string]interface{}{}, http.MethodGet)
request, err := c.request(apiUrl+"/v3/certificates", map[string]interface{}{}, http.MethodGet)
if err != nil {
return NewCertificatesResult(CertificatesResponse{}, request.ResponseBody, request, err)
return newCertificatesResult(CertificatesResponse{}, request.ResponseBody, request, err)
}
// 定义
var response CertificatesResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewCertificatesResult(response, request.ResponseBody, request, err)
return newCertificatesResult(response, request.ResponseBody, request, err)
}

@ -22,29 +22,31 @@ type ConfigClient struct {
// Client 微信支付服务
type Client struct {
client *gorequest.App // 请求客户端
log *golog.Api // 日志服务
logTableName string // 日志表名
logStatus bool // 日志状态
config *ConfigClient // 配置
client *gorequest.App // 请求客户端
log *golog.ApiClient // 日志服务
logStatus bool // 日志状态
config *ConfigClient // 配置
}
// NewClient 实例化
func NewClient(config *ConfigClient) *Client {
func NewClient(config *ConfigClient) (*Client, error) {
var err error
c := &Client{config: config}
c.client = gorequest.NewHttp()
if c.config.PgsqlDb != nil {
c.logStatus = true
c.logTableName = "wechatpayopen"
c.log = golog.NewApi(&golog.ApiConfig{
c.log, err = golog.NewApiClient(&golog.ConfigApiClient{
Db: c.config.PgsqlDb,
TableName: c.logTableName,
TableName: logTable,
})
if err != nil {
return nil, err
}
}
return c
return c, nil
}
// SubConfig 子商户配置
@ -53,45 +55,3 @@ func (c *Client) SubConfig(subAppid, subMchId string) *Client {
c.config.SubMchId = subMchId
return c
}
func (c *Client) request(url string, params map[string]interface{}, method string) (resp gorequest.Response, err error) {
// 认证
authorization, err := c.authorization(method, params, url)
if err != nil {
return gorequest.Response{}, err
}
// 创建请求
client := c.client
// 设置请求地址
client.SetUri(url)
// 设置方式
client.SetMethod(method)
// 设置JSON格式
client.SetContentTypeJson()
// 设置参数
client.SetParams(params)
// 设置头部
client.SetHeader("Authorization", authorization)
client.SetHeader("Accept", "application/json")
client.SetHeader("Accept-Language", "zh-CN")
// 发起请求
request, err := client.Request()
if err != nil {
return gorequest.Response{}, err
}
// 日志
if c.logStatus == true {
go c.postgresqlLog(request)
}
return request, err
}

@ -4,10 +4,14 @@ import "time"
// 微信支付 API 地址
const (
WechatPayAPIServer = "https://api.mch.weixin.qq.com" // 微信支付 API 地址
apiUrl = "https://api.mch.weixin.qq.com"
WechatPayAPIServerBackup = "https://api2.mch.weixin.qq.com" // 微信支付 API 备份地址
)
const (
logTable = "wechatpayopen"
)
// SDK 相关信息
const (
Version = "1.0.1" // SDK 版本

@ -58,7 +58,7 @@ type PayPartnerTransactionsIdResult struct {
Err error // 错误
}
func NewPayPartnerTransactionsIdResult(result PayPartnerTransactionsIdResponse, body []byte, http gorequest.Response, err error) *PayPartnerTransactionsIdResult {
func newPayPartnerTransactionsIdResult(result PayPartnerTransactionsIdResponse, body []byte, http gorequest.Response, err error) *PayPartnerTransactionsIdResult {
return &PayPartnerTransactionsIdResult{Result: result, Body: body, Http: http, Err: err}
}
@ -69,12 +69,12 @@ func (c *Client) PayPartnerTransactionsId(transactionId string) *PayPartnerTrans
params := gorequest.NewParams()
// 请求
// 请求
request, err := c.request(fmt.Sprintf("https://api.mch.weixin.qq.com/v3/pay/partner/transactions/id/%s?sp_mchid=%s&sub_mchid=%s", transactionId, c.config.SpMchId, c.config.SubMchId), params, http.MethodGet)
request, err := c.request(fmt.Sprintf(apiUrl+"/v3/pay/partner/transactions/id/%s?sp_mchid=%s&sub_mchid=%s", transactionId, c.config.SpMchId, c.config.SubMchId), params, http.MethodGet)
if err != nil {
return NewPayPartnerTransactionsIdResult(PayPartnerTransactionsIdResponse{}, request.ResponseBody, request, err)
return newPayPartnerTransactionsIdResult(PayPartnerTransactionsIdResponse{}, request.ResponseBody, request, err)
}
// 定义
var response PayPartnerTransactionsIdResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewPayPartnerTransactionsIdResult(response, request.ResponseBody, request, err)
return newPayPartnerTransactionsIdResult(response, request.ResponseBody, request, err)
}

@ -17,7 +17,7 @@ type PayPartnerTransactionsJsapiResult struct {
Err error // 错误
}
func NewPayPartnerTransactionsJsapiResult(result PayPartnerTransactionsJsapiResponse, body []byte, http gorequest.Response, err error) *PayPartnerTransactionsJsapiResult {
func newPayPartnerTransactionsJsapiResult(result PayPartnerTransactionsJsapiResponse, body []byte, http gorequest.Response, err error) *PayPartnerTransactionsJsapiResult {
return &PayPartnerTransactionsJsapiResult{Result: result, Body: body, Http: http, Err: err}
}
@ -31,12 +31,12 @@ func (c *Client) PayPartnerTransactionsJsapi(notMustParams ...gorequest.Params)
params.Set("sub_appid", c.config.SubAppid) // 子商户应用ID
params.Set("sub_mchid", c.config.SubMchId) // 子商户号
// 请求
request, err := c.request("https://api.mch.weixin.qq.com/v3/pay/partner/transactions/jsapi", params, http.MethodPost)
request, err := c.request(apiUrl+"/v3/pay/partner/transactions/jsapi", params, http.MethodPost)
if err != nil {
return NewPayPartnerTransactionsJsapiResult(PayPartnerTransactionsJsapiResponse{}, request.ResponseBody, request, err)
return newPayPartnerTransactionsJsapiResult(PayPartnerTransactionsJsapiResponse{}, request.ResponseBody, request, err)
}
// 定义
var response PayPartnerTransactionsJsapiResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewPayPartnerTransactionsJsapiResult(response, request.ResponseBody, request, err)
return newPayPartnerTransactionsJsapiResult(response, request.ResponseBody, request, err)
}

@ -12,7 +12,7 @@ type PayPartnerTransactionsOutTradeNoCloseResult struct {
Err error // 错误
}
func NewPayPartnerTransactionsOutTradeNoCloseResult(body []byte, http gorequest.Response, err error) *PayPartnerTransactionsOutTradeNoCloseResult {
func newPayPartnerTransactionsOutTradeNoCloseResult(body []byte, http gorequest.Response, err error) *PayPartnerTransactionsOutTradeNoCloseResult {
return &PayPartnerTransactionsOutTradeNoCloseResult{Body: body, Http: http, Err: err}
}
@ -24,9 +24,9 @@ func (c *Client) PayPartnerTransactionsOutTradeNoClose(outTradeNo string) *PayPa
params.Set("sp_mchid", c.config.SpMchId) // 服务商户号
params.Set("sub_mchid", c.config.SubMchId) // 子商户号
// 请求
request, err := c.request(fmt.Sprintf("https://api.mch.weixin.qq.com/v3/pay/partner/transactions/out-trade-no/%s/close", outTradeNo), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/v3/pay/partner/transactions/out-trade-no/%s/close", outTradeNo), params, http.MethodPost)
if err != nil {
return NewPayPartnerTransactionsOutTradeNoCloseResult(request.ResponseBody, request, err)
return newPayPartnerTransactionsOutTradeNoCloseResult(request.ResponseBody, request, err)
}
return NewPayPartnerTransactionsOutTradeNoCloseResult(request.ResponseBody, request, err)
return newPayPartnerTransactionsOutTradeNoCloseResult(request.ResponseBody, request, err)
}

@ -61,7 +61,7 @@ type PayPartnerTransactionsOutTradeNoResult struct {
Err error // 错误
}
func NewPayPartnerTransactionsOutTradeNoResult(result PayPartnerTransactionsOutTradeNoResponse, body []byte, http gorequest.Response, err error) *PayPartnerTransactionsOutTradeNoResult {
func newPayPartnerTransactionsOutTradeNoResult(result PayPartnerTransactionsOutTradeNoResponse, body []byte, http gorequest.Response, err error) *PayPartnerTransactionsOutTradeNoResult {
return &PayPartnerTransactionsOutTradeNoResult{Result: result, Body: body, Http: http, Err: err}
}
@ -71,12 +71,12 @@ func (c *Client) PayPartnerTransactionsOutTradeNo(outTradeNo string) *PayPartner
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request(fmt.Sprintf("https://api.mch.weixin.qq.com/v3/pay/partner/transactions/out-trade-no/%s?sp_mchid=%s&sub_mchid=%s", outTradeNo, c.config.SpMchId, c.config.SubMchId), params, http.MethodGet)
request, err := c.request(fmt.Sprintf(apiUrl+"/v3/pay/partner/transactions/out-trade-no/%s?sp_mchid=%s&sub_mchid=%s", outTradeNo, c.config.SpMchId, c.config.SubMchId), params, http.MethodGet)
if err != nil {
return NewPayPartnerTransactionsOutTradeNoResult(PayPartnerTransactionsOutTradeNoResponse{}, request.ResponseBody, request, err)
return newPayPartnerTransactionsOutTradeNoResult(PayPartnerTransactionsOutTradeNoResponse{}, request.ResponseBody, request, err)
}
// 定义
var response PayPartnerTransactionsOutTradeNoResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewPayPartnerTransactionsOutTradeNoResult(response, request.ResponseBody, request, err)
return newPayPartnerTransactionsOutTradeNoResult(response, request.ResponseBody, request, err)
}

@ -56,7 +56,7 @@ type RefundDomesticRefundsResult struct {
Err error // 错误
}
func NewRefundDomesticRefundsResult(result RefundDomesticRefundsResponse, body []byte, http gorequest.Response, err error) *RefundDomesticRefundsResult {
func newRefundDomesticRefundsResult(result RefundDomesticRefundsResponse, body []byte, http gorequest.Response, err error) *RefundDomesticRefundsResult {
return &RefundDomesticRefundsResult{Result: result, Body: body, Http: http, Err: err}
}
@ -67,12 +67,12 @@ func (c *Client) RefundDomesticRefunds(notMustParams ...gorequest.Params) *Refun
params := gorequest.NewParamsWith(notMustParams...)
params.Set("sub_mchid", c.config.SubMchId) // 子商户号
// 请求
request, err := c.request("https://api.mch.weixin.qq.com/v3/refund/domestic/refunds", params, http.MethodPost)
request, err := c.request(apiUrl+"/v3/refund/domestic/refunds", params, http.MethodPost)
if err != nil {
return NewRefundDomesticRefundsResult(RefundDomesticRefundsResponse{}, request.ResponseBody, request, err)
return newRefundDomesticRefundsResult(RefundDomesticRefundsResponse{}, request.ResponseBody, request, err)
}
// 定义
var response RefundDomesticRefundsResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewRefundDomesticRefundsResult(response, request.ResponseBody, request, err)
return newRefundDomesticRefundsResult(response, request.ResponseBody, request, err)
}

@ -56,7 +56,7 @@ type RefundDomesticRefundsOutRefundNoResult struct {
Err error // 错误
}
func NewRefundDomesticRefundsOutRefundNoResult(result RefundDomesticRefundsOutRefundNoResponse, body []byte, http gorequest.Response, err error) *RefundDomesticRefundsOutRefundNoResult {
func newRefundDomesticRefundsOutRefundNoResult(result RefundDomesticRefundsOutRefundNoResponse, body []byte, http gorequest.Response, err error) *RefundDomesticRefundsOutRefundNoResult {
return &RefundDomesticRefundsOutRefundNoResult{Result: result, Body: body, Http: http, Err: err}
}
@ -66,12 +66,12 @@ func (c *Client) RefundDomesticRefundsOutRefundNo(outRefundNo string) *RefundDom
// 参数
params := gorequest.NewParams()
// 请求
request, err := c.request("https://api.mch.weixin.qq.com/v3/refund/domestic/refunds/"+outRefundNo+"?sub_mchid="+c.config.SubMchId, params, http.MethodGet)
request, err := c.request(apiUrl+"/v3/refund/domestic/refunds/"+outRefundNo+"?sub_mchid="+c.config.SubMchId, params, http.MethodGet)
if err != nil {
return NewRefundDomesticRefundsOutRefundNoResult(RefundDomesticRefundsOutRefundNoResponse{}, request.ResponseBody, request, err)
return newRefundDomesticRefundsOutRefundNoResult(RefundDomesticRefundsOutRefundNoResponse{}, request.ResponseBody, request, err)
}
// 定义
var response RefundDomesticRefundsOutRefundNoResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewRefundDomesticRefundsOutRefundNoResult(response, request.ResponseBody, request, err)
return newRefundDomesticRefundsOutRefundNoResult(response, request.ResponseBody, request, err)
}

@ -0,0 +1,45 @@
package wechatpayopen
import "go.dtapp.net/library/utils/gorequest"
func (c *Client) request(url string, params map[string]interface{}, method string) (gorequest.Response, error) {
// 认证
authorization, err := c.authorization(method, params, url)
if err != nil {
return gorequest.Response{}, err
}
// 创建请求
client := c.client
// 设置请求地址
client.SetUri(url)
// 设置方式
client.SetMethod(method)
// 设置JSON格式
client.SetContentTypeJson()
// 设置参数
client.SetParams(params)
// 设置头部
client.SetHeader("Authorization", authorization)
client.SetHeader("Accept", "application/json")
client.SetHeader("Accept-Language", "zh-CN")
// 发起请求
request, err := client.Request()
if err != nil {
return gorequest.Response{}, err
}
// 日志
if c.logStatus == true {
go c.postgresqlLog(request)
}
return request, err
}
Loading…
Cancel
Save