Jerry 6 лет назад
Родитель
Сommit
9799294e20
6 измененных файлов с 28 добавлено и 16 удалено
  1. 4 0
      README.md
  2. 3 3
      alipay/client.go
  3. 9 9
      alipay/model.go
  4. 2 2
      alipay/param.go
  5. 2 2
      alipay/service_api.go
  6. 8 0
      release_note.txt

+ 4 - 0
README.md

@@ -127,14 +127,18 @@ func main() {
 * 身份认证开始认证(获取认证链接):client.UserCertifyOpenCertify()
 * 身份认证记录查询:client.UserCertifyOpenQuery()
 * 用户登陆授权:client.UserInfoAuth()
+* 支付宝商家账户当前余额查询:client.DataBillBalanceQuery()
+* 查询对账单下载地址:client.DataBillDownloadUrlQuery()
 
 ### 支付宝公共API
 
 * alipay.GetCertSN() => 获取证书SN号(app_cert_sn、alipay_cert_sn)
 * alipay.GetRootCertSN() => 获取证书SN号(alipay_root_cert_sn)
+* alipay.GetRsaSign() => 获取支付宝参数签名(参数sign值)
 * alipay.SystemOauthToken() => 换取授权访问令牌(得到access_token,user_id等信息)
 * alipay.FormatPrivateKey() => 格式化应用私钥
 * alipay.FormatPublicKey() => 格式化支付宝公钥
+* alipay.FormatURLParam() => 格式化支付宝请求URL参数
 * alipay.ParseNotifyResult() => 解析支付宝支付异步通知的参数到Struct
 * alipay.ParseNotifyResultToBodyMap() => 解析支付宝支付异步通知的参数到BodyMap
 * alipay.VerifySign() => 支付宝异步通知参数验签

+ 3 - 3
alipay/client.go

@@ -611,7 +611,7 @@ func (a *Client) UserInfoAuth(bm gopay.BodyMap) (aliRsp *UserInfoAuthResponse, e
 }
 
 // alipay.data.bill.balance.query(支付宝商家账户当前余额查询)
-// https://docs.open.alipay.com/api_15/alipay.data.bill.balance.query
+//    文档地址:https://docs.open.alipay.com/api_15/alipay.data.bill.balance.query
 func (a *Client) DataBillBalanceQuery(bm gopay.BodyMap) (aliRsp *DataBillBalanceQueryResponse, err error) {
 	var bs []byte
 	if bs, err = a.doAliPay(bm, "alipay.data.bill.balance.query"); err != nil {
@@ -630,7 +630,7 @@ func (a *Client) DataBillBalanceQuery(bm gopay.BodyMap) (aliRsp *DataBillBalance
 }
 
 // alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址)
-// https://docs.open.alipay.com/api_15/alipay.data.bill.balance.query
+//    文档地址:https://docs.open.alipay.com/api_15/alipay.data.dataservice.bill.downloadurl.query
 func (a *Client) DataBillDownloadUrlQuery(bm gopay.BodyMap) (aliRsp *DataBillDownloadUrlQueryResponse, err error) {
 	err = bm.CheckEmptyError("bill_type", "bill_date")
 	if err != nil {
@@ -723,7 +723,7 @@ func (a *Client) doAliPay(bm gopay.BodyMap, method string) (bs []byte, err error
 	if bodyStr != gopay.NULL {
 		pubBody.Set("biz_content", bodyStr)
 	}
-	sign, err := getRsaSign(pubBody, pubBody.Get("sign_type"), FormatPrivateKey(a.PrivateKey))
+	sign, err := GetRsaSign(pubBody, pubBody.Get("sign_type"), FormatPrivateKey(a.PrivateKey))
 	if err != nil {
 		return
 	}

+ 9 - 9
alipay/model.go

@@ -645,10 +645,10 @@ type MonitorHeartbeatSynResponse struct {
 
 // ===================================================
 type DataBillBalanceQueryResponse struct {
-	Response     *dataBillBalanceQueryResponse `json:"alipay_data_bill_balance_query,omitempty"`
-	AlipayCertSn string                    `json:"alipay_cert_sn,omitempty"`
-	SignData     string                    `json:"-"`
-	Sign         string                    `json:"sign"`
+	Response     *dataBillBalanceQueryResponse `json:"alipay_data_bill_balance_query_response,omitempty"`
+	AlipayCertSn string                        `json:"alipay_cert_sn,omitempty"`
+	SignData     string                        `json:"-"`
+	Sign         string                        `json:"sign"`
 }
 
 type dataBillBalanceQueryResponse struct {
@@ -656,7 +656,7 @@ type dataBillBalanceQueryResponse struct {
 	Msg             string `json:"msg,omitempty"`
 	SubCode         string `json:"sub_code,omitempty"`
 	SubMsg          string `json:"sub_msg,omitempty"`
-	TotaleAmount    string `json:"total_amount,omitempty"`
+	TotalAmount     string `json:"total_amount,omitempty"`
 	AvailableAmount string `json:"available_amount,omitempty"`
 	FreezeAmount    string `json:"freeze_amount,omitempty"`
 }
@@ -664,9 +664,9 @@ type dataBillBalanceQueryResponse struct {
 // ===================================================
 type DataBillDownloadUrlQueryResponse struct {
 	Response     *dataBillDownloadUrlQueryResponse `json:"alipay_data_dataservice_bill_downloadurl_query_response,omitempty"`
-	AlipayCertSn string                    `json:"alipay_cert_sn,omitempty"`
-	SignData     string                    `json:"-"`
-	Sign         string                    `json:"sign"`
+	AlipayCertSn string                            `json:"alipay_cert_sn,omitempty"`
+	SignData     string                            `json:"-"`
+	Sign         string                            `json:"sign"`
 }
 
 type dataBillDownloadUrlQueryResponse struct {
@@ -675,4 +675,4 @@ type dataBillDownloadUrlQueryResponse struct {
 	SubCode         string `json:"sub_code,omitempty"`
 	SubMsg          string `json:"sub_msg,omitempty"`
 	BillDownloadUrl string `json:"bill_download_url,omitempty"`
-}
+}

+ 2 - 2
alipay/param.go

@@ -163,8 +163,8 @@ func (a *Client) SetAuthToken(authToken string) (client *Client) {
 	return a
 }
 
-// 获取参数签名
-func getRsaSign(bm gopay.BodyMap, signType, privateKey string) (sign string, err error) {
+// 获取支付宝参数签名
+func GetRsaSign(bm gopay.BodyMap, signType, privateKey string) (sign string, err error) {
 	var (
 		block          *pem.Block
 		h              hash.Hash

+ 2 - 2
alipay/service_api.go

@@ -572,7 +572,7 @@ func systemOauthToken(appId, privateKey string, bm gopay.BodyMap, method string,
 		url  = baseUrlUtf8
 	)
 	pKey := FormatPrivateKey(privateKey)
-	if sign, err = getRsaSign(bm, bm.Get("sign_type"), pKey); err != nil {
+	if sign, err = GetRsaSign(bm, bm.Get("sign_type"), pKey); err != nil {
 		return nil, err
 	}
 	bm.Set("sign", sign)
@@ -609,7 +609,7 @@ func MonitorHeartbeatSyn(appId, privateKey, signType, bizContent string) (rsp *M
 	bm.Set("version", "1.0")
 
 	pKey := FormatPrivateKey(privateKey)
-	sign, err := getRsaSign(bm, bm.Get("sign_type"), pKey)
+	sign, err := GetRsaSign(bm, bm.Get("sign_type"), pKey)
 	if err != nil {
 		return nil, err
 	}

+ 8 - 0
release_note.txt

@@ -1,3 +1,11 @@
+版本号:Release 1.5.5
+发布时间:2020/03/05 18:32
+修改记录:
+   (1) 支付宝:新增Client方法:client.DataBillBalanceQuery(),支付宝商家账户当前余额查询。
+   (2) 支付宝:新增Client方法:client.DataBillDownloadUrlQuery(),查询对账单下载地址。
+   (3) 支付宝:开放公共方法:alipay.GetRsaSign(),获取支付宝参数签名(参数sign值)。
+   (4) 支付宝:开放公共方法:alipay.FormatURLParam(),格式化支付宝请求URL参数。
+
 版本号:Release 1.5.4
 发布时间:2020/02/29 14:32
 修改记录: