Commit c8808b25 authored by zhengxiuming's avatar zhengxiuming

篮球渠道支付

parent e8fce181
......@@ -49,6 +49,7 @@ COPY --from=0 /go/src/system_pay/cert ./cert
COPY --from=0 /go/src/system_pay/cert/prod ./cert/prod
COPY --from=0 /go/src/system_pay/cert/prod/bk ./cert/prod/bk
COPY --from=0 /go/src/system_pay/cert/prod/dbc ./cert/prod/dbc
COPY --from=0 /go/src/system_pay/cert/prod/saas ./cert/prod/saas
# 运行打包好的二进制
ENTRYPOINT ./server
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIIDoDCCAoigAwIBAgIGAYi309dRMA0GCSqGSIb3DQEBBQUAMGAxFDASBgNVBAMM
MIIDoDCCAoigAwIBAgIGAZjlcx/HMA0GCSqGSIb3DQEBBQUAMGAxFDASBgNVBAMM
C0xBS0FMQS1MQU9QMQswCQYDVQQGEwJDTjEXMBUGA1UECgwOTGFrYWxhIENvLixM
dGQxDzANBgNVBAsMBkxLTC1ZRjERMA8GA1UEBwwIc2hhbmdoYWkwHhcNMjMwNjE0
MDI1NDUzWhcNMzMwNjE0MDI1NDUzWjBgMRQwEgYDVQQDDAtMQUtBTEEtTEFPUDEL
dGQxDzANBgNVBAsMBkxLTC1ZRjERMA8GA1UEBwwIc2hhbmdoYWkwHhcNMjUwODI2
MDgxNjI0WhcNMzUwODI2MDgxNjI0WjBgMRQwEgYDVQQDDAtMQUtBTEEtTEFPUDEL
MAkGA1UEBhMCQ04xFzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMQ8wDQYDVQQLDAZM
S0wtWUYxETAPBgNVBAcMCHNoYW5naGFpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAqwSz071wFg3OCDNy6KnNuu5cnFqRTZC931usgjT7WdE8Dcf9Gxsl
V8XoJkiBDyfLJgXiSXb1cOQDfU2hX+y/IFeZ9jxvtSBsZKLtfHUCfo8NF9Hs7egD
FhSDPi+XljJxcezGknrqt08BIpxHk+baAhq4Lt3A6LjgdxhnNYaTF5iy+ZZJFq2a
VX39rkalgMqgonazV1PYIS6Oxmq8gND50svkfYEH1gt1rh85naO47Eu17bPlTPe8
i+D/L/iVmBK1vvq15MPXuBzXrL0Ingt9Et1nJc2iZQqeT4V+qKu4E2WFXtkVU7X7
r4PjsWeJgsefXJi2VfDBC4vz4nHRC6QAVQIDAQABo2AwXjAPBgNVHRMECDAGAQH/
AgEAMB8GA1UdIwQYMBaAFDaGyZwckXAO7y0JGh+DLpV1wf9IMB0GA1UdDgQWBBQ2
hsmcHJFwDu8tCRofgy6VdcH/SDALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQAD
ggEBAAVGlgLuy8BwGo+l8IcdKPVY0/ZK/Ly5yGXH4dY3J/VAxBR3e79RWD1eoK+O
3nBkUAIGYVWhgfkt3uNmrFzGRMlPuiO8jEDdvHU5sIuJX+sOpYRhEzcvnxFJefnM
lU8qpEBNiYNK+1nrdJjdUKCQuPoH0qlIvJZUKIPcsHb5wAnjwe7tmF3foDH4qkW5
yZ7YcgVTHJZuyUTINlnw5OAYki+VOr/sEWwXtPI3/BzZa9c59qFVqjPnYuchj+7R
7fF93AVFUB9Rkj25vwYaYCBKnva84pazjUZWVUYvOXEPwgBgKKX5Pt/wjt3YB4Ds
xmFFbytGKIBvAStvp7LAIdKUgzc=
MIIBCgKCAQEA2zW7h7Fm8oS89xD85bz4u9Vg+yd2HjWVWKR0oADut3OiRXp87n/o
sOiJJlYYEku4Q/Vd9kzpxzmkQvVWJwnumlKXxCkgVrjZULYDiokwMsUHiSaXHFTw
rUqTfjkFb07vR480Mje/XODk0ceNvE4D1YmWf9CeXbYVlGEumQJXV3FaSm/Zamfv
8OgeiFHDjCAwwB18kIuICzw8cZz5eCbuUCpQb/89xMD5kx2ga0WjaAJlxaPvfFAk
2AJGMMylZ0KBl8hF5gDG0YgNVNwKeTdL+qnZiLOGrqnRksGri1IyIftKPu9cthq7
1Uqi7Tz/eKHDmyEcTCq7eKOCETp+nZ56IQIDAQABo2AwXjAPBgNVHRMECDAGAQH/
AgEAMB8GA1UdIwQYMBaAFOJt2Ul+VF80liuVYq4tyuuH4ngKMB0GA1UdDgQWBBTi
bdlJflRfNJYrlWKuLcrrh+J4CjALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQAD
ggEBAGoD44qlAc71b58bqeVrBrcOekrjETshkQ5j+qZtqJCzph2vyqPwafMVuUwv
4Di9iw2skaVRhJBc5a/PhR5DO9dR7XqOiySrwdq/oBy6S9cGAlyeegvY6VW7ZL5I
yN+O8Gj9M6yff7WS0DKsWIDAe5DB+K9jGIqgWGNDDYE8+CE7gTPDcj5J6eQX1ePz
hSe8ufMcPTpXr8YqcrNnHTmQfH6C8K9/iVfbtFmxmIqvj8GJPV5stx9vZIT3bgJ1
ydoM6Xj7q3c5Kq2DrfxEynesMlnPYY2y1nuYCvKKIGz5suHyOnetC/ZLFudBjcX8
X77Jj6xQqqS+bfS0dCxsDR8UyDM=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCrBLPTvXAWDc4I
M3Loqc267lycWpFNkL3fW6yCNPtZ0TwNx/0bGyVXxegmSIEPJ8smBeJJdvVw5AN9
TaFf7L8gV5n2PG+1IGxkou18dQJ+jw0X0ezt6AMWFIM+L5eWMnFx7MaSeuq3TwEi
nEeT5toCGrgu3cDouOB3GGc1hpMXmLL5lkkWrZpVff2uRqWAyqCidrNXU9ghLo7G
aryA0PnSy+R9gQfWC3WuHzmdo7jsS7Xts+VM97yL4P8v+JWYErW++rXkw9e4HNes
vQieC30S3WclzaJlCp5PhX6oq7gTZYVe2RVTtfuvg+OxZ4mCx59cmLZV8MELi/Pi
cdELpABVAgMBAAECggEAAQExEUBepTKFkFTFCwrcU4nM73o0ulDsXKCMPeOTym5J
PQd8vCkHqiFWgMsSPwWL0vhb4PSa8oPUZWsMVKTuZoE9PU4TlevP1zOB06ZYUmgC
uq4YBznCsuGB996NtGstcW7jp76jHFqRdiOW5A6KH1MK2/Ofi35yiyCQkqbsvEm9
3+oNwcbLSexDiU45tiwRDy7m2siikZpaxb4SV5JMtO27zXKFQGlVAtb52kHTMwvT
Nqrg2wIohhs2pHbImJMhDrVukFuW3UL1F2CIbpgZG36Lpy3oxCHtCNm6mggpy4Pe
+rgPW3ZPGoTZaiaqbEeem+hG/w9UylKZZV2B+AhFQQKBgQDwnx9eDUryMi58a5AG
kA5vwtCqYaX4veIjTFm5b70n0vw0h11Sn/YPryx8jc0bb+acekNTUmXjbRZzpGmn
MFiP77v+zxfakqwSEEDgsJBHU+HZ3m6p/ejEMX/mQOdDUrwqm6Y7UmMMDsz4b9BZ
7o0etiHgPKPvni6+D3LWImDwxQKBgQC18shCQYnYM5EHMunPN12dwcCbdFsvr9Eo
QPxXwDGOsGQliOAVrA3NnIvg0DgOnEuov9ieBd1L+mT6I4uRE3aRowislecFOYHT
Wj3HbXYWw94yXZrZyb9UnS6FSAG+xjP/RiooHs2Sprrz5nDnIylJxnTn0+3U+2a0
2bWddhGqUQKBgD0Ow7DkAp6OqUkdKkDgESm+76AsgycpV9bJKwNpHUCbwy+5Ia8z
tAaq1skMWn2Z2ZTfWXItOHmLVuUlVUH9fJuZo8S23EC0c0FqKmxZoWLYIDlevgoY
yhXu0Zul4Iku11ygfoATGdsXbl+kT+RiKiEe6l2yRY8qPoYv+V3o/1xZAoGATbxM
kwItQpHFhK3b9wxQkvYUtFYiH12envQk29jhU3VJVEAGfTvlKdOYb5SGXreoG5Db
m6glxDBWtAg7uN/36IEfU5039qN7NDF585pwuYk1hY84eZQYiq4dEhSRqlBEJuxz
VnDSo7VYapwp4JbFLR/9Eo8ZLcW7O8lILt4i7gECgYAubzT3SDYf5BlxQzzdVHhd
XY43f6SHCOsdE/7voyJCiQKwcJefkYJD/puvf1bHsfb5gsH4nyou0djKt4SM1SpE
SVdmIKIjKGFNiqFSbCEKI6s6UTfa4bIhx8ZbqjM6YWVmZFGzF00CP8qYZJgpA4Rr
X593bU9XLvgypO98+uFcDA==
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDbNbuHsWbyhLz3
EPzlvPi71WD7J3YeNZVYpHSgAO63c6JFenzuf+iw6IkmVhgSS7hD9V32TOnHOaRC
9VYnCe6aUpfEKSBWuNlQtgOKiTAyxQeJJpccVPCtSpN+OQVvTu9HjzQyN79c4OTR
x428TgPViZZ/0J5dthWUYS6ZAldXcVpKb9lqZ+/w6B6IUcOMIDDAHXyQi4gLPDxx
nPl4Ju5QKlBv/z3EwPmTHaBrRaNoAmXFo+98UCTYAkYwzKVnQoGXyEXmAMbRiA1U
3Ap5N0v6qdmIs4auqdGSwauLUjIh+0o+71y2GrvVSqLtPP94ocObIRxMKrt4o4IR
On6dnnohAgMBAAECggEBANi+qE3i+weQd8dS5LvDvaz7roim3APCt4iOE0KhqWd6
zlgkZKLtlgZV5kYhmmt8sxV+5wlBw2VZeTE7o5O2HlY4lBdBEtisrTNAxP+V5jJM
3sadgYxh8BdoRa3oc5c7VRxMXC/LL0uGkrlZtqsZ+HCLOmPmwq+l+nBcJtbjmbi6
ZipHW8b8TpA+WdS49fSJOArG4/Db3vQLTxDLKxACmrDCRoZGr7b9OGWsPsZliS50
KUMhAXn5rn+XTNWqQVKPO2F3L6nTY6whuWQ2lim96z3VcEo57t0KFDlwIO+iG11v
xGU/hqbm9XYyZ1b35yPnWcUTu+IhetstwpdmRZeQ1gECgYEA/UHisUGHbRo0Sl82
yrdFxEWa1h6eiatO+V1b+njTHlg4f0Ct8HzNrIg7iFT8EcwJOj/BCDwRtyrjmU95
ZGG7CUiJMKXKdKRaEDBxB0LmKOtc4DjbvwIp2Th6cNvEerthdpROzcDv7bROgWeY
o2Wa4ssV/W7pqS3qa+4hBhmH3J0CgYEA3ZV0u+NAQIuO39ed5pLdiNgQsBXklmUR
yPkYrz7czyIuR7uXYMJGC4uvwu7Tz3nZuWZ+YaUlXSRPjPifJDXh7nIw+5VoNBcp
ShvCI1JNg6lG+fH/wYPSEyPGLUlEmjMapC0TrggTju4iEQzqBkB7ES6tsUxjN3j1
ZcLb6o4dAlUCgYEAnBih6vMiz6JZHIX3NZckz0a/mr4gpWYLNTPP31/dcFSb7gMl
spaaBn+pgewvuaBzB44IIlUz7hvnULVlcvOx3pTwyiVF1gL+5/+TixA24H3BLwqc
lux0csiW3zz1q1gXSIk80SDcQTzjLmt17zBO+P6HvT9Bkd8VIBUUEbhmvxkCgYAe
46bSSmu6k7nnGne4nOClIvmwkly7WnuQOKloRKsjdPBer5f6tRpuoZpu4jxEwAfK
AK+9jPgYc+djD4Wf1qMYSnLpn3pXSKNI4XW+1spXgFGUplew8l9mq6YEyiH2HQmp
uV7088tGMYwuNE6rcHG3g3pTLQLnyMTs2q0tlYIVwQKBgFdx2AWqxl+KPU+LuaCc
IvvThMnMAbtytIpe1BKGBQRdCW1rjR89XNymE4Ki+CnOYL5mzgB2XKOqB/ZBD9EQ
fDN7Q7Cbg/Cubid0qFoyg4DO100VQTiyOU+FGYSeXZSHBNrc/BgbyQP0zOme/ECs
1u09+L8ynkUsd1XbJoYg8h3a
-----END PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqwSz071wFg3OCDNy6KnN
uu5cnFqRTZC931usgjT7WdE8Dcf9GxslV8XoJkiBDyfLJgXiSXb1cOQDfU2hX+y/
IFeZ9jxvtSBsZKLtfHUCfo8NF9Hs7egDFhSDPi+XljJxcezGknrqt08BIpxHk+ba
Ahq4Lt3A6LjgdxhnNYaTF5iy+ZZJFq2aVX39rkalgMqgonazV1PYIS6Oxmq8gND5
0svkfYEH1gt1rh85naO47Eu17bPlTPe8i+D/L/iVmBK1vvq15MPXuBzXrL0Ingt9
Et1nJc2iZQqeT4V+qKu4E2WFXtkVU7X7r4PjsWeJgsefXJi2VfDBC4vz4nHRC6QA
VQIDAQAB
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2zW7h7Fm8oS89xD85bz4
u9Vg+yd2HjWVWKR0oADut3OiRXp87n/osOiJJlYYEku4Q/Vd9kzpxzmkQvVWJwnu
mlKXxCkgVrjZULYDiokwMsUHiSaXHFTwrUqTfjkFb07vR480Mje/XODk0ceNvE4D
1YmWf9CeXbYVlGEumQJXV3FaSm/Zamfv8OgeiFHDjCAwwB18kIuICzw8cZz5eCbu
UCpQb/89xMD5kx2ga0WjaAJlxaPvfFAk2AJGMMylZ0KBl8hF5gDG0YgNVNwKeTdL
+qnZiLOGrqnRksGri1IyIftKPu9cthq71Uqi7Tz/eKHDmyEcTCq7eKOCETp+nZ56
IQIDAQAB
-----END PUBLIC KEY-----
......@@ -75,21 +75,21 @@ lakala:
#必康医生 - start
#篮球自营 - start
saas_version: '1.0'
saas_appid: 'OP00000836' #必康医生
saas_appid名称: '机构-羿律必康(天津)网络科技有限公司' #必康医生
saas_serial_no: '0188b7d3d751' #必康医生
saas_appid: 'OP10001619'
saas_appid名称: '商户-上海羿顶教育科技有限公司'
saas_serial_no: '0198e5731fc7'
#1.聚合收银台(微信H5、支付宝H5)
saas_merchant_no1: ''
saas_merchant_no1: '8222900824900PP'
#2.聚合收银台(微信扫码、支付宝扫码、快捷支付(银行卡))
saas_merchant_no2: ''
saas_merchant_no2: '8222900824900PP'
#3.聚合主扫(微信JSAPI、微信小程序)
saas_merchant_no3: ''
saas_term_no3: ''
saas_merchant_no3: '8222900824900PP'
saas_term_no3: 'N3563956'
#4.聚合被扫(扫码枪)
saas_merchant_no4: '' #结算商户号
saas_term_no4: '' #结算终端号
saas_merchant_no4: '8222900824900PP' #结算商户号
saas_term_no4: 'N3563956' #结算终端号
#配置项
saas_path_private_key: './cert/prod/saas/api_private_key.pem' #私钥
saas_path_cert: './cert/prod/saas/lkl-apigw-v1.cer' #证书
......
......@@ -72,7 +72,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
date_time2 := now.Add(time.Minute * 60).Format("20060102150405")
var version, out_org_code, merchant_no1, merchant_no2, merchant_no3, term_no3, merchant_no4, term_no4 string
//平台类型 1:saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile
//平台类型 1:saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile 8:篮球
if input.PlatformType == 2 || input.PlatformType == 3 {
// 必康天成自营
version = setting.Conf.Lakala.DbcVersion
......@@ -93,7 +93,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
term_no3 = setting.Conf.Lakala.BkTermNo3
merchant_no4 = setting.Conf.Lakala.BkMerchantNo4
term_no4 = setting.Conf.Lakala.BkTermNo4
} else {
} else if input.PlatformType == 8 {
// 必康医生
version = setting.Conf.Lakala.SaasVersion
out_org_code = setting.Conf.Lakala.SaasAppid
......@@ -281,7 +281,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
tx.Rollback()
return nil, err
}
fmt.Println("谛宝多多拼接后返回值:")
fmt.Println("拼接后返回值:")
fmt.Println(response)
// 插入下单成功后返回的参数
err = InsertPayBillDetailResponseBody(tx, billID, lakala_rtn)
......@@ -295,7 +295,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
return response, nil
}
//支付、退款、支付查询 共通调用
// 支付、退款、支付查询 共通调用
func lakala_post(input *models.PlaceAnOrderParamInput, url, order_id string, data_json []byte) (error, interface{}, interface{}) {
var source_code, platform_type uint8
......@@ -406,21 +406,20 @@ func lakala_post(input *models.PlaceAnOrderParamInput, url, order_id string, dat
}
func getAuthorization(platform_type uint8, body string) (string, error) {
var path_private_key, appid, mchSerialNo string //私钥文件地址
//平台类型 1:saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile
//平台类型 1:saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile 8:篮球
if platform_type == 2 || platform_type == 3 {
// 谛宝多多自营
// 必康天成
appid = setting.Conf.Lakala.DbcAppid
mchSerialNo = setting.Conf.Lakala.DbcSerialNo
path_private_key = setting.Conf.Lakala.DbcPathPrivateKey
} else if platform_type == 6 || platform_type == 7 {
// 必康自营
// 必康天津自营
appid = setting.Conf.Lakala.BkAppid
mchSerialNo = setting.Conf.Lakala.BkSerialNo
path_private_key = setting.Conf.Lakala.BkPathPrivateKey
} else {
// 必康医生
} else if platform_type == 8 {
// 篮球
appid = setting.Conf.Lakala.SaasAppid
mchSerialNo = setting.Conf.Lakala.SaasSerialNo
path_private_key = setting.Conf.Lakala.SaasPathPrivateKey
......@@ -448,7 +447,7 @@ func getAuthorization(platform_type uint8, body string) (string, error) {
return authorization, nil
}
//生产随机字符串
// 生产随机字符串
func RandomString(n int) string {
var letters = []byte("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
result := make([]byte, n)
......@@ -514,7 +513,7 @@ func GetNoticeURL(source_code uint8) string {
}
}
//InsertPayBill is 插入 支付订单表中
// InsertPayBill is 插入 支付订单表中
func InsertPayBill(tx *sql.Tx, p *models.PlaceAnOrderParamInput, orderID string) (int64, error) {
var billID int64
......@@ -576,7 +575,7 @@ func InsertPayBillDetailResponseBody(tx *sql.Tx, billID int64, responseBody inte
return nil
}
//支付查询 插入db
// 支付查询 插入db
func InsertPayBillDetailResponseBodyString(tx *sql.Tx, billID int64, responseBody string) error {
insertPayBillDetailSQL := `update system_pay_bill_detail set response_body = ? where pay_bill_id = ?`
......@@ -640,9 +639,9 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
var version, out_org_code, merchant_no1, merchant_no2, merchant_no3, term_no3, merchant_no4, term_no4 string
//平台类型 1:saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile
//平台类型 1:saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile 8:篮球
if platform_type == 2 || platform_type == 3 {
// 谛宝多多自营
// 必康天成
version = setting.Conf.Lakala.DbcVersion
out_org_code = setting.Conf.Lakala.DbcAppid
merchant_no1 = setting.Conf.Lakala.DbcMerchantNo1
......@@ -652,7 +651,7 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
merchant_no4 = setting.Conf.Lakala.DbcMerchantNo4
term_no4 = setting.Conf.Lakala.DbcTermNo4
} else if platform_type == 6 || platform_type == 7 {
// 必康自营
// 必康天津自营
version = setting.Conf.Lakala.BkVersion
out_org_code = setting.Conf.Lakala.BkAppid
merchant_no1 = setting.Conf.Lakala.BkMerchantNo1
......@@ -661,8 +660,8 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
term_no3 = setting.Conf.Lakala.BkTermNo3
merchant_no4 = setting.Conf.Lakala.BkMerchantNo4
term_no4 = setting.Conf.Lakala.BkTermNo4
} else {
// 必康医生
} else if platform_type == 8 {
// 篮球
version = setting.Conf.Lakala.SaasVersion
out_org_code = setting.Conf.Lakala.SaasAppid
merchant_no1 = setting.Conf.Lakala.SaasMerchantNo1
......@@ -806,7 +805,7 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
return response, nil
}
//退款订单存在check
// 退款订单存在check
func selectRefundBill(tx *sql.Tx, input *models.RefundParamInput) (string, string, uint8, uint8, string, string, error) {
var billID int64
......@@ -913,7 +912,7 @@ func selectRefundBill(tx *sql.Tx, input *models.RefundParamInput) (string, strin
return log_no, trans_term_no, source_code, platform_type, createtime, payer_account_no, nil
}
//InsertRefundBill is 插入 支付订单表中
// InsertRefundBill is 插入 支付订单表中
func InsertRefundBill(tx *sql.Tx, p *models.RefundParamInput, refundID string) (int64, error) {
var billID int64
......@@ -1003,7 +1002,7 @@ func OrderState(order_id string) (interface{}, error) {
return result, nil
}
//订单状态 0: 未结算 1: 结算成功 2: 结算失败
// 订单状态 0: 未结算 1: 结算成功 2: 结算失败
func SqbQueryOrderState(tx *sql.Tx, paymentOrderCode, attach string, billID int64, billType uint8, platformType, sourceCode uint) (uint8, error) {
fmt.Println("attachMap: ", attach)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment