This commit is contained in:
邹宗楠
2025-07-11 16:41:48 +08:00
parent 6d9c6a88fc
commit d50435775c
8 changed files with 253 additions and 110 deletions

View File

@@ -1,6 +1,7 @@
package lakala
import (
"encoding/base64"
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/utils"
@@ -20,8 +21,12 @@ func (a *API) MerchantIncoming(incoming *MerchantIncomingReq) (string, string, e
// GetMerchantInfo 获取商户详细信息
func (a *API) GetMerchantInfo(customerNo string) (*MerchantObj, error) {
data := map[string]interface{}{"customerNo": customerNo}
result, err := a.AccessAPI2(BaseProdChangeUrl, GetMerchantInfo, http.MethodPost, "", data)
parameters, _ := json.Marshal(map[string]string{"customerNo": customerNo})
encryptParam, err := EncryptByPrivateKey(parameters, PrivateKeyBegin)
if err != nil {
return nil, err
}
result, err := a.AccessAPI2(BaseProdChangeUrl, GetMerchantInfo, http.MethodPost, "", map[string]interface{}{"data": encryptParam})
if err != nil {
return nil, err
}
@@ -30,9 +35,48 @@ func (a *API) GetMerchantInfo(customerNo string) (*MerchantObj, error) {
return nil, fmt.Errorf(result["message"].(string))
}
decryptData := result["data"].(string)
base64DecryData, _ := base64.StdEncoding.DecodeString(decryptData)
resultData, err := DecryptByPublicKey(base64DecryData, PublicKeyBegin)
if err != nil {
return nil, err
}
merchant := &MerchantObj{}
merchantInfo, _ := json.Marshal(result["data"])
json.Unmarshal(merchantInfo, merchant)
if err = json.Unmarshal(resultData, merchant); err != nil {
return nil, err
}
return merchant, nil
}
// GetTerminalInfo 获取终端信息
func (a *API) GetTerminalInfo(posSn string) (*TerminalInfo, error) {
parameters, _ := json.Marshal(map[string]string{"posSn": posSn})
encryptParam, err := EncryptByPrivateKey(parameters, PrivateKeyBegin)
if err != nil {
return nil, err
}
result, err := a.AccessAPI2(BaseProdChangeUrl, GetTerminalInfo, http.MethodPost, "", map[string]interface{}{"data": encryptParam})
if err != nil {
return nil, err
}
if result["code"].(string) != Success {
return nil, fmt.Errorf(result["message"].(string))
}
decryptData := result["data"].(string)
base64DecryData, _ := base64.StdEncoding.DecodeString(decryptData)
resultData, err := DecryptByPublicKey(base64DecryData, PublicKeyBegin)
if err != nil {
return nil, err
}
merchant := &TerminalInfo{}
if err = json.Unmarshal(resultData, merchant); err != nil {
return nil, err
}
return merchant, nil
}