Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
system_pay
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王沛
system_pay
Commits
1dd7c9e0
Commit
1dd7c9e0
authored
Jul 17, 2023
by
wangp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lakala
parent
4bd5ae32
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
401 additions
and
106 deletions
+401
-106
Dockerfile
Dockerfile
+9
-1
OP00000003_cert.cer
cert/dev/OP00000003_cert.cer
+0
-0
OP00000003_private_key.pem
cert/dev/OP00000003_private_key.pem
+0
-0
lkl-apigw-v2.cer
cert/dev/lkl-apigw-v2.cer
+0
-0
api_cert.cer
cert/prod/bk/api_cert.cer
+22
-0
api_private_key.pem
cert/prod/bk/api_private_key.pem
+28
-0
api_public_key.pem
cert/prod/bk/api_public_key.pem
+9
-0
api_cert.cer
cert/prod/dbc/api_cert.cer
+22
-0
api_private_key.pem
cert/prod/dbc/api_private_key.pem
+28
-0
api_public_key.pem
cert/prod/dbc/api_public_key.pem
+9
-0
lkl-apigw-v1.cer
cert/prod/dbc/lkl-apigw-v1.cer
+25
-0
api_cert.cer
cert/prod/saas/api_cert.cer
+22
-0
api_private_key.pem
cert/prod/saas/api_private_key.pem
+28
-0
api_public_key.pem
cert/prod/saas/api_public_key.pem
+9
-0
lkl-apigw-v1.cer
cert/prod/saas/lkl-apigw-v1.cer
+25
-0
config.yaml
conf/dev/config.yaml
+21
-4
config.yaml
conf/prod/config.yaml
+38
-8
notice.go
controller/api/v1/pay/notice.go
+2
-1
pay.go
models/pay.go
+3
-3
pay.go
repository/pay/pay.go
+85
-88
setting.go
setting/setting.go
+16
-1
No files found.
Dockerfile
View file @
1dd7c9e0
...
@@ -34,7 +34,8 @@ WORKDIR /go/src/system_pay
...
@@ -34,7 +34,8 @@ WORKDIR /go/src/system_pay
COPY
--from=0 /go/src/system_pay/server ./
COPY
--from=0 /go/src/system_pay/server ./
# 拷贝配置文件到当前工作目录
# 拷贝配置文件到当前工作目录
COPY
--from=0 /go/src/system_pay/conf/dev ./conf
# COPY --from=0 /go/src/system_pay/conf/dev ./conf
COPY
--from=0 /go/src/system_pay/conf/prod ./conf
# 拷贝国际化文件夹到当前工作目录
# 拷贝国际化文件夹到当前工作目录
COPY
--from=0 /go/src/system_pay/i18n ./i18n
COPY
--from=0 /go/src/system_pay/i18n ./i18n
...
@@ -42,5 +43,12 @@ COPY --from=0 /go/src/system_pay/i18n ./i18n
...
@@ -42,5 +43,12 @@ COPY --from=0 /go/src/system_pay/i18n ./i18n
# 拷贝国际化文件夹到当前工作目录
# 拷贝国际化文件夹到当前工作目录
COPY
--from=0 /go/src/system_pay/docs ./docs
COPY
--from=0 /go/src/system_pay/docs ./docs
# 拷贝私钥、公钥和证书文件夹到当前工作目录
COPY
--from=0 /go/src/system_pay/cert ./cert
COPY
--from=0 /go/src/system_pay/cert/dev ./cert/dev
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
# 运行打包好的二进制
# 运行打包好的二进制
ENTRYPOINT
./server
ENTRYPOINT
./server
\ No newline at end of file
cert/OP00000003_cert.cer
→
cert/
dev/
OP00000003_cert.cer
View file @
1dd7c9e0
File moved
cert/OP00000003_private_key.pem
→
cert/
dev/
OP00000003_private_key.pem
View file @
1dd7c9e0
File moved
cert/lkl-apigw-v2.cer
→
cert/
dev/
lkl-apigw-v2.cer
View file @
1dd7c9e0
File moved
cert/prod/bk/api_cert.cer
0 → 100644
View file @
1dd7c9e0
-----BEGIN CERTIFICATE-----
MIIDoDCCAoigAwIBAgIGAYliU9EVMA0GCSqGSIb3DQEBBQUAMGAxFDASBgNVBAMM
C0xBS0FMQS1MQU9QMQswCQYDVQQGEwJDTjEXMBUGA1UECgwOTGFrYWxhIENvLixM
dGQxDzANBgNVBAsMBkxLTC1ZRjERMA8GA1UEBwwIc2hhbmdoYWkwHhcNMjMwNzE3
MDUzMDA3WhcNMzMwNzE3MDUzMDA3WjBgMRQwEgYDVQQDDAtMQUtBTEEtTEFPUDEL
MAkGA1UEBhMCQ04xFzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMQ8wDQYDVQQLDAZM
S0wtWUYxETAPBgNVBAcMCHNoYW5naGFpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAnYI0nOuQROJIktb08ABlSxni/ADNjBOx4CqdknmBV/1G22cCnLX+
MDQL8wZ2tLU9vd1MSu55z4dIrmfqEwAWTKl0Skabd5tLJArUPVO1slVOREMgCJZ2
i3tuaRuqFTtBeJWa0Cxt3etmnn1il4wm6o+fT2NjUMvBzzw6jk4lMQwuUWvbXFOa
n5B1D5LIKU1AybYsNNzxXWcNwkgd++lvSnzYYGYHPpJy2vBqSJFwHEPhvtd9w4M5
K0xAKwyxK+/sVYjomvw58crRkZ/wstLsy28q8K3ZWJ/7dAmyn79830w7h72L6QTV
tUOZTM8nUzna+73q+JAUYqH0HmBgCUK1iQIDAQABo2AwXjAPBgNVHRMECDAGAQH/
AgEAMB8GA1UdIwQYMBaAFL5HJE8IJYMDJMIUCZ6WgS5ekdFoMB0GA1UdDgQWBBS+
RyRPCCWDAyTCFAmeloEuXpHRaDALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQAD
ggEBAAT+TAKbS45oHIY7Tj/rvkHYSbMkwWeVOqun22GxcVinUj56ULjJxGf6HhvS
4P/zYo8PycamP4y9Zf4k34mO+jHYivTo86uXPabV8dj9qpvqFNitA4JmqRQex7MB
UTByBjlNPRgYDUzYupkM7uXqHjQ5MrpIDg8gCWBRWY+mdYceC6GUg7bg/o9Off5t
c/RY8r29J5xENt8NdpB8XEjfG8EJ/OMW7KNtiBIVsjPV112HKCRryHch2OHLFgJK
Z/REprO1qocU0aTZBxYHMc1NUUyLwmBwVgFck/AJ9yREQXHGCnXZg7r853IF4Voc
8vK8cztFt1Os49uyLaPP4jwrt8E=
-----END CERTIFICATE-----
cert/prod/bk/api_private_key.pem
0 → 100644
View file @
1dd7c9e0
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCdgjSc65BE4kiS
1vTwAGVLGeL8AM2ME7HgKp2SeYFX/UbbZwKctf4wNAvzBna0tT293UxK7nnPh0iu
Z+oTABZMqXRKRpt3m0skCtQ9U7WyVU5EQyAIlnaLe25pG6oVO0F4lZrQLG3d62ae
fWKXjCbqj59PY2NQy8HPPDqOTiUxDC5Ra9tcU5qfkHUPksgpTUDJtiw03PFdZw3C
SB376W9KfNhgZgc+knLa8GpIkXAcQ+G+133DgzkrTEArDLEr7+xViOia/DnxytGR
n/Cy0uzLbyrwrdlYn/t0CbKfv3zfTDuHvYvpBNW1Q5lMzydTOdr7ver4kBRiofQe
YGAJQrWJAgMBAAECggEBAImCo2xcPBfndnS8NhtSPRzT/NcF3G3uw9xxWCAI9GNd
O/9Qb3dhbAmpZsVFX11k3gJksba5fJ8x/MJG9pSf/tfvGRe/jPtfGLreuWzRKFAJ
KctuzwiwU85ydHJPNK5UjVQ5SG92WnTkjzLPRMQKF++wc+VbX9mqCgpjCrwyfUXT
eC8iXOGrlr7+DDg/Rex3xUD00PC0MyMcCAuO3FWecjegXzEsgR2q8lzShhA5V5Td
itjNXx4wr430pZHMA/F6xl3bHhf8jX1a69ODqGl0NS7b1V1iY6yMN1V1Z2CzWbi0
TFzo17CEvOisdvGc9kHPmLUrCvJgShnDYDHDeGpXtgECgYEA8NH7HFBa6EChKQG2
pxNx5vOaact0dEbkHxy/xd+SDKw5hrAiToct9Y5dQVSr91pmhFv2CL82SA8kUc2X
wRh+cw7BkO9eJW31GVGNXqx4hFriE86QtmG06ke+NrqUXWJ+PxTPaPfN2UXLXT6Q
NctQdlZXA9YQZhyoVATfy2rEEkcCgYEAp2/byej/mmm5IEkVaHpgkbU0TkVN+9aW
Ng7O5R6n0MP6e7Q4nXef+q/q6hX5n+yUfTb10wg9IYKCMDKRedK7rP8KXgchopLU
rSk8+A0Y+3frkW/Ao8G6g0cDDPo9MC9tLQ1SspQF0P4syDv5LmLyJsW+PXtceZxk
v6Wn6Jogka8CgYAD8kz9L8vtlnGNrHuDzWvGbyOOrEjiRu8iG2SBJ6LLFl9y95v4
UXrNVWHt2idfTFn1vVQQ3KFVGPptZMMh5Pbdh9ZgO6v9TQoBOjbo4EaxVJPz4yS3
+G3wkPBrES+xQBX1jq+/dqAm+V/VzVqrpwNQjSWr6GwoYDvZ9KJ+QOeprQKBgQCM
LJdimA+05CG6J7UmfJ1wHrWleVvqJCIpK4iGRH3Vxtxix+RF4Cosoy4Vv0P2YQeH
NIXkoJcdALehRhSIWqYIFJRHV80O38HxHf8O41gw3pp2bYpnDf7pfH/PU4f6WRob
h3XeTxH3f3NaRus7rFZxo0a7DhXDMe0ejL7fenkdvQKBgCR21jJc1ZTKcvq5LVVY
DWwN9wC/bF7Vy+O1nJt9rociMJ+ilWH0eLAhhNnUNyLxCyPxR0eyOP40mz+Yxjy4
syWNuRarZGL6IOiZLSYgDq1msf5h9zjVIOItTURYn8lkCkfyrJTLl3/9V3CW+M8I
YyID4OmkWXnqX1LN7PsrNRfw
-----END PRIVATE KEY-----
cert/prod/bk/api_public_key.pem
0 → 100644
View file @
1dd7c9e0
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnYI0nOuQROJIktb08ABl
Sxni/ADNjBOx4CqdknmBV/1G22cCnLX+MDQL8wZ2tLU9vd1MSu55z4dIrmfqEwAW
TKl0Skabd5tLJArUPVO1slVOREMgCJZ2i3tuaRuqFTtBeJWa0Cxt3etmnn1il4wm
6o+fT2NjUMvBzzw6jk4lMQwuUWvbXFOan5B1D5LIKU1AybYsNNzxXWcNwkgd++lv
SnzYYGYHPpJy2vBqSJFwHEPhvtd9w4M5K0xAKwyxK+/sVYjomvw58crRkZ/wstLs
y28q8K3ZWJ/7dAmyn79830w7h72L6QTVtUOZTM8nUzna+73q+JAUYqH0HmBgCUK1
iQIDAQAB
-----END PUBLIC KEY-----
cert/prod/dbc/api_cert.cer
0 → 100644
View file @
1dd7c9e0
-----BEGIN CERTIFICATE-----
MIIDoDCCAoigAwIBAgIGAYliUP1oMA0GCSqGSIb3DQEBBQUAMGAxFDASBgNVBAMM
C0xBS0FMQS1MQU9QMQswCQYDVQQGEwJDTjEXMBUGA1UECgwOTGFrYWxhIENvLixM
dGQxDzANBgNVBAsMBkxLTC1ZRjERMA8GA1UEBwwIc2hhbmdoYWkwHhcNMjMwNzE3
MDUyNzAyWhcNMzMwNzE3MDUyNzAyWjBgMRQwEgYDVQQDDAtMQUtBTEEtTEFPUDEL
MAkGA1UEBhMCQ04xFzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMQ8wDQYDVQQLDAZM
S0wtWUYxETAPBgNVBAcMCHNoYW5naGFpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAoO0vL50XaJxXubBGZdd4dXi3wB7ASLbvxtXwqxgyx0GD49cmnGaa
dBO0lmAdomTR88wKIqK/IjaQrbSCGI9mxAMG1irTJo6rh4kB7VK+rcuFOGfvSt1s
CJqB5+GdoLg5aNFayWzWXOayrgyOgnnY9BcxE0QApB2KC27OmsEhUlUnWXYgkn0L
y0S59/SMOyaXpzyZXnY5KSq6xwTqUg/INKyI0m5xUKdHbympOU9Pp3OrTn3srjOs
w3N7XBNzJSOV4Zjpy+LpICZs7sTLQVf9wBoXtNBVb5Xc9S1348ZuXto2i5IF5VgM
lwQOLfcWrTMkq4dYqSX34YPFww5iqhS+fwIDAQABo2AwXjAPBgNVHRMECDAGAQH/
AgEAMB8GA1UdIwQYMBaAFH2q4V1Vd3FvjzJpkGPMv+jY6mhqMB0GA1UdDgQWBBR9
quFdVXdxb48yaZBjzL/o2OpoajALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQAD
ggEBAIiO/+6Tdzb3PsF5NP+NJUacXu5DscBXCyi9UUg+p3ZQHaxxzQFxHOY8h40y
fLqC92+nsDkKdSe8jd1E2+arptesWJqFjJMxljvNy34TehoXp303m+cTI85yNC8M
2Akcna46yfltU2HNYsfknPd4YejrSw9fbKrLMb6VaLdy0MFQHG3+86oAY55ii+c+
0e54ZAYvGp+ruFCdQIyjBugFy8skXN+moFsySbFaoyWGaWsQQ6W4e2SSrLhzcRdk
XjT4gNEnfMDmNcuvgAF9pG3M0hl2epX0131ed2mkYu0/S2comAsJfVr/rUhmmxCH
IPKITz14IgfgpbxCIhMq56zOlb8=
-----END CERTIFICATE-----
cert/prod/dbc/api_private_key.pem
0 → 100644
View file @
1dd7c9e0
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCg7S8vnRdonFe5
sEZl13h1eLfAHsBItu/G1fCrGDLHQYPj1yacZpp0E7SWYB2iZNHzzAoior8iNpCt
tIIYj2bEAwbWKtMmjquHiQHtUr6ty4U4Z+9K3WwImoHn4Z2guDlo0VrJbNZc5rKu
DI6Cedj0FzETRACkHYoLbs6awSFSVSdZdiCSfQvLRLn39Iw7JpenPJledjkpKrrH
BOpSD8g0rIjSbnFQp0dvKak5T0+nc6tOfeyuM6zDc3tcE3MlI5XhmOnL4ukgJmzu
xMtBV/3AGhe00FVvldz1LXfjxm5e2jaLkgXlWAyXBA4t9xatMySrh1ipJffhg8XD
DmKqFL5/AgMBAAECggEABuKfBjZ+bediiXtVR740VTJZCktGhtXs5GD67xcV9RiE
gBcQe9iX+ydsrpJmMjCGGxw7wsebzebvwb7bYhmgl/pZLIigiCHKjP37qx/DMMRo
asVno5hdqvCRZk5s5Bd9vVJXxA54DXmBY5j97+8urSLg4qYiMONiqKKRDGX++vrA
WMmF2fDVoQ2oF4viEkaurRjAIVEVrGpCAAlAVfMe2LWZW2Z/7UJ+r9GlW8HqXt/j
cC+rUTzUUrXXQGzXO1fC9v9LuBinPCmpO4QsJ2C43bPayIu3HNa+fiTGpFvGfPCS
DJSg/xxhFv8m1Gv7odRfk77F1ZCNDy+sGq3dL1nXIQKBgQDPmTA/dR1ki1jprckP
00W+lzcul1+EA9I7JvBzjC73+GPKCmfAHc65w/jeORQmqeLVkaFyI+YMjV5AQVa7
DgX+f/nnckzCs67LoOrSB0yaug1tZ4dzTpnT7JucCdcsttgrjeenjWUP1vgAjy3w
Won9Cu7k09Ij8fJBmTrPvmJiowKBgQDGclD1nU+fxgMU1gp4joUY/dBaJ8D6wr/+
I0CeSWWru1SbobGp6q6PpgwqjaB9RyDf9NEz+axu88kXeVBJyQ5oYoKkL44tSbE0
AQhiE/wGxhMxwHUaUWK3JjeVoXlnki6wUWpQ2u19uFsiHCe6ynGEYBtpk71+gTal
6V90f7BOdQKBgFuiQqnACDlZSOXcz+MsXpzCIpluN7sN9L4ncfuO5SyPd3y3GxSy
E43r8u4kQ8DNPFMI9Tpsnh7sR64VKTNn/T1ZP/XpffhzV7SKUxxiHG4vsb2Y9TDw
gPYKeqVlspUKIGEZQiezQei7+rxEdwKg9Ee9i7V1ykwTf9t0x4DriIIBAoGAL1V1
GiC7rVB9y6qCNN9Jv/xKhjaVQTrSsLuX3imDpsK4G6clyXHA0WK55CyD613b6Y9r
lwompxBfFspI7FCYry1QG/l74DGDovPcHAjIRJVaXrOZOv3OngDvoTEy1BF6MXQ5
969AlowysKAmmddP3FNQNo6W1GXdsxVHP3J1i0ECgYEAvWSQhCLrvepp1Wb++i+0
KgnvziR+VQM+NFOTalLJY/4ntJRFlGlcV0fiYhuQ/tCC1zDjoGC3FmcwuS5e8/uB
NNQqct7wk1X9yFCGfBAbCuGE1LT+VrVd2xEunBkH7sE5vBDdaBCcThiGd3enNs/p
meIENZk+vNjIeo3gA2C9+xU=
-----END PRIVATE KEY-----
cert/prod/dbc/api_public_key.pem
0 → 100644
View file @
1dd7c9e0
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoO0vL50XaJxXubBGZdd4
dXi3wB7ASLbvxtXwqxgyx0GD49cmnGaadBO0lmAdomTR88wKIqK/IjaQrbSCGI9m
xAMG1irTJo6rh4kB7VK+rcuFOGfvSt1sCJqB5+GdoLg5aNFayWzWXOayrgyOgnnY
9BcxE0QApB2KC27OmsEhUlUnWXYgkn0Ly0S59/SMOyaXpzyZXnY5KSq6xwTqUg/I
NKyI0m5xUKdHbympOU9Pp3OrTn3srjOsw3N7XBNzJSOV4Zjpy+LpICZs7sTLQVf9
wBoXtNBVb5Xc9S1348ZuXto2i5IF5VgMlwQOLfcWrTMkq4dYqSX34YPFww5iqhS+
fwIDAQAB
-----END PUBLIC KEY-----
cert/prod/dbc/lkl-apigw-v1.cer
0 → 100644
View file @
1dd7c9e0
-----BEGIN CERTIFICATE-----
MIIEMTCCAxmgAwIBAgIGAXUrc4b4MA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT
AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK
DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW
YWxpZGF0aW9uIENBMB4XDTIwMTAxNTA4NDk1MloXDTMwMTAxMzA4NDk1MlowZTEL
MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx
FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu
Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwAXZw9lupWcFXouC
Nhm0DQT47Zf4KOIRF8rqT8Ps3pYzT8odROJ8rq4P+lciGrg29czpqrRM22yQktFr
itvcM7JlE6jFbGH3rycnvGvhRYU/j1N9k0ozm8oVwmKX357/OtGzNivBECGSnU9L
Bkp4Nm9M1K4cOwEuZ0xsQEthZjQYF0mDpnlWmVJL5i1Lq834atN2qrb/mzMHBNtD
JnqRV7rPL39lKpe7LJiitsC2JuW1UbWZZU1NNwA/rz2d83C+KD1DLJ0+sMYY2Q3T
OQ4BPAowDEwOH7XAXrHM/0kRm+ZeIFlwevEGIQWmMt1Ogz+AW4Iq0slINc4wOINK
vH9tHwIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo
dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE
BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh
a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFIya0Yc4OSBer55JLyA0AYe9
m8mTMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA
A4IBAQCBEwOlk3mXigNv94Drn3dcaY2ml/y+8yNpAIuUhuBE00WFoqEX5lOatFy5
fzdXuC12lBVQ8SjSm3aH7k2X0eXqDzkOHiur2ZBRKmJ++J4TeenuSUOjSIbQK/DT
vxaqFUjYwFSVCyizpy7wfU4wKt+jOuFb9LyULJ9lkM1dV9Kh7Lmd9+nlJYYuPEPU
LJkkVZqSALSiiJudXnTwlISjZTXEAkJpdIlMw+hvPTAkoG95B95M+OV/uLbItGK+
qT4+RHWo8EbBDPQYo6J4QYHOxRlfMoGBMyrz6XDt7ELLmT7ld4aE02w6KQPfK3gq
kLDT+/STozvaNmXzBJh7J6KqxJBH
-----END CERTIFICATE-----
\ No newline at end of file
cert/prod/saas/api_cert.cer
0 → 100755
View file @
1dd7c9e0
-----BEGIN CERTIFICATE-----
MIIDoDCCAoigAwIBAgIGAYi309dRMA0GCSqGSIb3DQEBBQUAMGAxFDASBgNVBAMM
C0xBS0FMQS1MQU9QMQswCQYDVQQGEwJDTjEXMBUGA1UECgwOTGFrYWxhIENvLixM
dGQxDzANBgNVBAsMBkxLTC1ZRjERMA8GA1UEBwwIc2hhbmdoYWkwHhcNMjMwNjE0
MDI1NDUzWhcNMzMwNjE0MDI1NDUzWjBgMRQwEgYDVQQDDAtMQUtBTEEtTEFPUDEL
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=
-----END CERTIFICATE-----
cert/prod/saas/api_private_key.pem
0 → 100755
View file @
1dd7c9e0
-----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==
-----END PRIVATE KEY-----
cert/prod/saas/api_public_key.pem
0 → 100755
View file @
1dd7c9e0
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqwSz071wFg3OCDNy6KnN
uu5cnFqRTZC931usgjT7WdE8Dcf9GxslV8XoJkiBDyfLJgXiSXb1cOQDfU2hX+y/
IFeZ9jxvtSBsZKLtfHUCfo8NF9Hs7egDFhSDPi+XljJxcezGknrqt08BIpxHk+ba
Ahq4Lt3A6LjgdxhnNYaTF5iy+ZZJFq2aVX39rkalgMqgonazV1PYIS6Oxmq8gND5
0svkfYEH1gt1rh85naO47Eu17bPlTPe8i+D/L/iVmBK1vvq15MPXuBzXrL0Ingt9
Et1nJc2iZQqeT4V+qKu4E2WFXtkVU7X7r4PjsWeJgsefXJi2VfDBC4vz4nHRC6QA
VQIDAQAB
-----END PUBLIC KEY-----
cert/prod/saas/lkl-apigw-v1.cer
0 → 100644
View file @
1dd7c9e0
-----BEGIN CERTIFICATE-----
MIIEMTCCAxmgAwIBAgIGAXUrc4b4MA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT
AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK
DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW
YWxpZGF0aW9uIENBMB4XDTIwMTAxNTA4NDk1MloXDTMwMTAxMzA4NDk1MlowZTEL
MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx
FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu
Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwAXZw9lupWcFXouC
Nhm0DQT47Zf4KOIRF8rqT8Ps3pYzT8odROJ8rq4P+lciGrg29czpqrRM22yQktFr
itvcM7JlE6jFbGH3rycnvGvhRYU/j1N9k0ozm8oVwmKX357/OtGzNivBECGSnU9L
Bkp4Nm9M1K4cOwEuZ0xsQEthZjQYF0mDpnlWmVJL5i1Lq834atN2qrb/mzMHBNtD
JnqRV7rPL39lKpe7LJiitsC2JuW1UbWZZU1NNwA/rz2d83C+KD1DLJ0+sMYY2Q3T
OQ4BPAowDEwOH7XAXrHM/0kRm+ZeIFlwevEGIQWmMt1Ogz+AW4Iq0slINc4wOINK
vH9tHwIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo
dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE
BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh
a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFIya0Yc4OSBer55JLyA0AYe9
m8mTMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA
A4IBAQCBEwOlk3mXigNv94Drn3dcaY2ml/y+8yNpAIuUhuBE00WFoqEX5lOatFy5
fzdXuC12lBVQ8SjSm3aH7k2X0eXqDzkOHiur2ZBRKmJ++J4TeenuSUOjSIbQK/DT
vxaqFUjYwFSVCyizpy7wfU4wKt+jOuFb9LyULJ9lkM1dV9Kh7Lmd9+nlJYYuPEPU
LJkkVZqSALSiiJudXnTwlISjZTXEAkJpdIlMw+hvPTAkoG95B95M+OV/uLbItGK+
qT4+RHWo8EbBDPQYo6J4QYHOxRlfMoGBMyrz6XDt7ELLmT7ld4aE02w6KQPfK3gq
kLDT+/STozvaNmXzBJh7J6KqxJBH
-----END CERTIFICATE-----
\ No newline at end of file
conf/dev/config.yaml
View file @
1dd7c9e0
...
@@ -59,8 +59,8 @@ log:
...
@@ -59,8 +59,8 @@ log:
# smscontent: '【谛宝医生】登录验证码为:%s'
# smscontent: '【谛宝医生】登录验证码为:%s'
# 支付
# 支付
payurl
:
#
payurl:
domainname
:
'
http://tpay-v2.pet-dbc.cn:14880'
#
domainname: 'http://tpay-v2.pet-dbc.cn:14880'
# checkorder: 'https://tpay.pet-dbc.cn/v1/pay/unified_order'
# checkorder: 'https://tpay.pet-dbc.cn/v1/pay/unified_order'
# orderstate: 'https://tpay.pet-dbc.cn/v1/pay/order_state/'
# orderstate: 'https://tpay.pet-dbc.cn/v1/pay/order_state/'
...
@@ -71,7 +71,7 @@ lakala:
...
@@ -71,7 +71,7 @@ lakala:
appid
:
'
OP00000003'
appid
:
'
OP00000003'
serial_no
:
'
00dfba8194c41b84cf'
serial_no
:
'
00dfba8194c41b84cf'
#1.聚合收银台(微信H5、支付宝H5)
#1.聚合收银台(微信H5、支付宝H5
、快捷支付(银行卡)
)
merchant_no1
:
'
8222900701107M5'
merchant_no1
:
'
8222900701107M5'
term_no1
:
'
'
term_no1
:
'
'
#2.聚合收银台(微信扫码、支付宝扫码)
#2.聚合收银台(微信扫码、支付宝扫码)
...
@@ -82,10 +82,27 @@ lakala:
...
@@ -82,10 +82,27 @@ lakala:
term_no3
:
'
D0027598'
term_no3
:
'
D0027598'
sub_appid3
:
'
wxc3e4d1682da3053c'
sub_appid3
:
'
wxc3e4d1682da3053c'
user_id3
:
'
oLvoQ5deygCMj2WrDjPVPvV1L1t8'
user_id3
:
'
oLvoQ5deygCMj2WrDjPVPvV1L1t8'
#4.
扫码枪
#4.
聚合被扫(扫码枪)
merchant_no4
:
'
822290070111135'
#结算商户号
merchant_no4
:
'
822290070111135'
#结算商户号
term_no4
:
'
29034705'
#结算终端号
term_no4
:
'
29034705'
#结算终端号
#配置项
#谛宝多多自营
dbc_path_private_key
:
'
./cert/dev/OP00000003_private_key.pem'
#私钥
dbc_path_cert
:
'
./cert/dev/lkl-apigw-v2.cer'
#证书
#必康自营
bk_path_private_key
:
'
./cert/dev/OP00000003_private_key.pem'
#私钥
bk_path_cert
:
'
./cert/dev/lkl-apigw-v2.cer'
#证书
#SAAS
saas_path_private_key
:
'
./cert/dev/OP00000003_private_key.pem'
#私钥
saas_path_cert
:
'
./cert/dev/lkl-apigw-v2.cer'
#证书
#拉卡拉接口地址
url_create
:
'
https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create'
#聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
url_preorder
:
'
https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder'
#聚合主扫(微信JSAPI、微信小程序)
url_micropay
:
'
https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay'
#聚合被扫(扫码枪)
url_refund
:
'
https://test.wsmsd.cn/sit/api/v3/labs/relation/refund'
#聚合扫码-退款交易
# gateway
# gateway
#gateway:
#gateway:
# url: 'http://saas.pet-dbc.cn'
# url: 'http://saas.pet-dbc.cn'
...
...
conf/prod/config.yaml
View file @
1dd7c9e0
# 服务
# 服务
server
:
server
:
runMode
:
'
release'
#runMode: 'release'
runMode
:
'
debug'
httpport
:
14880
httpport
:
14880
readtimeout
:
60
readtimeout
:
60
writetimeout
:
60
writetimeout
:
60
...
@@ -16,7 +17,8 @@ database:
...
@@ -16,7 +17,8 @@ database:
type
:
'
mysql'
type
:
'
mysql'
#crmdb: "root_shop:DBC_shopqwe@tcp(rm-2zenl1z0v6209a4jrbo.mysql.rds.aliyuncs.com:3306)/dbc_crm_manage?charset=utf8"
#crmdb: "root_shop:DBC_shopqwe@tcp(rm-2zenl1z0v6209a4jrbo.mysql.rds.aliyuncs.com:3306)/dbc_crm_manage?charset=utf8"
# shopdb: "root_shop:DBC_shopqwe@tcp(rm-2zenl1z0v6209a4jrbo.mysql.rds.aliyuncs.com:3306)/dbc_shop?charset=utf8"
# shopdb: "root_shop:DBC_shopqwe@tcp(rm-2zenl1z0v6209a4jrbo.mysql.rds.aliyuncs.com:3306)/dbc_shop?charset=utf8"
systemdb
:
"
system_pay:Pay_123456@tcp(rm-2zenl1z0v6209a4jrbo.mysql.rds.aliyuncs.com:3306)/sys_pay?charset=utf8"
# systemdb: "system_pay:Pay_123456@tcp(rm-2zenl1z0v6209a4jrbo.mysql.rds.aliyuncs.com:3306)/sys_pay?charset=utf8"
systemdb
:
"
root:abc123456@tcp(39.96.85.45:3307)/sys_pay?charset=utf8"
# accountdb: 'dbc_saas:dbc_saas888888@tcp(rm-2zepcf8kag0aol0q48o.mysql.rds.aliyuncs.com:3306)/hos_database?charset=utf8'
# accountdb: 'dbc_saas:dbc_saas888888@tcp(rm-2zepcf8kag0aol0q48o.mysql.rds.aliyuncs.com:3306)/hos_database?charset=utf8'
# userdb: 'root_dbc:dbc_root888888@tcp(rm-2ze8jnj44l6ta299pro.mysql.rds.aliyuncs.com:3306)/mysql?charset=utf8'
# userdb: 'root_dbc:dbc_root888888@tcp(rm-2ze8jnj44l6ta299pro.mysql.rds.aliyuncs.com:3306)/mysql?charset=utf8'
# seconddb: 'root_dbc:dbc_root888888@tcp(rm-2ze095l91j14r251wno.mysql.rds.aliyuncs.com:3306)/mysql?charset=utf8'
# seconddb: 'root_dbc:dbc_root888888@tcp(rm-2ze095l91j14r251wno.mysql.rds.aliyuncs.com:3306)/mysql?charset=utf8'
...
@@ -60,17 +62,28 @@ sms:
...
@@ -60,17 +62,28 @@ sms:
smscontent
:
'
【谛宝多多】登录验证码为:%s'
smscontent
:
'
【谛宝多多】登录验证码为:%s'
# 支付
# 支付
payurl
:
#
payurl:
domainname
:
'
http://tpay-v2.pet-dbc.cn:14880'
#
domainname: 'http://tpay-v2.pet-dbc.cn:14880'
# checkorder: 'https://pay.pet-dbc.cn/v1/pay/unified_order'
# checkorder: 'https://pay.pet-dbc.cn/v1/pay/unified_order'
# orderstate: 'https://pay.pet-dbc.cn/v1/pay/order_state/'
# orderstate: 'https://pay.pet-dbc.cn/v1/pay/order_state/'
# 拉卡拉支付
# 拉卡拉支付
lakala
:
lakala
:
#通用
#通用
version
:
'
3.0'
version
:
'
1.0'
appid
:
'
OP00000003'
# appid: 'OP00000836' #SAAS
serial_no
:
'
00dfba8194c41b84cf'
# appid名称: '机构-羿律必康(天津)网络科技有限公司'
# serial_no: '0188b7d3d751'
# serial_no: '1686711293777'
appid
:
'
OP00000859'
#谛宝多多自营
appid名称
:
'
商户-谛宝诚网络科技(北京)有限公司'
serial_no
:
'
1689571622248'
# appid: '' #必康自营
# appid名称: ''
# serial_no: ''
#1.聚合收银台(微信H5、支付宝H5)
#1.聚合收银台(微信H5、支付宝H5)
merchant_no1
:
'
8222900701107M5'
merchant_no1
:
'
8222900701107M5'
...
@@ -83,10 +96,27 @@ lakala:
...
@@ -83,10 +96,27 @@ lakala:
term_no3
:
'
D0027598'
term_no3
:
'
D0027598'
sub_appid3
:
'
wxc3e4d1682da3053c'
sub_appid3
:
'
wxc3e4d1682da3053c'
user_id3
:
'
oLvoQ5deygCMj2WrDjPVPvV1L1t8'
user_id3
:
'
oLvoQ5deygCMj2WrDjPVPvV1L1t8'
#4.
扫码枪
#4.
聚合被扫(扫码枪)
merchant_no4
:
'
822290070111135'
#结算商户号
merchant_no4
:
'
822290070111135'
#结算商户号
term_no4
:
'
29034705'
#结算终端号
term_no4
:
'
29034705'
#结算终端号
#配置项
#谛宝多多自营
dbc_path_private_key
:
'
./cert/prod/dbc/api_private_key.pem'
#私钥
dbc_path_cert
:
'
./cert/prod/dbc/lkl-apigw-v1.cer'
#证书
#必康自营
bk_path_private_key
:
'
./cert/prod/bk/api_private_key.pem'
#私钥
bk_path_cert
:
'
./cert/prod/bk/lkl-apigw-v1.cer'
#证书
#SAAS
saas_path_private_key
:
'
./cert/prod/saas/api_private_key.pem'
#私钥
saas_path_cert
:
'
./cert/prod/saas/lkl-apigw-v1.cer'
#证书
#拉卡拉接口地址
url_create
:
'
https://s2.lakala.com/api/v3/ccss/counter/order/create'
#聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
url_preorder
:
'
https://s2.lakala.com/api/v3/labs/trans/preorder'
#聚合主扫(微信JSAPI、微信小程序)
url_micropay
:
'
https://s2.lakala.com/api/v3/labs/trans/micropay'
#聚合被扫(扫码枪)
url_refund
:
'
https://s2.lakala.com/api/v3/labs/relation/refund'
#聚合扫码-退款交易
# gateway
# gateway
#gateway:
#gateway:
# url: 'http://saas.pet-dbc.cn'
# url: 'http://saas.pet-dbc.cn'
...
...
controller/api/v1/pay/notice.go
View file @
1dd7c9e0
...
@@ -125,7 +125,8 @@ fmt.Println(data)
...
@@ -125,7 +125,8 @@ fmt.Println(data)
fmt
.
Println
(
"signature="
+
signature
)
fmt
.
Println
(
"signature="
+
signature
)
// 1、读取公钥文件,获取公钥字节
// 1、读取公钥文件,获取公钥字节
publicKey
,
err
:=
ioutil
.
ReadFile
(
"../cert/lkl-apigw-v2.cer"
)
//path_cert := setting.Conf.Lakala.BkPathCert
publicKey
,
err
:=
ioutil
.
ReadFile
(
"./cert/dev/lkl-apigw-v2.cer"
)
if
err
!=
nil
{
if
err
!=
nil
{
return
false
,
err
return
false
,
err
}
}
...
...
models/pay.go
View file @
1dd7c9e0
...
@@ -2,15 +2,15 @@ package models
...
@@ -2,15 +2,15 @@ package models
//支付
//支付
type
PlaceAnOrderParamInput
struct
{
type
PlaceAnOrderParamInput
struct
{
PlatformType
uint8
`json:"platform_type" description:"平台类型 1:
saas 2: shop 3: shop mobile 4: 收银台
"`
PlatformType
uint8
`json:"platform_type" description:"平台类型 1:
saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile
"`
PlatformInfo
string
`json:"platform_info" description:"平台信息"`
PlatformInfo
string
`json:"platform_info" description:"平台信息"`
GoodsDes
string
`json:"goods_des" description:"商品描述"`
GoodsDes
string
`json:"goods_des" description:"商品描述"`
GoodsDetail
string
`json:"goods_detail" description:"商品详情"`
GoodsDetail
string
`json:"goods_detail" description:"商品详情"`
AttachInfo
string
`json:"attach_info" description:"附加信息"`
AttachInfo
string
`json:"attach_info" description:"附加信息"`
GoodsPrice
float64
`json:"goods_price" description:"商品金额,个位为分"`
GoodsPrice
float64
`json:"goods_price" description:"商品金额,个位为分"`
NoticeURL
string
`json:"notice_url" description:"客户端回调的url"`
NoticeURL
string
`json:"notice_url" description:"客户端回调的url"`
PayType
int
`json:"pay_type" description:"
1: 微信,2: 支付宝, 3: 拉卡拉 4:
收钱吧"`
PayType
int
`json:"pay_type" description:"
支付渠道 1:微信 2:支付宝 3:拉卡拉 4:
收钱吧"`
SourceCode
uint8
`json:"source_code" description:"
1: 微信 Native 2:微信小程序 3:微信内支付 4:h5 跳微信 5:支付宝(web)-扫码或登录支付宝账户 6:alipay(mobile) 7:alipay(app) 9: B2C 10:bk支付宝web 11:bk 支付宝手机 15:快捷支付(银行卡)"
"`
SourceCode
uint8
`json:"source_code" description:"
支付方式 1:微信Native 2:微信小程序 3:微信内支付 4:h5 跳微信 5:支付宝(web)-扫码或登录支付宝账户 6:alipay(mobile) 7:alipay(app) 9:B2C 10:bk支付宝web 11:bk 支付宝手机 15:快捷支付(银行卡)
"`
OpenID
string
`json:"open_id" description:"此参数 支付类型是 JS API 的时候 必传"`
OpenID
string
`json:"open_id" description:"此参数 支付类型是 JS API 的时候 必传"`
WapURL
string
`json:"wap_url" description:"WAP网站URL地址, 支付方式为微信MWEB时 必传"`
WapURL
string
`json:"wap_url" description:"WAP网站URL地址, 支付方式为微信MWEB时 必传"`
WapName
string
`json:"wap_name" description:"WAP网站名称, 支付方式为微信MWEB时 必传"`
WapName
string
`json:"wap_name" description:"WAP网站名称, 支付方式为微信MWEB时 必传"`
...
...
repository/pay/pay.go
View file @
1dd7c9e0
...
@@ -20,15 +20,22 @@ import (
...
@@ -20,15 +20,22 @@ import (
"system_pay/models"
"system_pay/models"
"system_pay/mysql"
"system_pay/mysql"
"system_pay/setting"
"system_pay/setting"
"system_pay/utils"
"time"
"time"
)
)
// 拉卡拉支付
// 拉卡拉支付
func
UnifiedOrder
(
input
*
models
.
PlaceAnOrderParamInput
,
ip
string
)
(
interface
{},
error
)
{
func
UnifiedOrder
(
input
*
models
.
PlaceAnOrderParamInput
,
ip
string
)
(
interface
{},
error
)
{
//输入项check
if
input
.
SourceCode
==
0
{
if
input
.
SourceCode
==
0
{
return
nil
,
errors
.
New
(
"输入项「source_code」为空错误"
)
return
nil
,
errors
.
New
(
"输入项「source_code」为空错误"
)
}
}
if
input
.
PlatformType
==
0
{
return
nil
,
errors
.
New
(
"输入项「platform_type」为空错误"
)
}
//if input.SourceCode<0 || input.SourceCode>6 {
// return errors.New("输入参数「source_code」错误"), "", nil
//}
fmt
.
Println
(
"谛宝多多输入参数"
)
fmt
.
Println
(
"谛宝多多输入参数"
)
fmt
.
Println
(
input
)
fmt
.
Println
(
input
)
...
@@ -84,13 +91,13 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
...
@@ -84,13 +91,13 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
data
[
"version"
]
=
version
data
[
"version"
]
=
version
data
[
"out_org_code"
]
=
out_org_code
data
[
"out_org_code"
]
=
out_org_code
//source_code 1: 微信 Native 2:微信小程序 3:微信内支付 4:h5 跳微信
//source_code 1: 微信 Native 2:微信小程序 3:微信内支付 4:h5 跳微信
//5:支付宝(web)-扫码或登录支付宝账户 6:alipay(mobile) 7:alipay(app)
//5:支付宝(web)-扫码或登录支付宝账户 6:alipay(mobile) 7:alipay(app)
//9: B2C 10:bk支付宝web 11:bk 支付宝手机 15:快捷支付(银行卡)
//9: B2C 10:bk支付宝web 11:bk 支付宝手机 15:快捷支付(银行卡)
if
input
.
SourceCode
==
4
||
input
.
SourceCode
==
6
||
input
.
SourceCode
==
1
||
input
.
SourceCode
==
5
||
input
.
SourceCode
==
15
{
if
input
.
SourceCode
==
4
||
input
.
SourceCode
==
6
||
input
.
SourceCode
==
1
||
input
.
SourceCode
==
5
||
input
.
SourceCode
==
15
{
//聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
//聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
url
=
"https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create"
//聚合收银台
//url = "https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create" //聚合收银台
url
=
setting
.
Conf
.
Lakala
.
UrlCreate
//聚合收银台
//input.ReturnURL = "https://test.pet-dbc.cn"
//input.ReturnURL = "https://test.pet-dbc.cn"
...
@@ -118,14 +125,16 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
...
@@ -118,14 +125,16 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
//data2["out_trade_no"] = input.AttachInfo
//data2["out_trade_no"] = input.AttachInfo
//data2["out_order_no"] = input.AttachInfo
//data2["out_order_no"] = input.AttachInfo
if
input
.
SourceCode
<
5
{
if
input
.
SourceCode
==
15
{
//快捷支付
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
QUICK_PAY
\"
}"
}
else
if
input
.
SourceCode
<
5
{
//微信
//微信
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
WECHAT
\"
}"
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
WECHAT
\"
}"
}
else
{
}
else
{
//支付宝
//支付宝
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
ALIPAY
\"
}"
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
ALIPAY
\"
}"
}
}
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
QUICK_PAY
\"
}"
//快捷支付
data2
[
"order_efficient_time"
]
=
date_time2
//订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
data2
[
"order_efficient_time"
]
=
date_time2
//订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
data2
[
"notify_url"
]
=
input
.
NoticeURL
//订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
data2
[
"notify_url"
]
=
input
.
NoticeURL
//订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
...
@@ -139,7 +148,8 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
...
@@ -139,7 +148,8 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
}
else
if
input
.
SourceCode
==
2
||
input
.
SourceCode
==
3
{
}
else
if
input
.
SourceCode
==
2
||
input
.
SourceCode
==
3
{
//聚合主扫(微信JSAPI、微信小程序)
//聚合主扫(微信JSAPI、微信小程序)
url
=
"https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder"
//聚合主扫
//url = "https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder" //聚合主扫
url
=
setting
.
Conf
.
Lakala
.
UrlPreorder
//聚合主扫
//input.ReturnURL = "https://test.pet-dbc.cn"
//input.ReturnURL = "https://test.pet-dbc.cn"
...
@@ -193,12 +203,13 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
...
@@ -193,12 +203,13 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
data
[
"req_data"
]
=
data2
data
[
"req_data"
]
=
data2
}
else
if
input
.
SourceCode
==
9
{
}
else
if
input
.
SourceCode
==
9
{
//
扫码枪
//
聚合被扫(扫码枪)
if
input
.
DynamicID
==
""
{
if
input
.
DynamicID
==
""
{
return
nil
,
errors
.
New
(
"输入项「dynamic_id」为空错误"
)
return
nil
,
errors
.
New
(
"输入项「dynamic_id」为空错误"
)
}
}
url
=
"https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay"
//聚合被扫
//url = "https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay" //聚合被扫
url
=
setting
.
Conf
.
Lakala
.
UrlMicropay
//聚合被扫
data2
:=
make
(
map
[
string
]
interface
{})
data2
:=
make
(
map
[
string
]
interface
{})
data2
[
"merchant_no"
]
=
merchant_no4
data2
[
"merchant_no"
]
=
merchant_no4
...
@@ -223,7 +234,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
...
@@ -223,7 +234,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
data
[
"req_data"
]
=
data2
data
[
"req_data"
]
=
data2
}
else
{
}
else
{
return
nil
,
errors
.
New
(
"输入参数「source_code」错误,有效值为[1-6,9]"
)
return
nil
,
errors
.
New
(
"输入参数「source_code」错误,有效值为[1-6,9
,15
]"
)
}
}
//数据重组 - end
//数据重组 - end
fmt
.
Println
(
"拉卡拉输入参数"
)
fmt
.
Println
(
"拉卡拉输入参数"
)
...
@@ -245,7 +256,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
...
@@ -245,7 +256,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
}
}
//调拉卡拉接口
//调拉卡拉接口
err
,
response
,
lakala_rtn
:=
lakala_post
(
input
.
SourceCode
,
url
,
data_json
)
err
,
response
,
lakala_rtn
:=
lakala_post
(
input
,
url
,
data_json
)
if
err
!=
nil
{
if
err
!=
nil
{
InsertPayBillDetailResponseBody
(
tx
,
billID
,
err
)
//todo
InsertPayBillDetailResponseBody
(
tx
,
billID
,
err
)
//todo
return
nil
,
err
return
nil
,
err
...
@@ -268,12 +279,18 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
...
@@ -268,12 +279,18 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
return
response
,
nil
return
response
,
nil
}
}
func
lakala_post
(
source_code
uint8
,
url
string
,
data_json
[]
byte
)
(
error
,
interface
{},
interface
{})
{
func
lakala_post
(
input
*
models
.
PlaceAnOrderParamInput
,
url
string
,
data_json
[]
byte
)
(
error
,
interface
{},
interface
{})
{
if
source_code
<
0
||
source_code
>
6
{
return
errors
.
New
(
"输入参数「source_code」错误"
),
""
,
nil
var
source_code
,
platform_type
uint8
if
input
==
nil
{
source_code
=
0
//支付方式
platform_type
=
0
//平台类型
}
else
{
source_code
=
input
.
SourceCode
//支付方式
platform_type
=
input
.
PlatformType
//平台类型
}
}
authorization
,
err
:=
getAuthorization
(
string
(
data_json
))
authorization
,
err
:=
getAuthorization
(
platform_type
,
string
(
data_json
))
if
err
!=
nil
{
if
err
!=
nil
{
return
err
,
""
,
nil
return
err
,
""
,
nil
}
}
...
@@ -314,8 +331,8 @@ func lakala_post(source_code uint8, url string, data_json []byte) (error, interf
...
@@ -314,8 +331,8 @@ func lakala_post(source_code uint8, url string, data_json []byte) (error, interf
if
temp2
[
"counter_url"
]
==
""
{
if
temp2
[
"counter_url"
]
==
""
{
return
errors
.
New
(
"拉卡拉返回值「counter_url」为空错误"
),
""
,
temp
return
errors
.
New
(
"拉卡拉返回值「counter_url」为空错误"
),
""
,
temp
}
}
if
source_code
==
4
||
source_code
==
6
{
if
source_code
==
4
||
source_code
==
6
||
source_code
==
15
{
//微信H5、支付宝H5
//微信H5、支付宝H5
、快捷支付(银行卡)
response
[
"m_web_url"
]
=
temp2
[
"counter_url"
]
.
(
string
)
response
[
"m_web_url"
]
=
temp2
[
"counter_url"
]
.
(
string
)
}
else
{
}
else
{
//微信扫码、支付宝扫码
//微信扫码、支付宝扫码
...
@@ -343,83 +360,62 @@ func lakala_post(source_code uint8, url string, data_json []byte) (error, interf
...
@@ -343,83 +360,62 @@ func lakala_post(source_code uint8, url string, data_json []byte) (error, interf
return
nil
,
response
,
temp
return
nil
,
response
,
temp
}
}
func
getAuthorization
(
body
string
)
(
string
,
error
)
{
func
getAuthorization
(
platform_type
uint8
,
body
string
)
(
string
,
error
)
{
//appid := "OP00000003"
//mchSerialNo := "00dfba8194c41b84cf"
//nonceStr = gopay.GetRandomString(32)
////nonceStr := strconv.Itoa(rand.Intn(32)) // 构造随机数
//nonceStr := "12345678901234567890123456789012" // 构造随机数
////timestamp := strconv.FormatInt(time.Now().Unix(), 10)
//timestamp := "1686808027"
appid
:=
setting
.
Conf
.
Lakala
.
Appid
appid
:=
setting
.
Conf
.
Lakala
.
Appid
mchSerialNo
:=
setting
.
Conf
.
Lakala
.
SerialNo
mchSerialNo
:=
setting
.
Conf
.
Lakala
.
SerialNo
nonceStr
:=
RandomString
(
32
)
// 构造随机数
nonceStr
:=
RandomString
(
32
)
// 构造随机数
timestamp
:=
strconv
.
FormatInt
(
time
.
Now
()
.
Unix
(),
10
)
timestamp
:=
strconv
.
FormatInt
(
time
.
Now
()
.
Unix
(),
10
)
//String nonceStr = generateNonceStr();
//long timestamp = generateTimestamp();
message
:=
appid
+
"
\n
"
+
mchSerialNo
+
"
\n
"
+
timestamp
+
"
\n
"
+
nonceStr
+
"
\n
"
+
body
+
"
\n
"
;
message
:=
appid
+
"
\n
"
+
mchSerialNo
+
"
\n
"
+
timestamp
+
"
\n
"
+
nonceStr
+
"
\n
"
+
body
+
"
\n
"
;
//fmt.Println(message); return "", errors.New("测试")
//System.out.println("getToken message : " + message);
//PrivateKey merchantPrivateKey = loadPrivateKey(new FileInputStream(new File(merchantPrivateKeyPath)));
//String signature = this.sign(message.getBytes(ENCODING), merchantPrivateKey);
//privateRaw := "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDokGGq7SlDoULN\nPULY8lcb2uXJcrFKkJI/lSfPppIkGH4xPfQytZXRlonpXqgOvovflJT5VhRvoLe2\ninJ/59kRF59KTerbCG5sG2IHhR/qCUGHervnZuPwgrjOOlnB19VCCUKY1tcplkZa\nKIksUU3TVh09GB3lUngkuOeO15ihcFHMIknOiSpL+Q04+qQf0g++9CxdQUtNY5za\nZ2Jdvch/4yFstR59qQu73ZCCYHFqXaVakyfOC3xOQkRB58jPOUvIab9zwo2hPukT\n+6qkqfokqMhX979HhNshPAJEEUXp4szk0QtP+2n8hq8t3Dws+GY8ElAFvmeGHx5j\nWzPYAcXvAgMBAAECggEBALIsu8caf/zCdc2MW8SelkJPCLG330DDVmjEO4YJlfl1\nkmjjkE2xdSDn9q0GyjbRoZQf36rPWkTTmyyNEYAQ/urrcCybWY2J/h9xMz+TrIm/\noabMT13QJF5FqJTHe7DZTReUxKMYJixEZ433dHCxsbByT2BZM75X2pg32aBEaTl0\nv9OfIMwfaJ5fSBmleJv4q/Lfd232/oOPzyr+EHfsMpTwOrgzQwPNoah1GvH+jBhz\ngoafi36vT8HVjJ+ZjOreH+Z2zVas683Le62rQaN/51jHS5vQGd2+z3qrI3kvu8KK\nWu0kIDQwCKtSFUT00MiKSaklE9JHf8rCNm3+en4kjfECgYEA/0Z2QaP4sOUt1+cZ\nIOprsMkJOl2sLTTDx3MseD2BxUukLDT8P3HTWLtBN9AkGlL6XD8WSs1k9YlGCqf2\ny9qC43Bgwsky8CH1ACk5K4PuWidGUQiqW4Oll/ris2vjagE+QfMHFFa7IalV5FvI\nv9L01jMqSL4duoM5w/WlLyLu8s0CgYEA6TlppWuxUMbxhEL5jmCZSSvsyhmIOdRk\nt4V9MuxwiRuItzywMo4+O7Hs6tjAxTnV/ROa33qyQtm4Olmd4Oa/TkmAJFX+mUrW\njUohDvm7Js2Y7/eeSRcRQLcgCjncpNe3AJoeVEvrGeaJMERYXnTwboUDKxsRyFFq\nAyuZHfuh86sCgYAm3pjFF+2XKd5YIKUv4OHy8jmIfJjp7T3eUcg0qtDmtMTTwmGi\nW3ed7C1bDUNiCr56a1S+oRW9WWCj4L1wft4tOYBSSIaMD++ZTa2Z1aXmblKDpjki\nZCJDyPzZ6xSeoH/VVOcADtDBqGIeumcP5lRHhVTr7J7kNnUGRJIZYk1WBQKBgQCl\nLAIEI4cKnDrD3uL60LL+vVsPrpFp02AZETMf84+nqpZin1pyE4dDo7kUgbnUdCd2\n+oF+sFi7O5Jb0MgdVY47FZbpJPYQ/o2AtvU+s+K1knozyPyS6wFPAeJxG5WGMTfr\n9zpvnOy+BSU3x8+F5e+5df5OcvdfFTmtUR05vNJvzQKBgHUtziAeWo7H6vxknFcc\nkVv7++a4IWF59eP+rpxlaHOtPTI43PLxJgSHEbw3epEzTUnCL9dpP8n48fuYuwM+\n+vpAujDcaGjGffmxW40E6wuGjOYBNg1zjSfEyjxF2fY+D9WoICSPHnrWB0/BEAZB\naL9Lho8+BUEFergUMjxUdvAS"
//privateRaw := "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx\nrIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M\n8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD\nZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW\ndhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN\nrpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1\n5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4\nmE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7\nqCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK\nNXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X\n3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK\nTPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk\n9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH\nSTTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0\nZr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv\nAtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI\nRgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke\nMzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4\n8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP\nscd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi\nbEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn\nLl2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz\nNzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j\nAylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq\nCHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6\nQsFLQgFyXgvDnzr/o+hQJelW"
//privateRaw := "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx\nrIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M\n8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD\nZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW\ndhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN\nrpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1\n5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4\nmE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7\nqCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK\nNXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X\n3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK\nTPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk\n9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH\nSTTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0\nZr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv\nAtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI\nRgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke\nMzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4\n8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP\nscd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi\nbEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn\nLl2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz\nNzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j\nAylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq\nCHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6\nQsFLQgFyXgvDnzr/o+hQJelW\n-----END PRIVATE KEY-----";
//privateRaw := "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx\nrIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M\n8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD\nZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW\ndhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN\nrpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1\n5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4\nmE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7\nqCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK\nNXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X\n3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK\nTPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk\n9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH\nSTTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0\nZr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv\nAtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI\nRgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke\nMzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4\n8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP\nscd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi\nbEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn\nLl2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz\nNzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j\nAylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq\nCHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6\nQsFLQgFyXgvDnzr/o+hQJelW\n-----END PRIVATE KEY-----"
//测试
//测试
privateRaw
:=
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx
\n
rIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M
\n
8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD
\n
ZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW
\n
dhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN
\n
rpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1
\n
5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4
\n
mE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7
\n
qCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK
\n
NXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X
\n
3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK
\n
TPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk
\n
9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH
\n
STTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0
\n
Zr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv
\n
AtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI
\n
RgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke
\n
MzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4
\n
8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP
\n
scd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi
\n
bEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn
\n
Ll2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz
\n
NzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j
\n
Aylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq
\n
CHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6
\n
QsFLQgFyXgvDnzr/o+hQJelW"
//
privateRaw := "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx\nrIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M\n8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD\nZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW\ndhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN\nrpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1\n5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4\nmE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7\nqCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK\nNXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X\n3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK\nTPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk\n9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH\nSTTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0\nZr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv\nAtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI\nRgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke\nMzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4\n8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP\nscd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi\nbEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn\nLl2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz\nNzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j\nAylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq\nCHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6\nQsFLQgFyXgvDnzr/o+hQJelW"
//线上
//线上
//privateRaw := "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCrBLPTvXAWDc4I\nM3Loqc267lycWpFNkL3fW6yCNPtZ0TwNx/0bGyVXxegmSIEPJ8smBeJJdvVw5AN9\nTaFf7L8gV5n2PG+1IGxkou18dQJ+jw0X0ezt6AMWFIM+L5eWMnFx7MaSeuq3TwEi\nnEeT5toCGrgu3cDouOB3GGc1hpMXmLL5lkkWrZpVff2uRqWAyqCidrNXU9ghLo7G\naryA0PnSy+R9gQfWC3WuHzmdo7jsS7Xts+VM97yL4P8v+JWYErW++rXkw9e4HNes\nvQieC30S3WclzaJlCp5PhX6oq7gTZYVe2RVTtfuvg+OxZ4mCx59cmLZV8MELi/Pi\ncdELpABVAgMBAAECggEAAQExEUBepTKFkFTFCwrcU4nM73o0ulDsXKCMPeOTym5J\nPQd8vCkHqiFWgMsSPwWL0vhb4PSa8oPUZWsMVKTuZoE9PU4TlevP1zOB06ZYUmgC\nuq4YBznCsuGB996NtGstcW7jp76jHFqRdiOW5A6KH1MK2/Ofi35yiyCQkqbsvEm9\n3+oNwcbLSexDiU45tiwRDy7m2siikZpaxb4SV5JMtO27zXKFQGlVAtb52kHTMwvT\nNqrg2wIohhs2pHbImJMhDrVukFuW3UL1F2CIbpgZG36Lpy3oxCHtCNm6mggpy4Pe\n+rgPW3ZPGoTZaiaqbEeem+hG/w9UylKZZV2B+AhFQQKBgQDwnx9eDUryMi58a5AG\nkA5vwtCqYaX4veIjTFm5b70n0vw0h11Sn/YPryx8jc0bb+acekNTUmXjbRZzpGmn\nMFiP77v+zxfakqwSEEDgsJBHU+HZ3m6p/ejEMX/mQOdDUrwqm6Y7UmMMDsz4b9BZ\n7o0etiHgPKPvni6+D3LWImDwxQKBgQC18shCQYnYM5EHMunPN12dwcCbdFsvr9Eo\nQPxXwDGOsGQliOAVrA3NnIvg0DgOnEuov9ieBd1L+mT6I4uRE3aRowislecFOYHT\nWj3HbXYWw94yXZrZyb9UnS6FSAG+xjP/RiooHs2Sprrz5nDnIylJxnTn0+3U+2a0\n2bWddhGqUQKBgD0Ow7DkAp6OqUkdKkDgESm+76AsgycpV9bJKwNpHUCbwy+5Ia8z\ntAaq1skMWn2Z2ZTfWXItOHmLVuUlVUH9fJuZo8S23EC0c0FqKmxZoWLYIDlevgoY\nyhXu0Zul4Iku11ygfoATGdsXbl+kT+RiKiEe6l2yRY8qPoYv+V3o/1xZAoGATbxM\nkwItQpHFhK3b9wxQkvYUtFYiH12envQk29jhU3VJVEAGfTvlKdOYb5SGXreoG5Db\nm6glxDBWtAg7uN/36IEfU5039qN7NDF585pwuYk1hY84eZQYiq4dEhSRqlBEJuxz\nVnDSo7VYapwp4JbFLR/9Eo8ZLcW7O8lILt4i7gECgYAubzT3SDYf5BlxQzzdVHhd\nXY43f6SHCOsdE/7voyJCiQKwcJefkYJD/puvf1bHsfb5gsH4nyou0djKt4SM1SpE\nSVdmIKIjKGFNiqFSbCEKI6s6UTfa4bIhx8ZbqjM6YWVmZFGzF00CP8qYZJgpA4Rr\nX593bU9XLvgypO98+uFcDA=="
//privateRaw := "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCrBLPTvXAWDc4I\nM3Loqc267lycWpFNkL3fW6yCNPtZ0TwNx/0bGyVXxegmSIEPJ8smBeJJdvVw5AN9\nTaFf7L8gV5n2PG+1IGxkou18dQJ+jw0X0ezt6AMWFIM+L5eWMnFx7MaSeuq3TwEi\nnEeT5toCGrgu3cDouOB3GGc1hpMXmLL5lkkWrZpVff2uRqWAyqCidrNXU9ghLo7G\naryA0PnSy+R9gQfWC3WuHzmdo7jsS7Xts+VM97yL4P8v+JWYErW++rXkw9e4HNes\nvQieC30S3WclzaJlCp5PhX6oq7gTZYVe2RVTtfuvg+OxZ4mCx59cmLZV8MELi/Pi\ncdELpABVAgMBAAECggEAAQExEUBepTKFkFTFCwrcU4nM73o0ulDsXKCMPeOTym5J\nPQd8vCkHqiFWgMsSPwWL0vhb4PSa8oPUZWsMVKTuZoE9PU4TlevP1zOB06ZYUmgC\nuq4YBznCsuGB996NtGstcW7jp76jHFqRdiOW5A6KH1MK2/Ofi35yiyCQkqbsvEm9\n3+oNwcbLSexDiU45tiwRDy7m2siikZpaxb4SV5JMtO27zXKFQGlVAtb52kHTMwvT\nNqrg2wIohhs2pHbImJMhDrVukFuW3UL1F2CIbpgZG36Lpy3oxCHtCNm6mggpy4Pe\n+rgPW3ZPGoTZaiaqbEeem+hG/w9UylKZZV2B+AhFQQKBgQDwnx9eDUryMi58a5AG\nkA5vwtCqYaX4veIjTFm5b70n0vw0h11Sn/YPryx8jc0bb+acekNTUmXjbRZzpGmn\nMFiP77v+zxfakqwSEEDgsJBHU+HZ3m6p/ejEMX/mQOdDUrwqm6Y7UmMMDsz4b9BZ\n7o0etiHgPKPvni6+D3LWImDwxQKBgQC18shCQYnYM5EHMunPN12dwcCbdFsvr9Eo\nQPxXwDGOsGQliOAVrA3NnIvg0DgOnEuov9ieBd1L+mT6I4uRE3aRowislecFOYHT\nWj3HbXYWw94yXZrZyb9UnS6FSAG+xjP/RiooHs2Sprrz5nDnIylJxnTn0+3U+2a0\n2bWddhGqUQKBgD0Ow7DkAp6OqUkdKkDgESm+76AsgycpV9bJKwNpHUCbwy+5Ia8z\ntAaq1skMWn2Z2ZTfWXItOHmLVuUlVUH9fJuZo8S23EC0c0FqKmxZoWLYIDlevgoY\nyhXu0Zul4Iku11ygfoATGdsXbl+kT+RiKiEe6l2yRY8qPoYv+V3o/1xZAoGATbxM\nkwItQpHFhK3b9wxQkvYUtFYiH12envQk29jhU3VJVEAGfTvlKdOYb5SGXreoG5Db\nm6glxDBWtAg7uN/36IEfU5039qN7NDF585pwuYk1hY84eZQYiq4dEhSRqlBEJuxz\nVnDSo7VYapwp4JbFLR/9Eo8ZLcW7O8lILt4i7gECgYAubzT3SDYf5BlxQzzdVHhd\nXY43f6SHCOsdE/7voyJCiQKwcJefkYJD/puvf1bHsfb5gsH4nyou0djKt4SM1SpE\nSVdmIKIjKGFNiqFSbCEKI6s6UTfa4bIhx8ZbqjM6YWVmZFGzF00CP8qYZJgpA4Rr\nX593bU9XLvgypO98+uFcDA=="
signature
,
err
:=
Sha256WithRsa
(
privateRaw
,
message
)
//
signature, err := Sha256WithRsa(privateRaw, message)
if
err
!=
nil
{
//
if err != nil {
return
signature
,
err
//
return signature, err
}
//
}
//fmt.Println(777)
//fmt.Println(777)
//fmt.Println(signature)
//fmt.Println(signature)
//fmt.Println("签名1:", signature)
//fmt.Println("签名1:", signature)
//pwd, err := os.Getwd()
// 谛宝多多自营
//if err != nil {
//dbc_path_private_key := setting.Conf.Lakala.DbcPathPrivateKey
// return "", err
//dbc_path_cert := setting.Conf.Lakala.DbcPathCert
//}
//// 必康自营
//fmt.Println("pwd="+pwd)
//bk_path_private_key := setting.Conf.Lakala.BkPathPrivateKey
//
//bk_path_cert := setting.Conf.Lakala.BkPathCert
//base64Sig, err := utils.RSASign([]byte(message), "/cert/OP00000003_private_key.pem")
//// SAAS
//base64Sig, err := utils.RSASign([]byte(message), "./cert/demo/api_private_key.pem")
//saas_path_private_key: './cert/prod/saas/api_private_key.pem' #私钥
//prvKey := "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDokGGq7SlDoULN\nPULY8lcb2uXJcrFKkJI/lSfPppIkGH4xPfQytZXRlonpXqgOvovflJT5VhRvoLe2\ninJ/59kRF59KTerbCG5sG2IHhR/qCUGHervnZuPwgrjOOlnB19VCCUKY1tcplkZa\nKIksUU3TVh09GB3lUngkuOeO15ihcFHMIknOiSpL+Q04+qQf0g++9CxdQUtNY5za\nZ2Jdvch/4yFstR59qQu73ZCCYHFqXaVakyfOC3xOQkRB58jPOUvIab9zwo2hPukT\n+6qkqfokqMhX979HhNshPAJEEUXp4szk0QtP+2n8hq8t3Dws+GY8ElAFvmeGHx5j\nWzPYAcXvAgMBAAECggEBALIsu8caf/zCdc2MW8SelkJPCLG330DDVmjEO4YJlfl1\nkmjjkE2xdSDn9q0GyjbRoZQf36rPWkTTmyyNEYAQ/urrcCybWY2J/h9xMz+TrIm/\noabMT13QJF5FqJTHe7DZTReUxKMYJixEZ433dHCxsbByT2BZM75X2pg32aBEaTl0\nv9OfIMwfaJ5fSBmleJv4q/Lfd232/oOPzyr+EHfsMpTwOrgzQwPNoah1GvH+jBhz\ngoafi36vT8HVjJ+ZjOreH+Z2zVas683Le62rQaN/51jHS5vQGd2+z3qrI3kvu8KK\nWu0kIDQwCKtSFUT00MiKSaklE9JHf8rCNm3+en4kjfECgYEA/0Z2QaP4sOUt1+cZ\nIOprsMkJOl2sLTTDx3MseD2BxUukLDT8P3HTWLtBN9AkGlL6XD8WSs1k9YlGCqf2\ny9qC43Bgwsky8CH1ACk5K4PuWidGUQiqW4Oll/ris2vjagE+QfMHFFa7IalV5FvI\nv9L01jMqSL4duoM5w/WlLyLu8s0CgYEA6TlppWuxUMbxhEL5jmCZSSvsyhmIOdRk\nt4V9MuxwiRuItzywMo4+O7Hs6tjAxTnV/ROa33qyQtm4Olmd4Oa/TkmAJFX+mUrW\njUohDvm7Js2Y7/eeSRcRQLcgCjncpNe3AJoeVEvrGeaJMERYXnTwboUDKxsRyFFq\nAyuZHfuh86sCgYAm3pjFF+2XKd5YIKUv4OHy8jmIfJjp7T3eUcg0qtDmtMTTwmGi\nW3ed7C1bDUNiCr56a1S+oRW9WWCj4L1wft4tOYBSSIaMD++ZTa2Z1aXmblKDpjki\nZCJDyPzZ6xSeoH/VVOcADtDBqGIeumcP5lRHhVTr7J7kNnUGRJIZYk1WBQKBgQCl\nLAIEI4cKnDrD3uL60LL+vVsPrpFp02AZETMf84+nqpZin1pyE4dDo7kUgbnUdCd2\n+oF+sFi7O5Jb0MgdVY47FZbpJPYQ/o2AtvU+s+K1knozyPyS6wFPAeJxG5WGMTfr\n9zpvnOy+BSU3x8+F5e+5df5OcvdfFTmtUR05vNJvzQKBgHUtziAeWo7H6vxknFcc\nkVv7++a4IWF59eP+rpxlaHOtPTI43PLxJgSHEbw3epEzTUnCL9dpP8n48fuYuwM+\n+vpAujDcaGjGffmxW40E6wuGjOYBNg1zjSfEyjxF2fY+D9WoICSPHnrWB0/BEAZB\naL9Lho8+BUEFergUMjxUdvAS"
//saas_path_cert: './cert/prod/saas/lkl-apigw-v1.cer' #证书
//base64Sig, err := utils.RsaSignWithSha1Hex(message, prvKey)
var
path_private_key
string
//私钥文件地址
//if err != nil {
//平台类型 1:saas 2:shop 3:shop mobile 4:收银台 6:bk_shop 7:bk_shop_mobile
// return "", err
if
platform_type
==
2
||
platform_type
==
3
{
//}
// 谛宝多多自营
path_private_key
=
setting
.
Conf
.
Lakala
.
DbcPathPrivateKey
}
else
if
platform_type
==
6
||
platform_type
==
7
{
// 必康自营
path_private_key
=
setting
.
Conf
.
Lakala
.
BkPathPrivateKey
}
else
{
// SAAS
path_private_key
=
setting
.
Conf
.
Lakala
.
SaasPathPrivateKey
}
//todo 退款时,证书???
//return "", errors.New("输入项「平台类型(platform_type)」数据错误")
//fmt.Println("签名2:", base64Sig)
//base64Sig, err := utils.RSASign([]byte(message), "./cert/dev/OP00000003_private_key.pem")
//signature := base64Sig
base64Sig
,
err
:=
utils
.
RSASign
([]
byte
(
message
),
path_private_key
)
if
err
!=
nil
{
//err = utils.RSAVerify([]byte(message), signature, "./cert/OP00000003_cert.cer")
return
""
,
err
}
//err = utils.RSAVerify([]byte(message), signature, "./cert/OP00000003_private_key.pem")
//err = utils.RSAVerify([]byte(message), signature, "./cert/demo/lkl-apigw-v3.cer")
//pubKey := "MIIEMTCCAxmgAwIBAgIGAXRTgcMnMA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT\nAkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK\nDA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW\nYWxpZGF0aW9uIENBMB4XDTIwMTAxMDA1MjQxNFoXDTMwMTAwODA1MjQxNFowZTEL\nMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx\nFzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu\nQ09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt1zHL54HiI8d2sLJ\nlwoQji3/ln0nsvfZ/XVpOjuB+1YR6/0LdxEDMC/hxI6iH2Rm5MjwWz3dmN/6BZeI\ngwGeTOWJUZFARo8UduKrlhC6gWMRpAiiGC8wA8stikc5gYB+UeFVZi/aJ0WN0cpP\nJYCvPBhxhMvhVDnd4hNohnR1L7k0ypuWg0YwGjC25FaNAEFBYP9EYUyCJjE//9Z7\nsMzHR9SJYCqqo6r9bOH9G6sWKuEp+osuAh+kJIxJMHfipw7w3tEcWG0hce9u/el4\ncYJtg8/PPMVoccKmeCzMvarr7jdKP4lenJbtwlgyfs+JgNu60KMUJH8RS72wC9NY\nuFz09wIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo\ndJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE\nBwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh\na2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFJ2Kx9YZfmWpkKFnC33C0r5D\nK3rFMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA\nA4IBAQBZoeU0XyH9O0LGF9R+JyGwfU/O5amoB97VeM+5n9v2z8OCiIJ8eXVGKN9L\ntl9QkpTEanYwK30KkpHcJP1xfVkhPi/cCMgfTWQ5eKYC7Zm16zk7n4CP6IIgZIqm\nTVGsIGKk8RzWseyWPB3lfqMDR52V1tdA1S8lJ7a2Xnpt5M2jkDXoArl3SVSwCb4D\nAmThYhak48M++fUJNYII9JBGRdRGbfJ2GSFdPXgesUL2CwlReQwbW4GZkYGOg9LK\nCNPK6XShlNdvgPv0CCR08KCYRwC3HZ0y1F0NjaKzYdGNPrvOq9lA495ONZCvzYDo\ngmsu/kd6eqxTs/JwdaIYr4sCMg8Z"
//err = utils.RsaVerySignWithSha1Base64(message, signature, pubKey)
//rtn, err := utils.VerifyDerCert([]byte(message), "./cert/lkl-apigw-v2.cer")
//if err == nil {
// fmt.Println("验证签名成功!")
// return "", errors.New("验证签名成功!")x
//} else {
// fmt.Println("验证签名失败!")
// return "", err
//}
//fmt.Println(rtn)
//return "", errors.New("wangpei签名测试中。。。。。")
//fmt.Println("签名2:", base64Sig)
signature
:=
base64Sig
authorization
:=
"LKLAPI-SHA256withRSA "
+
"appid=
\"
"
+
appid
+
"
\"
,"
+
"serial_no=
\"
"
+
mchSerialNo
+
"
\"
,"
+
"timestamp=
\"
"
+
timestamp
+
"
\"
,"
+
"nonce_str=
\"
"
+
nonceStr
+
"
\"
,"
+
"signature=
\"
"
+
signature
+
"
\"
"
;
authorization
:=
"LKLAPI-SHA256withRSA "
+
"appid=
\"
"
+
appid
+
"
\"
,"
+
"serial_no=
\"
"
+
mchSerialNo
+
"
\"
,"
+
"timestamp=
\"
"
+
timestamp
+
"
\"
,"
+
"nonce_str=
\"
"
+
nonceStr
+
"
\"
,"
+
"signature=
\"
"
+
signature
+
"
\"
"
;
//System.out.println("authorization message :" + authorization);
//System.out.println("authorization message :" + authorization);
...
@@ -493,15 +489,15 @@ func GetNoticeURL(sourceCode uint8) string {
...
@@ -493,15 +489,15 @@ func GetNoticeURL(sourceCode uint8) string {
//domainName := beego.AppConfig.String("DomainName")
//domainName := beego.AppConfig.String("DomainName")
domainName
:=
setting
.
Conf
.
PayUrl
.
DomainName
domainName
:=
setting
.
Conf
.
PayUrl
.
DomainName
//domainName = "http://tpay-v2.pet-dbc.cn:14880";
//domainName = "http://tpay-v2.pet-dbc.cn:14880";
return
domainName
+
"/api/v1/pay/wx_notice"
return
domainName
+
"/api/v1/pay/wx_notice"
//目前微信、支付宝调同一个地址
// <= 5 是微信
if
sourceCode
<
5
{
return
domainName
+
"/api/v1/pay/wx_notice"
}
// > 5 是支付宝
//// <= 5 是微信
return
domainName
+
"/api/v1/pay/alipay_notice"
//if sourceCode < 5 {
// return domainName + "/api/v1/pay/wx_notice"
//}
//
//// > 5 是支付宝
//return domainName + "/api/v1/pay/alipay_notice"
//
//
//if isServe == 0 {
//if isServe == 0 {
// // payType 1: 原生 2: paymax
// // payType 1: 原生 2: paymax
...
@@ -722,7 +718,8 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
...
@@ -722,7 +718,8 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
var
url
string
var
url
string
data
:=
make
(
map
[
string
]
interface
{})
data
:=
make
(
map
[
string
]
interface
{})
url
=
"https://test.wsmsd.cn/sit/api/v3/labs/relation/refund"
//扫码-退款交易
//url = "https://test.wsmsd.cn/sit/api/v3/labs/relation/refund" //聚合扫码(退款交易)
url
=
setting
.
Conf
.
Lakala
.
UrlRefund
//聚合扫码(退款交易)
data
[
"req_time"
]
=
date_time1
data
[
"req_time"
]
=
date_time1
data
[
"version"
]
=
version
data
[
"version"
]
=
version
...
@@ -733,12 +730,12 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
...
@@ -733,12 +730,12 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
//source_code 1: 微信 Native 2:微信小程序 3:微信内支付 4:h5 跳微信
//source_code 1: 微信 Native 2:微信小程序 3:微信内支付 4:h5 跳微信
//5:支付宝(web)-扫码或登录支付宝账户 6:alipay(mobile) 7:alipay(app)
//5:支付宝(web)-扫码或登录支付宝账户 6:alipay(mobile) 7:alipay(app)
//9: B2C 10:bk支付宝web 11:bk 支付宝手机
//9: B2C 10:bk支付宝web 11:bk 支付宝手机
if
source_code
==
4
||
source_code
==
6
||
source_code
==
1
||
source_code
==
5
{
if
source_code
==
4
||
source_code
==
6
||
source_code
==
1
||
source_code
==
5
||
source_code
==
15
{
//聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
//聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
//data2["merchant_no"] = "8221210701101SB"
//data2["merchant_no"] = "8221210701101SB"
//data2["merchant_no"] = "8222900581201QB"
//data2["merchant_no"] = "8222900581201QB"
if
source_code
==
4
||
source_code
==
6
{
if
source_code
==
4
||
source_code
==
6
||
source_code
==
15
{
data2
[
"merchant_no"
]
=
merchant_no1
//微信H5、支付宝H5
data2
[
"merchant_no"
]
=
merchant_no1
//微信H5、支付宝H5
、快捷支付(银行卡)
}
else
{
}
else
{
data2
[
"merchant_no"
]
=
merchant_no2
//微信扫码、支付宝扫码
data2
[
"merchant_no"
]
=
merchant_no2
//微信扫码、支付宝扫码
}
}
...
@@ -808,7 +805,7 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
...
@@ -808,7 +805,7 @@ func UnifiedRefund(input *models.RefundParamInput, ip string) (interface{}, erro
}
}
//调拉卡拉接口
//调拉卡拉接口
err
,
_
,
lakala_rtn
:=
lakala_post
(
0
,
url
,
data_json
)
err
,
_
,
lakala_rtn
:=
lakala_post
(
nil
,
url
,
data_json
)
if
err
!=
nil
{
if
err
!=
nil
{
InsertPayBillDetailResponseBody
(
tx
,
billID
,
lakala_rtn
)
InsertPayBillDetailResponseBody
(
tx
,
billID
,
lakala_rtn
)
return
nil
,
err
return
nil
,
err
...
...
setting/setting.go
View file @
1dd7c9e0
...
@@ -138,6 +138,21 @@ type Lakala struct {
...
@@ -138,6 +138,21 @@ type Lakala struct {
// 4.扫码枪
// 4.扫码枪
MerchantNo4
string
`mapstructure:"merchant_no4"`
MerchantNo4
string
`mapstructure:"merchant_no4"`
TermNo4
string
`mapstructure:"term_no4"`
TermNo4
string
`mapstructure:"term_no4"`
// 配置项
// 谛宝多多自营
DbcPathPrivateKey
string
`mapstructure:"dbc_path_private_key"`
//私钥
DbcPathCert
string
`mapstructure:"dbc_path_cert"`
//证书
// 必康自营
BkPathPrivateKey
string
`mapstructure:"bk_path_private_key"`
//私钥
BkPathCert
string
`mapstructure:"bk_path_cert"`
//证书
// SAAS
SaasPathPrivateKey
string
`mapstructure:"saas_path_private_key"`
//私钥
SaasPathCert
string
`mapstructure:"saas_path_cert"`
//证书
// 拉卡拉接口地址
UrlCreate
string
`mapstructure:"url_create"`
//聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
UrlPreorder
string
`mapstructure:"url_preorder"`
//聚合主扫(微信JSAPI、微信小程序)
UrlMicropay
string
`mapstructure:"url_micropay"`
//聚合被扫(扫码枪)
UrlRefund
string
`mapstructure:"url_refund"`
//聚合扫码-退款交易
}
}
type
UploadImage
struct
{
type
UploadImage
struct
{
...
@@ -170,7 +185,7 @@ type Esign struct {
...
@@ -170,7 +185,7 @@ type Esign struct {
// Init 支持热修改的viper设置
// Init 支持热修改的viper设置
func
Init
()
error
{
func
Init
()
error
{
viper
.
SetConfigFile
(
"conf/
dev/
config.yaml"
)
// 指定配置文件路径
viper
.
SetConfigFile
(
"conf/config.yaml"
)
// 指定配置文件路径
err
:=
viper
.
ReadInConfig
()
// 读取配置信息
err
:=
viper
.
ReadInConfig
()
// 读取配置信息
if
err
!=
nil
{
// 读取配置信息失败
if
err
!=
nil
{
// 读取配置信息失败
fmt
.
Printf
(
"viper.ReadInConfig failed, new_error:%v
\n
"
,
err
)
fmt
.
Printf
(
"viper.ReadInConfig failed, new_error:%v
\n
"
,
err
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment