From bf5eac875609e2b9578f82780fe3bc04a085cf3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 21 Jul 2025 14:15:24 +0800 Subject: [PATCH] 1 --- platformapi/lakala/lakala_incoming_model.go | 1 + .../lakala/lakala_separate_accounts_model.go | 1 + platformapi/lakala/lakala_token.go | 77 +++++++++++-------- platformapi/lakala/lakala_token_test.go | 14 ++++ 4 files changed, 63 insertions(+), 30 deletions(-) diff --git a/platformapi/lakala/lakala_incoming_model.go b/platformapi/lakala/lakala_incoming_model.go index ea669562..d23425a7 100644 --- a/platformapi/lakala/lakala_incoming_model.go +++ b/platformapi/lakala/lakala_incoming_model.go @@ -10,6 +10,7 @@ const ( BankList = "bank" // 银行列表查询 MerchantMcc = "customer/category" // 银行列表查询 FileUpload = "file/upload" // 文件上传 + ) // 业务访问路由2 diff --git a/platformapi/lakala/lakala_separate_accounts_model.go b/platformapi/lakala/lakala_separate_accounts_model.go index 8e284e4e..45a5c506 100644 --- a/platformapi/lakala/lakala_separate_accounts_model.go +++ b/platformapi/lakala/lakala_separate_accounts_model.go @@ -28,6 +28,7 @@ const ( SeparateBindAction = "ledger/applyBind" // 分账关系绑定 SeparateUnBindAction = "ledger/applyUnBind" // 分账关系解除绑定 SeparateCardBinAction = "cardBin" // 卡BIN查询 + AttachmentUpload = "uploadFile" // 附件上传 ) // 分账 diff --git a/platformapi/lakala/lakala_token.go b/platformapi/lakala/lakala_token.go index 4f95ed14..ba46ea14 100644 --- a/platformapi/lakala/lakala_token.go +++ b/platformapi/lakala/lakala_token.go @@ -134,36 +134,53 @@ type UploadImgResp struct { Result interface{} `json:"result"` // } -// signParamRSA 支付签名 -//func (a *API) signParamRSA(params map[string]interface{}, RSAPrivate string) (sig string, err error) { -// block, _ := pem.Decode([]byte(RSAPrivate)) -// private, err := x509.ParsePKCS8PrivateKey(block.Bytes) -// if err != nil { -// return "", err -// } -// -// // 签名参数 -// body, err := json.Marshal(params) -// if err != nil { -// return "", err -// } -// -// //bodyData := base64.StdEncoding.EncodeToString(body) -// nonceStr := GenerateSecureRandomString(12) -// timeStamp := utils.Int64ToStr(time.Now().Unix()) -// context := fmt.Sprintf("%s\n%s\n%s\n%s\n%s\n", a.appID, a.serialNo, timeStamp, nonceStr, string(body)) -// -// // 进行rsa加密签名 -// hashed := sha256.Sum256([]byte(context)) -// signedData, err := rsa.SignPKCS1v15(rand.Reader, private.(*rsa.PrivateKey), crypto.SHA256, hashed[:]) -// if err != nil { -// return "", err -// } -// -// signData := base64.StdEncoding.EncodeToString(signedData) -// authorization := fmt.Sprintf(`LKLAPI-SHA256withRSA appid="%s",serial_no="%s",timestamp="%s",nonce_str="%s",signature="%s"`, a.appID, a.serialNo, timeStamp, nonceStr, signData) -// return authorization, nil -//} +// AttachmentUpload 附件上传 +func (a *API) AttachmentUpload(param *AttachmentImg) (*AttachmentImgResp, error) { + reqParameter := map[string]interface{}{ + "reqData": param, + "ver": Version, + "timestamp": utils.Int64ToStr(time.Now().Unix()), + "reqId": utils.GetUUID(), + } + result, err := a.AccessAPISign(SeparateAccountProdUrl, AttachmentUpload, http.MethodPost, "", reqParameter) + if err != nil { + return nil, err + } + + if result["retCode"].(string) != Success { + return nil, errors.New(result["retMsg"].(string)) + } + + bodyResult, err := json.Marshal(result["respData"]) + if err != nil { + return nil, err + } + + attachment := &AttachmentImgResp{} + if err = json.Unmarshal(bodyResult, attachment); err != nil { + return nil, err + } + + return attachment, nil +} + +// AttachmentImg 进件附件上传 +type AttachmentImg struct { + Version string `json:"version"` + OrderNo string `json:"orderNo"` + OrgCode string `json:"orgCode"` + AttType string `json:"attType"` + AttExtName string `json:"attExtName"` + AttContext string `json:"attContext"` +} + +// AttachmentImgResp 进件返回值 +type AttachmentImgResp struct { + AttType string `json:"attType"` + OrderNo string `json:"orderNo"` + OrgCode string `json:"orgCode"` + AttFileId string `json:"attFileId"` +} // signParamRSA 支付签名 func (a *API) signParamPrivateKey(params map[string]interface{}, RSAPrivate string) (sig string, err error) { diff --git a/platformapi/lakala/lakala_token_test.go b/platformapi/lakala/lakala_token_test.go index a0c57104..eb22d9f8 100644 --- a/platformapi/lakala/lakala_token_test.go +++ b/platformapi/lakala/lakala_token_test.go @@ -87,6 +87,20 @@ func TestUploadImg(t *testing.T) { } } +// TestAttachmentUpload 附件上传 +func TestAttachmentUpload(t *testing.T) { + data := &AttachmentImg{ + Version: "1.0", + OrderNo: "1234567897312", + OrgCode: "983931", + AttType: "BUSINESS_LICENCE", + AttExtName: "png", + AttContext: "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", + } + + api.AttachmentUpload(data) +} + func TestIncoming(t *testing.T) { param := &MerchantIncomingReq{ LarIdType: "01",