|
@@ -24,7 +24,7 @@ type AliPayClient struct {
|
|
|
IsProd bool
|
|
IsProd bool
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//初始化支付宝客户端
|
|
|
|
|
|
|
+// 初始化支付宝客户端
|
|
|
// 注意:如果使用支付宝公钥证书验签,请设置 支付宝根证书SN(client.SetAlipayRootCertSN())、应用公钥证书SN(client.SetAppCertSN())
|
|
// 注意:如果使用支付宝公钥证书验签,请设置 支付宝根证书SN(client.SetAlipayRootCertSN())、应用公钥证书SN(client.SetAppCertSN())
|
|
|
// appId:应用ID
|
|
// appId:应用ID
|
|
|
// PrivateKey:应用私钥
|
|
// PrivateKey:应用私钥
|
|
@@ -37,16 +37,13 @@ func NewAliPayClient(appId, privateKey string, isProd bool) (client *AliPayClien
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.fastpay.refund.query(统一收单交易退款查询)
|
|
|
|
|
|
|
+// alipay.trade.fastpay.refund.query(统一收单交易退款查询)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query
|
|
|
func (a *AliPayClient) AliPayTradeFastPayRefundQuery(body BodyMap) (aliRsp *AliPayTradeFastpayRefundQueryResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradeFastPayRefundQuery(body BodyMap) (aliRsp *AliPayTradeFastpayRefundQueryResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_trade_no")
|
|
|
|
|
- p2 = body.Get("trade_no")
|
|
|
|
|
- if p1 == null && p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null && body.Get("trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.fastpay.refund.query"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.fastpay.refund.query"); err != nil {
|
|
@@ -56,24 +53,21 @@ func (a *AliPayClient) AliPayTradeFastPayRefundQuery(body BodyMap) (aliRsp *AliP
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradeFastpayRefundQueryResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradeFastpayRefundQueryResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.order.settle(统一收单交易结算接口)
|
|
|
|
|
|
|
+// alipay.trade.order.settle(统一收单交易结算接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.order.settle
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.order.settle
|
|
|
func (a *AliPayClient) AliPayTradeOrderSettle(body BodyMap) (aliRsp *AliPayTradeOrderSettleResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradeOrderSettle(body BodyMap) (aliRsp *AliPayTradeOrderSettleResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_request_no")
|
|
|
|
|
- p2 = body.Get("trade_no")
|
|
|
|
|
- if p1 == null || p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_request_no") == null || body.Get("trade_no") == null {
|
|
|
return nil, errors.New("out_request_no or trade_no are not allowed to be null")
|
|
return nil, errors.New("out_request_no or trade_no are not allowed to be null")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.order.settle"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.order.settle"); err != nil {
|
|
@@ -83,24 +77,21 @@ func (a *AliPayClient) AliPayTradeOrderSettle(body BodyMap) (aliRsp *AliPayTrade
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradeOrderSettleResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradeOrderSettleResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.create(统一收单交易创建接口)
|
|
|
|
|
|
|
+// alipay.trade.create(统一收单交易创建接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.create
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.create
|
|
|
func (a *AliPayClient) AliPayTradeCreate(body BodyMap) (aliRsp *AliPayTradeCreateResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradeCreate(body BodyMap) (aliRsp *AliPayTradeCreateResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_trade_no")
|
|
|
|
|
- p2 = body.Get("buyer_id")
|
|
|
|
|
- if p1 == null && p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null && body.Get("buyer_id") == null {
|
|
|
return nil, errors.New("out_trade_no and buyer_id are not allowed to be null at the same time")
|
|
return nil, errors.New("out_trade_no and buyer_id are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.create"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.create"); err != nil {
|
|
@@ -110,24 +101,21 @@ func (a *AliPayClient) AliPayTradeCreate(body BodyMap) (aliRsp *AliPayTradeCreat
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradeCreateResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradeCreateResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.close(统一收单交易关闭接口)
|
|
|
|
|
|
|
+// alipay.trade.close(统一收单交易关闭接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.close
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.close
|
|
|
func (a *AliPayClient) AliPayTradeClose(body BodyMap) (aliRsp *AliPayTradeCloseResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradeClose(body BodyMap) (aliRsp *AliPayTradeCloseResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_trade_no")
|
|
|
|
|
- p2 = body.Get("trade_no")
|
|
|
|
|
- if p1 == null && p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null && body.Get("trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.close"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.close"); err != nil {
|
|
@@ -137,24 +125,21 @@ func (a *AliPayClient) AliPayTradeClose(body BodyMap) (aliRsp *AliPayTradeCloseR
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradeCloseResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradeCloseResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.cancel(统一收单交易撤销接口)
|
|
|
|
|
|
|
+// alipay.trade.cancel(统一收单交易撤销接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.cancel
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.cancel
|
|
|
func (a *AliPayClient) AliPayTradeCancel(body BodyMap) (aliRsp *AliPayTradeCancelResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradeCancel(body BodyMap) (aliRsp *AliPayTradeCancelResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_trade_no")
|
|
|
|
|
- p2 = body.Get("trade_no")
|
|
|
|
|
- if p1 == null && p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null && body.Get("trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.cancel"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.cancel"); err != nil {
|
|
@@ -164,24 +149,21 @@ func (a *AliPayClient) AliPayTradeCancel(body BodyMap) (aliRsp *AliPayTradeCance
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradeCancelResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradeCancelResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.refund(统一收单交易退款接口)
|
|
|
|
|
|
|
+// alipay.trade.refund(统一收单交易退款接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.refund
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.refund
|
|
|
func (a *AliPayClient) AliPayTradeRefund(body BodyMap) (aliRsp *AliPayTradeRefundResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradeRefund(body BodyMap) (aliRsp *AliPayTradeRefundResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_trade_no")
|
|
|
|
|
- p2 = body.Get("trade_no")
|
|
|
|
|
- if p1 == null && p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null && body.Get("trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.refund"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.refund"); err != nil {
|
|
@@ -191,24 +173,21 @@ func (a *AliPayClient) AliPayTradeRefund(body BodyMap) (aliRsp *AliPayTradeRefun
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AlipayTradeRefundResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AlipayTradeRefundResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.refund(统一收单退款页面接口)
|
|
|
|
|
|
|
+// alipay.trade.refund(统一收单退款页面接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.page.refund
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.page.refund
|
|
|
func (a *AliPayClient) AliPayTradePageRefund(body BodyMap) (aliRsp *AliPayTradePageRefundResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradePageRefund(body BodyMap) (aliRsp *AliPayTradePageRefundResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_trade_no")
|
|
|
|
|
- p2 = body.Get("trade_no")
|
|
|
|
|
- if p1 == null && p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null && body.Get("trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, " alipay.trade.page.refund"); err != nil {
|
|
if bs, err = a.doAliPay(body, " alipay.trade.page.refund"); err != nil {
|
|
@@ -218,20 +197,19 @@ func (a *AliPayClient) AliPayTradePageRefund(body BodyMap) (aliRsp *AliPayTradeP
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradePageRefundResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradePageRefundResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.precreate(统一收单线下交易预创建)
|
|
|
|
|
|
|
+// alipay.trade.precreate(统一收单线下交易预创建)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.precreate
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.precreate
|
|
|
func (a *AliPayClient) AliPayTradePrecreate(body BodyMap) (aliRsp *AlipayTradePrecreateResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradePrecreate(body BodyMap) (aliRsp *AlipayTradePrecreateResponse, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- p := body.Get("out_trade_no")
|
|
|
|
|
- if p == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no is not allowed to be null")
|
|
return nil, errors.New("out_trade_no is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.precreate"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.precreate"); err != nil {
|
|
@@ -241,20 +219,19 @@ func (a *AliPayClient) AliPayTradePrecreate(body BodyMap) (aliRsp *AlipayTradePr
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AlipayTradePrecreateResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AlipayTradePrecreateResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.pay(统一收单交易支付接口)
|
|
|
|
|
|
|
+// alipay.trade.pay(统一收单交易支付接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.pay
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.pay
|
|
|
func (a *AliPayClient) AliPayTradePay(body BodyMap) (aliRsp *AliPayTradePayResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradePay(body BodyMap) (aliRsp *AliPayTradePayResponse, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- p := body.Get("out_trade_no")
|
|
|
|
|
- if p == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no is not allowed to be null")
|
|
return nil, errors.New("out_trade_no is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.pay"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.pay"); err != nil {
|
|
@@ -264,24 +241,21 @@ func (a *AliPayClient) AliPayTradePay(body BodyMap) (aliRsp *AliPayTradePayRespo
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradePayResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradePayResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.query(统一收单线下交易查询)
|
|
|
|
|
|
|
+// alipay.trade.query(统一收单线下交易查询)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.query
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.query
|
|
|
func (a *AliPayClient) AliPayTradeQuery(body BodyMap) (aliRsp *AliPayTradeQueryResponse, err error) {
|
|
func (a *AliPayClient) AliPayTradeQuery(body BodyMap) (aliRsp *AliPayTradeQueryResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- p1 = body.Get("out_trade_no")
|
|
|
|
|
- p2 = body.Get("trade_no")
|
|
|
|
|
- if p1 == null && p2 == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null && body.Get("trade_no") == null {
|
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
return nil, errors.New("out_trade_no and trade_no are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.query"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.query"); err != nil {
|
|
@@ -291,20 +265,19 @@ func (a *AliPayClient) AliPayTradeQuery(body BodyMap) (aliRsp *AliPayTradeQueryR
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPayTradeQueryResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AliPayTradeQueryResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.app.pay(app支付接口2.0)
|
|
|
|
|
|
|
+// alipay.trade.app.pay(app支付接口2.0)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.app.pay
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.app.pay
|
|
|
func (a *AliPayClient) AliPayTradeAppPay(body BodyMap) (payParam string, err error) {
|
|
func (a *AliPayClient) AliPayTradeAppPay(body BodyMap) (payParam string, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- trade := body.Get("out_trade_no")
|
|
|
|
|
- if trade == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null {
|
|
|
return null, errors.New("out_trade_no is not allowed to be null")
|
|
return null, errors.New("out_trade_no is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.trade.app.pay"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.trade.app.pay"); err != nil {
|
|
@@ -314,12 +287,11 @@ func (a *AliPayClient) AliPayTradeAppPay(body BodyMap) (payParam string, err err
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.wap.pay(手机网站支付接口2.0)
|
|
|
|
|
|
|
+// alipay.trade.wap.pay(手机网站支付接口2.0)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.wap.pay
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.wap.pay
|
|
|
func (a *AliPayClient) AliPayTradeWapPay(body BodyMap) (payUrl string, err error) {
|
|
func (a *AliPayClient) AliPayTradeWapPay(body BodyMap) (payUrl string, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- trade := body.Get("out_trade_no")
|
|
|
|
|
- if trade == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null {
|
|
|
return null, errors.New("out_trade_no is not allowed to be null")
|
|
return null, errors.New("out_trade_no is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
body.Set("product_code", "QUICK_WAP_WAY")
|
|
body.Set("product_code", "QUICK_WAP_WAY")
|
|
@@ -330,12 +302,11 @@ func (a *AliPayClient) AliPayTradeWapPay(body BodyMap) (payUrl string, err error
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.page.pay(统一收单下单并支付页面接口)
|
|
|
|
|
|
|
+// alipay.trade.page.pay(统一收单下单并支付页面接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.page.pay
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.page.pay
|
|
|
func (a *AliPayClient) AliPayTradePagePay(body BodyMap) (payUrl string, err error) {
|
|
func (a *AliPayClient) AliPayTradePagePay(body BodyMap) (payUrl string, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- trade := body.Get("out_trade_no")
|
|
|
|
|
- if trade == null {
|
|
|
|
|
|
|
+ if body.Get("out_trade_no") == null {
|
|
|
return null, errors.New("out_trade_no is not allowed to be null")
|
|
return null, errors.New("out_trade_no is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
body.Set("product_code", "FAST_INSTANT_TRADE_PAY")
|
|
body.Set("product_code", "FAST_INSTANT_TRADE_PAY")
|
|
@@ -346,12 +317,11 @@ func (a *AliPayClient) AliPayTradePagePay(body BodyMap) (payUrl string, err erro
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.fund.trans.toaccount.transfer(单笔转账到支付宝账户接口)
|
|
|
|
|
|
|
+// alipay.fund.trans.toaccount.transfer(单笔转账到支付宝账户接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
|
|
// 文档地址:https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
|
|
|
func (a *AliPayClient) AlipayFundTransToaccountTransfer(body BodyMap) (aliRsp *AlipayFundTransToaccountTransferResponse, err error) {
|
|
func (a *AliPayClient) AlipayFundTransToaccountTransfer(body BodyMap) (aliRsp *AlipayFundTransToaccountTransferResponse, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- trade1 := body.Get("out_biz_no")
|
|
|
|
|
- if trade1 == null {
|
|
|
|
|
|
|
+ if body.Get("out_biz_no") == null {
|
|
|
return nil, errors.New("out_biz_no is not allowed to be null")
|
|
return nil, errors.New("out_biz_no is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.fund.trans.toaccount.transfer"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.fund.trans.toaccount.transfer"); err != nil {
|
|
@@ -361,31 +331,28 @@ func (a *AliPayClient) AlipayFundTransToaccountTransfer(body BodyMap) (aliRsp *A
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AlipayFundTransToaccountTransferResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AlipayFundTransToaccountTransferResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.trade.orderinfo.sync(支付宝订单信息同步接口)
|
|
|
|
|
|
|
+// alipay.trade.orderinfo.sync(支付宝订单信息同步接口)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.orderinfo.sync
|
|
// 文档地址:https://docs.open.alipay.com/api_1/alipay.trade.orderinfo.sync
|
|
|
func (a *AliPayClient) AliPayTradeOrderinfoSync(body BodyMap) {
|
|
func (a *AliPayClient) AliPayTradeOrderinfoSync(body BodyMap) {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.system.oauth.token(换取授权访问令牌)
|
|
|
|
|
|
|
+// alipay.system.oauth.token(换取授权访问令牌)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_9/alipay.system.oauth.token
|
|
// 文档地址:https://docs.open.alipay.com/api_9/alipay.system.oauth.token
|
|
|
func (a *AliPayClient) AliPaySystemOauthToken(body BodyMap) (aliRsp *AliPaySystemOauthTokenResponse, err error) {
|
|
func (a *AliPayClient) AliPaySystemOauthToken(body BodyMap) (aliRsp *AliPaySystemOauthTokenResponse, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- grantType := body.Get("grant_type")
|
|
|
|
|
- if grantType == null {
|
|
|
|
|
|
|
+ if body.Get("grant_type") == null {
|
|
|
return nil, errors.New("grant_type is not allowed to be null")
|
|
return nil, errors.New("grant_type is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
- code := body.Get("code")
|
|
|
|
|
- refreshToken := body.Get("refresh_token")
|
|
|
|
|
- if code == null && refreshToken == null {
|
|
|
|
|
|
|
+ if body.Get("code") == null && body.Get("refresh_token") == null {
|
|
|
return nil, errors.New("code and refresh_token are not allowed to be null at the same time")
|
|
return nil, errors.New("code and refresh_token are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = aliPaySystemOauthToken(a.AppId, a.PrivateKey, body, "alipay.system.oauth.token", a.IsProd); err != nil {
|
|
if bs, err = aliPaySystemOauthToken(a.AppId, a.PrivateKey, body, "alipay.system.oauth.token", a.IsProd); err != nil {
|
|
@@ -395,7 +362,7 @@ func (a *AliPayClient) AliPaySystemOauthToken(body BodyMap) (aliRsp *AliPaySyste
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AliPaySystemOauthTokenResponse.AccessToken == null {
|
|
|
|
|
|
|
+ if aliRsp.Response.AccessToken == null {
|
|
|
info := aliRsp.ErrorResponse
|
|
info := aliRsp.ErrorResponse
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
@@ -403,7 +370,7 @@ func (a *AliPayClient) AliPaySystemOauthToken(body BodyMap) (aliRsp *AliPaySyste
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.user.info.share(支付宝会员授权信息查询接口)
|
|
|
|
|
|
|
+// alipay.user.info.share(支付宝会员授权信息查询接口)
|
|
|
// body:此接口无需body参数
|
|
// body:此接口无需body参数
|
|
|
// 文档地址:https://docs.open.alipay.com/api_2/alipay.user.info.share
|
|
// 文档地址:https://docs.open.alipay.com/api_2/alipay.user.info.share
|
|
|
func (a *AliPayClient) AlipayUserInfoShare() (aliRsp *AlipayUserInfoShareResponse, err error) {
|
|
func (a *AliPayClient) AlipayUserInfoShare() (aliRsp *AlipayUserInfoShareResponse, err error) {
|
|
@@ -415,53 +382,49 @@ func (a *AliPayClient) AlipayUserInfoShare() (aliRsp *AlipayUserInfoShareRespons
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AlipayUserInfoShareResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AlipayUserInfoShareResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//alipay.open.auth.token.app(换取应用授权令牌)
|
|
|
|
|
|
|
+// alipay.open.auth.token.app(换取应用授权令牌)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_9/alipay.open.auth.token.app
|
|
// 文档地址:https://docs.open.alipay.com/api_9/alipay.open.auth.token.app
|
|
|
-func (a *AliPayClient) AlipayOpenAuthTokenApp(body BodyMap) (aliRsp *AlipayOpenAuthTokenAppResponse, err error) {
|
|
|
|
|
|
|
+func (a *AliPayClient) AliPayOpenAuthTokenApp(body BodyMap) (aliRsp *AliPayOpenAuthTokenAppResponse, err error) {
|
|
|
var bs []byte
|
|
var bs []byte
|
|
|
- grantType := body.Get("grant_type")
|
|
|
|
|
- if grantType == null {
|
|
|
|
|
|
|
+ if body.Get("grant_type") == null {
|
|
|
return nil, errors.New("grant_type is not allowed to be null")
|
|
return nil, errors.New("grant_type is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
- code := body.Get("code")
|
|
|
|
|
- refreshToken := body.Get("refresh_token")
|
|
|
|
|
- if code == null && refreshToken == null {
|
|
|
|
|
|
|
+ if body.Get("code") == null && body.Get("refresh_token") == null {
|
|
|
return nil, errors.New("code and refresh_token are not allowed to be null at the same time")
|
|
return nil, errors.New("code and refresh_token are not allowed to be null at the same time")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "alipay.open.auth.token.app"); err != nil {
|
|
if bs, err = a.doAliPay(body, "alipay.open.auth.token.app"); err != nil {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- aliRsp = new(AlipayOpenAuthTokenAppResponse)
|
|
|
|
|
|
|
+ aliRsp = new(AliPayOpenAuthTokenAppResponse)
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.AlipayOpenAuthTokenAppResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.AlipayOpenAuthTokenAppResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//zhima.credit.score.get(芝麻分)
|
|
|
|
|
|
|
+// zhima.credit.score.get(芝麻分)
|
|
|
// 文档地址:https://docs.open.alipay.com/api_8/zhima.credit.score.get
|
|
// 文档地址:https://docs.open.alipay.com/api_8/zhima.credit.score.get
|
|
|
func (a *AliPayClient) ZhimaCreditScoreGet(body BodyMap) (aliRsp *ZhimaCreditScoreGetResponse, err error) {
|
|
func (a *AliPayClient) ZhimaCreditScoreGet(body BodyMap) (aliRsp *ZhimaCreditScoreGetResponse, err error) {
|
|
|
var (
|
|
var (
|
|
|
- p1, p2 string
|
|
|
|
|
- bs []byte
|
|
|
|
|
|
|
+ bs []byte
|
|
|
)
|
|
)
|
|
|
- if p1 = body.Get("product_code"); p1 == null {
|
|
|
|
|
|
|
+ if body.Get("product_code") == null {
|
|
|
body.Set("product_code", "w1010100100000000001")
|
|
body.Set("product_code", "w1010100100000000001")
|
|
|
}
|
|
}
|
|
|
- if p2 = body.Get("transaction_id"); p2 == null {
|
|
|
|
|
|
|
+ if body.Get("transaction_id") == null {
|
|
|
return nil, errors.New("transaction_id is not allowed to be null")
|
|
return nil, errors.New("transaction_id is not allowed to be null")
|
|
|
}
|
|
}
|
|
|
if bs, err = a.doAliPay(body, "zhima.credit.score.get"); err != nil {
|
|
if bs, err = a.doAliPay(body, "zhima.credit.score.get"); err != nil {
|
|
@@ -471,15 +434,96 @@ func (a *AliPayClient) ZhimaCreditScoreGet(body BodyMap) (aliRsp *ZhimaCreditSco
|
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
- if aliRsp.ZhimaCreditScoreGetResponse.Code != "10000" {
|
|
|
|
|
- info := aliRsp.ZhimaCreditScoreGetResponse
|
|
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
}
|
|
}
|
|
|
aliRsp.SignData = getSignData(bs)
|
|
aliRsp.SignData = getSignData(bs)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//向支付宝发送请求
|
|
|
|
|
|
|
+// alipay.user.certify.open.initialize(身份认证初始化服务)
|
|
|
|
|
+// 文档地址:https://docs.open.alipay.com/api_2/alipay.user.certify.open.initialize
|
|
|
|
|
+func (a *AliPayClient) AliPayUserCertifyOpenInit(body BodyMap) (aliRsp *AliPayUserCertifyOpenInitResponse, err error) {
|
|
|
|
|
+ var (
|
|
|
|
|
+ bs []byte
|
|
|
|
|
+ )
|
|
|
|
|
+ if body.Get("biz_code") == null {
|
|
|
|
|
+ return nil, errors.New("biz_code is not allowed to be null")
|
|
|
|
|
+ }
|
|
|
|
|
+ if body.Get("outer_order_no") == null {
|
|
|
|
|
+ return nil, errors.New("outer_order_no is not allowed to be null")
|
|
|
|
|
+ }
|
|
|
|
|
+ if body.Get("identity_param") == null {
|
|
|
|
|
+ return nil, errors.New("identity_param is not allowed to be null")
|
|
|
|
|
+ }
|
|
|
|
|
+ if body.Get("merchant_config") == null {
|
|
|
|
|
+ return nil, errors.New("merchant_config is not allowed to be null")
|
|
|
|
|
+ }
|
|
|
|
|
+ if bs, err = a.doAliPay(body, "alipay.user.certify.open.initialize"); err != nil {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ aliRsp = new(AliPayUserCertifyOpenInitResponse)
|
|
|
|
|
+ if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
|
|
+ return nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
|
|
+ return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
|
|
+ }
|
|
|
|
|
+ aliRsp.SignData = getSignData(bs)
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// alipay.user.certify.open.certify(身份认证开始认证)
|
|
|
|
|
+// 文档地址:https://docs.open.alipay.com/api_2/alipay.user.certify.open.certify
|
|
|
|
|
+func (a *AliPayClient) AliPayUserCertifyOpenCertify(body BodyMap) (aliRsp *AliPayUserCertifyOpenCertifyResponse, err error) {
|
|
|
|
|
+ var (
|
|
|
|
|
+ bs []byte
|
|
|
|
|
+ )
|
|
|
|
|
+ if body.Get("certify_id") == null {
|
|
|
|
|
+ return nil, errors.New("certify_id is not allowed to be null")
|
|
|
|
|
+ }
|
|
|
|
|
+ if bs, err = a.doAliPay(body, "alipay.user.certify.open.certify"); err != nil {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ aliRsp = new(AliPayUserCertifyOpenCertifyResponse)
|
|
|
|
|
+ if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
|
|
+ return nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
|
|
+ return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
|
|
+ }
|
|
|
|
|
+ aliRsp.SignData = getSignData(bs)
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// alipay.user.certify.open.query(身份认证记录查询)
|
|
|
|
|
+// 文档地址:https://docs.open.alipay.com/api_2/alipay.user.certify.open.query
|
|
|
|
|
+func (a *AliPayClient) AliPayUserCertifyOpenQuery(body BodyMap) (aliRsp *AliPayUserCertifyOpenQueryResponse, err error) {
|
|
|
|
|
+ var (
|
|
|
|
|
+ bs []byte
|
|
|
|
|
+ )
|
|
|
|
|
+ if body.Get("certify_id") == null {
|
|
|
|
|
+ return nil, errors.New("certify_id is not allowed to be null")
|
|
|
|
|
+ }
|
|
|
|
|
+ if bs, err = a.doAliPay(body, "alipay.user.certify.open.query"); err != nil {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ aliRsp = new(AliPayUserCertifyOpenQueryResponse)
|
|
|
|
|
+ if err = json.Unmarshal(bs, aliRsp); err != nil {
|
|
|
|
|
+ return nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+ if aliRsp.Response.Code != "10000" {
|
|
|
|
|
+ info := aliRsp.Response
|
|
|
|
|
+ return nil, fmt.Errorf(`{"code":"%v","msg":"%v","sub_code":"%v","sub_msg":"%v"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
|
|
|
|
|
+ }
|
|
|
|
|
+ aliRsp.SignData = getSignData(bs)
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 向支付宝发送请求
|
|
|
func (a *AliPayClient) doAliPay(body BodyMap, method string) (bytes []byte, err error) {
|
|
func (a *AliPayClient) doAliPay(body BodyMap, method string) (bytes []byte, err error) {
|
|
|
var (
|
|
var (
|
|
|
bodyStr, sign, url, urlParam string
|
|
bodyStr, sign, url, urlParam string
|