44 lines
898 B
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
|
|
}
|