|
- package boc
-
- import (
- "code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git/md"
- zhios_pay_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git/utils"
- "fmt"
- "github.com/syyongx/php2go"
- "time"
- )
-
- const (
- MerchantId = "888007050019400"
- TerminalNo = "98036140"
- PrivateKeyStr = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCSJk259Gd9IuvG\nRxYOma5vjo0+x2CTyP7m3uJ/epf+mwp/4XySbjVharBFmKk0XoSnZz/X/cYOgQXH\nPWPnBd0Y4qTl3xVf+DdZHF035KNG0LJPqvzqOSCuD5w32BHN0o9wFaR75PbWfsUl\nn2XqLVRFdv3IaKJYVWb8fM7VLT0aA+Rk81GXGfAbmXzNqX3lbOkqlTcBdzMHdE94\nqpAxtppVJ8JQqRJsWwzqJHo2koN+/kb3vL9IxeABJGUgU4Fy53MuC7JcvdYUoE7V\n92eD6A9g6ctSHP5y7olx9T7uMAaHk/TDv3+QNk6rI54cif7V7C5ykhtH5ZfHQ27C\nx929l7LZAgMBAAECggEAVZfVQajfyyvehbswMdDTlkYYdsHxz9uRXcj/QcWcquJG\nXerDOEcPQERpg/kKb79DVX9kpqzbh7cMmUlc7vpCKMbj6DSkohYO5EN2XLus3FZx\nd7MeeFaIyygdR59lnfNJSk2CjYTlA24vK/+UgneVuTEdJHgTTESIEitOPw9Fj6v+\n/+vRwuT6PVDm1FDUxFcYmJYzdMwJZoH0wDymofiEdn6beaHkqDXakrdY307cHOlq\ncrVQJKSybLwcBsbk9pgGrh6lCQLtQ8pHNtf6rE5FkEesO/VmdRFDGAK/9cuXEJ7u\nICdSESdfvnKl9BeN3MzSaeDSnh2IPoz13VVxXuJF+QKBgQDfHBVA/e1XFrLDM5IW\nO6nIxZeeZSufITDKHi7qRoS2mlOwjpMoIVAHCxlpnWd89YQ7NPdScEi6Z7l2sEET\n0vKfWsJ3ltowj5QUXS0XuJeAhkmK66lBNrICkatoAGeWxDrraCgkqLPNe40ydQ6h\nT2c3nR8tf++U2TzCpCXxzj6pgwKBgQCnsdTIWKwhRIltTgEzXTh3+JMQ36MH3sVt\nP14bxRN1hlR59yQvx0IEToXOHASSRU0fWxj3H8UewobYmE+2Ro+qNHFY7Do7Ypum\nIM7In00Tx4CKOVOkMZtNtR9hPk2/JUKpPSQBl7dSysBDngAwGhBhpwutWDpEiIfL\n+P4pAFuvcwKBgDrPUT7ncDdjkU1o+5oGshNtGjEzY9M3UYAFgsJYQkVL2sGQY3PR\njCG/KDyxtAS5RtjAdmzxkgooqzeA8DaEhVXB+77AMdVZE2RmxysYij7jpuEKi3vY\nKgYJVdA9QxD3urwwoVxAZ9zDM43YUznsDz4WmZBJx+JJfP2lfScHAXd3AoGAMpRR\noKgWKuaYKM7JT+vDF3RzLzi03K/VjnD5epjDmMQOgMcJNBv+jnv8ocETo+ahL17z\ntb3wX6m+sF+oU0sPFABDW9XMbpL8bWwh0qMxxVB8NbS6xKBtvk9uCo+XNZsQcylM\nzeor0h3zRbHHTrrdzAZtYDhnQrqHcv9D8av4+38CgYEAgyn1h+EompwBF4hKo6Dx\nVL/ZZYcE1E+XMzmHvP8C1sOVBSPZuCAnCx43cZiJZ94/5v8V3+4nKuWbeN1ar9BK\nXXSAVkk21qM8cv2IoDwi/DdBLXD302KMReAOWfJnQ+sbU1v2B2VPJoCwd4lSqauj\nVE4PCFhhrsou1VM1XbP8XsM=\n-----END PRIVATE KEY-----"
- )
-
- func Send(prd bool, privateKeyStr string, param map[string]string) (string, error) {
- for key, value := range param {
- if value == "" {
- delete(param, key)
- }
- }
- data := zhios_pay_utils.JoinStringsInASCII(param, "", "", true, false)
- sign, err := zhios_pay_utils.GetSign(privateKeyStr, data)
- if err != nil {
- return "", err
- }
- url := "https://cuaas.bocmacau.com/w/rsa/mercapi_ol"
- if prd {
- url = "https://aas.bocmacau.com/w/rsa/mercapi_ol"
- }
- headers := map[string]string{
- "Content-Type": "application/json",
- }
- param["merchantSign"] = sign
- fmt.Println("参数:", zhios_pay_utils.SerializeStr(param))
- zhios_pay_utils.CurlDebug = true
- res, err := zhios_pay_utils.CurlPost(url, php2go.URLEncode(zhios_pay_utils.SerializeStr(param)), headers)
- if err != nil {
- return "", err
- }
- fmt.Println(string(res))
- return string(res), nil
- }
-
- func CreateBocPayAppTradeReq(prd bool, privateKeyStr, merchantId, terminalNo string, createBocPayAppTradeReq *md.CreateBocPayAppTradeReq) (string, error) {
- //基础信息,必填
- createBocPayAppTradeReq.Version = Version
- createBocPayAppTradeReq.Service = CreateBocPayAppTrade
- createBocPayAppTradeReq.SignType = SignType
- createBocPayAppTradeReq.MerchantId = merchantId
- createBocPayAppTradeReq.TerminalNo = terminalNo
- createBocPayAppTradeReq.RequestId = createBocPayAppTradeReq.MercOrderNo + zhios_pay_utils.AnyToString(time.Now().Unix())
- //按照接口类型选填信息
- //createBocPayAppTradeReq.Amount = "100"
- //createBocPayAppTradeReq.OriginalAmount = "100"
- //createBocPayAppTradeReq.MercOrderNo = "2022101401"
- //createBocPayAppTradeReq.OrderDate = "20221013"
- //createBocPayAppTradeReq.OrderTime = "175600"
- //createBocPayAppTradeReq.NotifyUrl = "/api/v1/mall/pay/ada/sub_callback"
- //createBocPayAppTradeReq.Reserved1 = zhios_pay_utils.SerializeStr(map[string]string{
- // "mid":"123456",
- //})
- param := make(map[string]string)
- zhios_pay_utils.Unserialize(zhios_pay_utils.Serialize(createBocPayAppTradeReq), ¶m)
- send, err := Send(prd, privateKeyStr, param)
- if err != nil {
- return "", err
- }
- resp, _ := php2go.URLDecode(send)
- return resp, nil
- }
-
- func CreateWeChatTradeReq(prd bool, privateKeyStr, merchantId, terminalNo string, createWeChatTradeReq *md.CreateWeChatTradeReq) (string, error) {
- //基础信息,必填
- createWeChatTradeReq.Version = Version
- createWeChatTradeReq.Service = CreateWeChatTrade
- createWeChatTradeReq.SignType = SignType
- createWeChatTradeReq.MerchantId = merchantId
- createWeChatTradeReq.TerminalNo = terminalNo
- createWeChatTradeReq.RequestId = createWeChatTradeReq.MercOrderNo + zhios_pay_utils.AnyToString(time.Now().Unix())
- //按照接口类型选填信息
- //createBocPayAppTradeReq.Amount = "100"
- //createBocPayAppTradeReq.OriginalAmount = "100"
- //createBocPayAppTradeReq.MercOrderNo = "2022101401"
- //createBocPayAppTradeReq.OrderDate = "20221013"
- //createBocPayAppTradeReq.OrderTime = "175600"
- //createBocPayAppTradeReq.NotifyUrl = "/api/v1/mall/pay/ada/sub_callback"
- //createBocPayAppTradeReq.Reserved1 = zhios_pay_utils.SerializeStr(map[string]string{
- // "mid":"123456",
- //})
- param := make(map[string]string)
- zhios_pay_utils.Unserialize(zhios_pay_utils.Serialize(createWeChatTradeReq), ¶m)
- send, err := Send(prd, privateKeyStr, param)
- if err != nil {
- return "", err
- }
- resp, _ := php2go.URLDecode(send)
- return resp, nil
- }
-
- func CreateQRTradeReq(prd bool, privateKeyStr, merchantId, terminalNo string, createQRTradeReq *md.CreateQRTradeReq) (string, error) {
- //基础信息,必填
- createQRTradeReq.Version = Version
- createQRTradeReq.Service = CreateQRTrade
- createQRTradeReq.SignType = SignType
- createQRTradeReq.MerchantId = merchantId
- createQRTradeReq.TerminalNo = terminalNo
- createQRTradeReq.RequestId = createQRTradeReq.MercOrderNo + zhios_pay_utils.AnyToString(time.Now().Unix())
- //按照接口类型选填信息
- //createBocPayAppTradeReq.Amount = "100"
- //createBocPayAppTradeReq.OriginalAmount = "100"
- //createBocPayAppTradeReq.MercOrderNo = "2022101401"
- //createBocPayAppTradeReq.OrderDate = "20221013"
- //createBocPayAppTradeReq.OrderTime = "175600"
- //createBocPayAppTradeReq.NotifyUrl = "/api/v1/mall/pay/ada/sub_callback"
- //createBocPayAppTradeReq.Reserved1 = zhios_pay_utils.SerializeStr(map[string]string{
- // "mid":"123456",
- //})
- param := make(map[string]string)
- zhios_pay_utils.Unserialize(zhios_pay_utils.Serialize(createQRTradeReq), ¶m)
- send, err := Send(prd, privateKeyStr, param)
- if err != nil {
- return "", err
- }
- resp, _ := php2go.URLDecode(send)
- return resp, nil
- }
-
- func OrderQueryReq(prd bool, privateKeyStr, merchantId, terminalNo string, orderQueryReq *md.OrderQueryReq) (string, error) {
- //基础信息,必填
- orderQueryReq.Version = Version
- orderQueryReq.Service = OrderQuery
- orderQueryReq.SignType = SignType
- orderQueryReq.MerchantId = merchantId
- orderQueryReq.TerminalNo = terminalNo
- orderQueryReq.RequestId = zhios_pay_utils.AnyToString(time.Now().Unix())
- param := make(map[string]string)
- zhios_pay_utils.Unserialize(zhios_pay_utils.Serialize(orderQueryReq), ¶m)
- send, err := Send(prd, privateKeyStr, param)
- if err != nil {
- return "", err
- }
- resp, _ := php2go.URLDecode(send)
- return resp, nil
- }
|