PaymentCenter/app/third/paymentService/psbc/encrypt.go

44 lines
898 B
Go

package payment
import (
"encoding/json"
"fmt"
)
// EncryptRequest 加密支付请求
func EncryptRequest(request interface{}, cfg Config) (map[string]string, error) {
_, err := json.Marshal(request)
if err != nil {
return nil, fmt.Errorf("序列化请求失败: %v", err)
}
client := NewClient(cfg)
// 构造签名数据
signData := map[string]string{
"merchantNo": cfg.MchtNo,
}
signStr := MapToString(signData)
// 构造订单数据
orderData := map[string]string{
"merchantNo": cfg.MchtNo,
"orderNo": "",
"amount": "",
}
orderStr := MapToString(orderData)
// 加密
encryptedData, encryptedKey, err := client.EncryptMobile(orderStr, signStr)
if err != nil {
return nil, fmt.Errorf("加密失败: %v", err)
}
return map[string]string{
"request": encryptedData,
"signature": "",
"encryptKey": encryptedKey,
"accessToken": "",
}, nil
}