refactor(card_sender): 统一使用 resty 客户端处理 HTTP 请求- 替换 beego 的 httplib为 go-resty 实现统一的 HTTP 客户端逻辑
- 集成 otelresty 实现请求链路追踪 -优化参数传递方式,使用 SetFormData 方法设置表单数据 - 更新测试代码以适配新的客户端调用方式 - 移除不再使用的 net/url 包导入 - 调整日志记录内容,增强调试信息可读性- 修正 JSON 解析逻辑,直接从 response.Body() 获取数据 - 清理冗余代码注释,提升代码整洁度
This commit is contained in:
35
go.mod
35
go.mod
@@ -4,10 +4,9 @@ go 1.24.0
|
||||
|
||||
toolchain go1.24.6
|
||||
|
||||
require github.com/beego/beego/v2 v2.3.8
|
||||
|
||||
require (
|
||||
github.com/PuerkitoBio/goquery v1.10.3
|
||||
github.com/beego/beego/v2 v2.3.8
|
||||
github.com/bytedance/gopkg v0.1.3
|
||||
github.com/bytedance/sonic v1.14.1
|
||||
github.com/dubonzi/otelresty v1.6.0
|
||||
@@ -20,7 +19,7 @@ require (
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
|
||||
github.com/natefinch/lumberjack v2.0.0+incompatible
|
||||
github.com/prometheus/client_golang v1.23.2
|
||||
github.com/redis/go-redis/v9 v9.13.0
|
||||
github.com/redis/go-redis/v9 v9.14.0
|
||||
github.com/shopspring/decimal v1.4.0
|
||||
github.com/stretchr/testify v1.11.1
|
||||
github.com/widuu/gojson v0.0.0-20170212122013-7da9d2cd949b
|
||||
@@ -37,7 +36,7 @@ require (
|
||||
go.opentelemetry.io/otel/sdk/metric v1.38.0
|
||||
go.opentelemetry.io/otel/trace v1.38.0
|
||||
go.uber.org/zap v1.27.0
|
||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792
|
||||
golang.org/x/exp v0.0.0-20250911091902-df9299821621
|
||||
)
|
||||
|
||||
require (
|
||||
@@ -49,7 +48,7 @@ require (
|
||||
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/cloudwego/base64x v0.1.6 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||
github.com/go-logr/logr v1.4.3 // indirect
|
||||
@@ -57,31 +56,29 @@ require (
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
|
||||
github.com/hashicorp/golang-lru v1.0.2 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
||||
github.com/lib/pq v1.10.9 // indirect
|
||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/prometheus/client_model v0.6.2 // indirect
|
||||
github.com/prometheus/common v0.66.1 // indirect
|
||||
github.com/prometheus/procfs v0.17.0 // indirect
|
||||
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 // indirect
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
||||
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.38.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.7.1 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.8.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
go.yaml.in/yaml/v2 v2.4.2 // indirect
|
||||
golang.org/x/arch v0.19.0 // indirect
|
||||
golang.org/x/crypto v0.41.0 // indirect
|
||||
golang.org/x/net v0.43.0 // indirect
|
||||
golang.org/x/sys v0.35.0 // indirect
|
||||
go.yaml.in/yaml/v2 v2.4.3 // indirect
|
||||
golang.org/x/arch v0.21.0 // indirect
|
||||
golang.org/x/crypto v0.42.0 // indirect
|
||||
golang.org/x/net v0.44.0 // indirect
|
||||
golang.org/x/sys v0.36.0 // indirect
|
||||
golang.org/x/text v0.29.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect
|
||||
google.golang.org/grpc v1.75.0 // indirect
|
||||
google.golang.org/protobuf v1.36.8 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 // indirect
|
||||
google.golang.org/grpc v1.75.1 // indirect
|
||||
google.golang.org/protobuf v1.36.9 // indirect
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
|
||||
70
go.sum
70
go.sum
@@ -27,9 +27,8 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
|
||||
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
|
||||
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
||||
github.com/dubonzi/otelresty v1.6.0 h1:Oi9fY9bj3/J5R9+FZVMOk+10HtLs6S57fy8nQY5X3C0=
|
||||
@@ -79,10 +78,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
|
||||
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
|
||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/lib/pq v1.10.5 h1:J+gdV2cUmX7ZqL2B0lFcW0m+egaHC2V3lpO8nWxyYiQ=
|
||||
github.com/lib/pq v1.10.5/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/mattn/go-sqlite3 v1.14.27 h1:drZCnuvf37yPfs95E5jd9s3XhdVWLal+6BOK6qrv6IU=
|
||||
github.com/mattn/go-sqlite3 v1.14.27/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
|
||||
@@ -91,9 +90,8 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM=
|
||||
github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
|
||||
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
|
||||
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
|
||||
@@ -102,10 +100,10 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z
|
||||
github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
|
||||
github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0=
|
||||
github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw=
|
||||
github.com/redis/go-redis/v9 v9.13.0 h1:PpmlVykE0ODh8P43U0HqC+2NXHXwG+GUtQyz+MPKGRg=
|
||||
github.com/redis/go-redis/v9 v9.13.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
|
||||
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
|
||||
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
|
||||
github.com/redis/go-redis/v9 v9.14.0 h1:u4tNCjXOyzfgeLN+vAZaW1xUooqWDqVEsZN0U01jfAE=
|
||||
github.com/redis/go-redis/v9 v9.14.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
|
||||
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
|
||||
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
|
||||
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 h1:v9ezJDHA1XGxViAUSIoO/Id7Fl63u6d0YmsAm+/p2hs=
|
||||
github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02/go.mod h1:RF16/A3L0xSa0oSERcnhd8Pu3IXSDZSK2gmGIMsttFE=
|
||||
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
|
||||
@@ -126,8 +124,8 @@ github.com/widuu/gojson v0.0.0-20170212122013-7da9d2cd949b h1:ieRJ8K7QAPWWltEOv7
|
||||
github.com/widuu/gojson v0.0.0-20170212122013-7da9d2cd949b/go.mod h1:9W1pyetRkwXqjR9tjOSrSuhGHBK0EqXoQSwWbhBHHwA=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
|
||||
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
|
||||
go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 h1:aBKdhLVieqvwWe9A79UHI/0vgp2t/s2euY8X59pGRlw=
|
||||
go.opentelemetry.io/contrib/bridges/otelzap v0.13.0/go.mod h1:SYqtxLQE7iINgh6WFuVi2AI70148B8EI35DSk0Wr8m4=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
|
||||
@@ -160,18 +158,18 @@ go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6
|
||||
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
|
||||
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
|
||||
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
|
||||
go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
|
||||
go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
|
||||
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
|
||||
go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
|
||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
|
||||
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
|
||||
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
|
||||
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
|
||||
golang.org/x/arch v0.19.0 h1:LmbDQUodHThXE+htjrnmVD73M//D9GTH6wFZjyDkjyU=
|
||||
golang.org/x/arch v0.19.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk=
|
||||
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
|
||||
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
|
||||
golang.org/x/arch v0.21.0 h1:iTC9o7+wP6cPWpDWkivCvQFGAHDQ59SrSxsLPcnkArw=
|
||||
golang.org/x/arch v0.21.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
@@ -179,10 +177,10 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
|
||||
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
|
||||
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
|
||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
||||
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
|
||||
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
|
||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4=
|
||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
|
||||
golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
|
||||
golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
|
||||
golang.org/x/exp v0.0.0-20250911091902-df9299821621 h1:2id6c1/gto0kaHYyrixvknJ8tUK/Qs5IsmBtrc+FtgU=
|
||||
golang.org/x/exp v0.0.0-20250911091902-df9299821621/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
@@ -200,8 +198,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
|
||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
|
||||
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
|
||||
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
|
||||
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
|
||||
golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
|
||||
golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
@@ -224,8 +222,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
|
||||
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
|
||||
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
@@ -260,14 +258,14 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
|
||||
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc=
|
||||
google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4=
|
||||
google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
|
||||
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
|
||||
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 h1:jm6v6kMRpTYKxBRrDkYAitNJegUeO1Mf3Kt80obv0gg=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9/go.mod h1:LmwNphe5Afor5V3R5BppOULHOnt2mCIf+NxMd4XiygE=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 h1:V1jCN2HBa8sySkR5vLcCSqJSTMv093Rw9EJefhQGP7M=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ=
|
||||
google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
|
||||
google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
|
||||
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
|
||||
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
|
||||
@@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"gateway/internal/otelTrace"
|
||||
"gateway/internal/utils"
|
||||
"net/url"
|
||||
"testing"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
@@ -16,14 +15,14 @@ func TestSendCardTaskTypeEggplant_CreateOrder(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
eggService := SendCardTaskTypeEggplant{}
|
||||
params := map[string]string{
|
||||
"mid": "10166",
|
||||
"mid": "10211",
|
||||
"order_no": utils.GenerateId(),
|
||||
"client_ip": utils.GenerateIpv4(),
|
||||
"amount": "10",
|
||||
"pay_type": "8102",
|
||||
"pay_type": "8069",
|
||||
"notify_url": "https://baidu.com",
|
||||
}
|
||||
params["sign"] = eggService.sign(ctx, params, "d9b01f02d907010e2376a4fbaba8ec2ad9b01f02d907010e")
|
||||
params["sign"] = eggService.sign(ctx, params, "2c5131ef1cbc3ba8d5b9267ab607d53b2c5131ef1cbc3ba8")
|
||||
resp, err := resty.New().R().SetFormData(params).Post("https://admin.kmsfkm.xyz/api/order/create")
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("创建订单失败", zap.Error(err))
|
||||
@@ -44,16 +43,16 @@ func TestSendCardTaskTypeEggplant_CreateOrder(t *testing.T) {
|
||||
|
||||
var resData AutoGenerated
|
||||
err = json.Unmarshal(resp.Body(), &resData)
|
||||
otelTrace.Logger.WithContext(ctx).Info("创建订单页面:", zap.Any("response", resp.String()))
|
||||
otelTrace.Logger.WithContext(ctx).Info("创建订单页面:", zap.Any("response", resp.String()), zap.Any("formData", params))
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("创建订单失败", zap.Error(err))
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("创建订单成功:", zap.Any("resData", resData))
|
||||
payUrl, err := url.Parse(resData.Data.ForwardUrl)
|
||||
|
||||
(&eggplantProductCode{
|
||||
CardNo: "6228480000000001",
|
||||
CardPassword: "123456",
|
||||
ProductCode: "",
|
||||
}).channelSix(ctx, payUrl)
|
||||
//payUrl, err := url.Parse(resData.Data.ForwardUrl)
|
||||
//
|
||||
//(&eggplantProductCode{
|
||||
// CardNo: "6228480000000001",
|
||||
// CardPassword: "123456",
|
||||
// ProductCode: "",
|
||||
//}).channelSix(ctx, payUrl)
|
||||
}
|
||||
|
||||
@@ -22,9 +22,11 @@ import (
|
||||
|
||||
"github.com/PuerkitoBio/goquery"
|
||||
"github.com/beego/beego/v2/client/httplib"
|
||||
"github.com/dubonzi/otelresty"
|
||||
"github.com/duke-git/lancet/v2/convertor"
|
||||
"github.com/duke-git/lancet/v2/maputil"
|
||||
"github.com/duke-git/lancet/v2/random"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/google/uuid"
|
||||
"github.com/widuu/gojson"
|
||||
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
|
||||
@@ -55,23 +57,20 @@ func (s *SendCardTaskTypeFavorableClouds) CreateOrder(ctx context.Context, roadU
|
||||
createdOrderUrl = "http://JLfbU87UklGu.itxitong.xyz/api/services/app/Api_PayOrder/CreateOrderPay"
|
||||
}
|
||||
params["sign"] = s.GenSign(ctx, params, gojson.Json(roadInfo.Params).Get("key").Tostring())
|
||||
req := httplib.NewBeegoRequestWithCtx(ctx, createdOrderUrl, "POST").
|
||||
SetTransport(otelhttp.NewTransport(http.DefaultTransport)).
|
||||
SetTimeout(time.Second*5, time.Second*5).Retries(3).
|
||||
Header("Accept-Charset", "utf-8")
|
||||
|
||||
paramsStr := map[string]string{}
|
||||
for k, v := range params {
|
||||
req.Param(k, convertor.ToString(v))
|
||||
paramsStr[k] = convertor.ToString(v)
|
||||
}
|
||||
|
||||
response, err := req.String()
|
||||
otelTrace.Logger.WithContext(ctx).Info("【祥云】创建订单返回结果", zap.Any("response", response), zap.Any("params", params))
|
||||
|
||||
webClient := resty.New().SetTimeout(time.Second * 5).SetRetryCount(3)
|
||||
otelresty.TraceClient(webClient)
|
||||
response, err := webClient.R().SetContext(ctx).SetFormData(paramsStr).Post(createdOrderUrl)
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("祥云 请求失败:", zap.Error(err))
|
||||
return orderPoolItem, errors.New("内部数据处理失败")
|
||||
}
|
||||
|
||||
otelTrace.Logger.WithContext(ctx).Info("【祥云】创建订单返回结果", zap.Any("response", response.String()), zap.Any("params", params))
|
||||
|
||||
type AutoGenerated struct {
|
||||
Status int `json:"status"`
|
||||
ErrMsg string `json:"errMsg,omitempty"`
|
||||
@@ -85,14 +84,12 @@ func (s *SendCardTaskTypeFavorableClouds) CreateOrder(ctx context.Context, roadU
|
||||
}
|
||||
|
||||
var resData AutoGenerated
|
||||
err = json.Unmarshal([]byte(response), &resData)
|
||||
err = json.Unmarshal(response.Body(), &resData)
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("json解析失败", zap.Error(err), zap.Any("response", response))
|
||||
otelTrace.Logger.WithContext(ctx).Error("json解析失败", zap.Error(err))
|
||||
return orderPoolItem, errors.New("内部数据处理失败")
|
||||
}
|
||||
|
||||
otelTrace.Logger.WithContext(ctx).Info("【祥云】远端请求返回数据:", zap.Any("response", response), zap.Any("解析结果", resData))
|
||||
|
||||
if resData.Status != 0 {
|
||||
return orderPoolItem, errors.New(resData.ErrMsg)
|
||||
}
|
||||
@@ -543,7 +540,7 @@ func (s *SendCardTaskTypeFavorableClouds) fcProcessStrategy5(ctx context.Context
|
||||
CardNo: cardNo,
|
||||
CardPassword: cardPwd,
|
||||
}
|
||||
isOk, msg, _ := eggplantService.channelFour(ctx, payUrl)
|
||||
isOk, msg := eggplantService.channelFour(ctx, payUrl)
|
||||
return isOk, msg
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +1,44 @@
|
||||
package card_sender
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"gateway/internal/config"
|
||||
"gateway/internal/otelTrace"
|
||||
"gateway/internal/utils"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/dubonzi/otelresty"
|
||||
"github.com/duke-git/lancet/v2/maputil"
|
||||
"github.com/duke-git/lancet/v2/structs"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func TestSendCardTaskTypeJinke_CreateOrder(t *testing.T) {
|
||||
service := SendCardTaskTypeJinke{}
|
||||
ctx := context.Background()
|
||||
order, _ := service.CreateOrder(ctx, "4444cu6b56uqgjec73alc5e0", 100)
|
||||
otelTrace.Logger.WithContext(ctx).Info("order", zap.Any("order", order))
|
||||
// service.HandleSendCardTask(ctx, order, SendCardTask{
|
||||
// CardInfo: supplier.RedeemCardInfo{
|
||||
// CardNo: "1234567890",
|
||||
// Data: "1234567890",
|
||||
// FaceType: "1",
|
||||
// RecoveryType: "1",
|
||||
// },
|
||||
// })
|
||||
webClient := resty.New().SetTimeout(time.Second * 5).SetRetryCount(3)
|
||||
otelresty.TraceClient(webClient)
|
||||
|
||||
orderId := utils.GenerateId()
|
||||
reqData := struct {
|
||||
MchId string `json:"mchId"`
|
||||
ProductId string `json:"productId"`
|
||||
OutTradeNo string `json:"outTradeNo"`
|
||||
Amount int `json:"amount"`
|
||||
ReqTime int64 `json:"reqTime"`
|
||||
NotifyUrl string `json:"notifyUrl"`
|
||||
Sign string `json:"sign,omitempty"`
|
||||
}{
|
||||
MchId: "1064",
|
||||
ProductId: "112",
|
||||
OutTradeNo: orderId,
|
||||
Amount: int(10 * 100),
|
||||
ReqTime: time.Now().UnixMilli(),
|
||||
NotifyUrl: fmt.Sprintf("%s/jinke/notify", config.GetConfig().GatewayAddr()),
|
||||
Sign: "",
|
||||
}
|
||||
params, _ := structs.ToMap(reqData)
|
||||
reqData.Sign = (&SendCardTaskTypeJinke{}).sign(params, maputil.Keys(params), "jkk4jawlJpCXK7Zew62ATNE")
|
||||
response, _ := webClient.R().SetBody(reqData).Post("https://jkapi-aibi-shagquw.jknba.com/api/v1/pay/unifiedOrder")
|
||||
otelTrace.Logger.WithContext(t.Context()).Info("请求结果", zap.Any("response", response), zap.Any("params", params))
|
||||
}
|
||||
|
||||
@@ -15,9 +15,11 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/beego/beego/v2/client/httplib"
|
||||
"github.com/dubonzi/otelresty"
|
||||
"github.com/duke-git/lancet/v2/convertor"
|
||||
"github.com/duke-git/lancet/v2/maputil"
|
||||
"github.com/duke-git/lancet/v2/pointer"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/widuu/gojson"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
@@ -33,8 +35,8 @@ func (s *SendCardTaskTypeLuban) CreateOrder(ctx context.Context, roadUid string,
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, roadUid)
|
||||
|
||||
cfg := new(config.Config)
|
||||
request := httplib.NewBeegoRequestWithCtx(ctx, "http://jiuzpay.xyz:56700/api/pay/create_order", "POST").Retries(3).RetryDelay(3*time.Second).
|
||||
SetTimeout(time.Second*5, time.Second*5)
|
||||
webClient := resty.New().SetTimeout(time.Second * 5).SetRetryCount(3)
|
||||
otelresty.TraceClient(webClient)
|
||||
|
||||
orderId := utils.GenerateId()
|
||||
params := map[string]any{
|
||||
@@ -51,12 +53,16 @@ func (s *SendCardTaskTypeLuban) CreateOrder(ctx context.Context, roadUid string,
|
||||
}
|
||||
|
||||
params["sign"] = s.GenSign(ctx, params, gojson.Json(roadInfo.Params).Get("key").Tostring())
|
||||
|
||||
paramsStr := map[string]string{}
|
||||
for k, v := range params {
|
||||
request.Param(k, convertor.ToString(v))
|
||||
paramsStr[k] = convertor.ToString(v)
|
||||
}
|
||||
createdUrl := gojson.Json(roadInfo.Params).Get("createdUrl").Tostring()
|
||||
if createdUrl == "" {
|
||||
createdUrl = "http://jiuzpay.xyz:56700/api/pay/create_order"
|
||||
}
|
||||
|
||||
response, err := request.String()
|
||||
response, err := webClient.R().SetFormData(paramsStr).Post(createdUrl)
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("请求失败", zap.Error(err))
|
||||
return orderPoolItem, errors.New("请求失败")
|
||||
@@ -66,9 +72,9 @@ func (s *SendCardTaskTypeLuban) CreateOrder(ctx context.Context, roadUid string,
|
||||
PayUrl string `json:"payUrl"`
|
||||
}{}
|
||||
|
||||
otelTrace.Logger.WithContext(ctx).Info("鲁班发送通知", zap.String("response", response), zap.Any("params", params))
|
||||
if err = json.Unmarshal([]byte(response), &responseStruct); err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("转换返回值失败", zap.Error(err), zap.String("response", response))
|
||||
otelTrace.Logger.WithContext(ctx).Info("鲁班发送通知", zap.String("response", response.String()), zap.Any("params", params))
|
||||
if err = json.Unmarshal(response.Body(), &responseStruct); err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("转换返回值失败", zap.Error(err))
|
||||
return orderPoolItem, errors.New("转换返回值失败")
|
||||
}
|
||||
|
||||
|
||||
@@ -1,26 +1,40 @@
|
||||
package card_sender
|
||||
|
||||
import (
|
||||
"gateway/internal/otelTrace"
|
||||
"gateway/internal/utils"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/dubonzi/otelresty"
|
||||
"github.com/duke-git/lancet/v2/convertor"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func TestSendCardTaskTypeLuban_CreateOrder(t *testing.T) {
|
||||
//service := &SendCardTaskTypeLuban{}
|
||||
//order, err := service.CreateOrder(context.Background(), "1234567890", 100)
|
||||
//if err != nil {
|
||||
// t.Errorf("CreateOrder() error = %v", err)
|
||||
//}
|
||||
//t.Logf("CreateOrder() got = %v", order)
|
||||
//service.HandleSendCardTask(context.Background(), order, SendCardTask{
|
||||
// CardInfo: supplier.RedeemCardInfo{
|
||||
// CardNo: "1234567890",
|
||||
// Data: "1234567890",
|
||||
// FaceType: "1",
|
||||
// RecoveryType: "1",
|
||||
// },
|
||||
//})
|
||||
uid, _ := uuid.NewV7()
|
||||
t.Log(uid.String())
|
||||
webClient := resty.New().SetTimeout(time.Second * 5).SetRetryCount(3)
|
||||
otelresty.TraceClient(webClient)
|
||||
|
||||
orderId := utils.GenerateId()
|
||||
params := map[string]any{
|
||||
"mchId": "",
|
||||
"productId": "",
|
||||
"mchOrderNo": orderId,
|
||||
"amount": 10 * 100,
|
||||
"currency": "cny",
|
||||
"notifyUrl": "https://baidu.com",
|
||||
"subject": "网络购物",
|
||||
"body": "网络购物",
|
||||
"reqTime": time.Now().Format("20060102150405"),
|
||||
"version": "1.0",
|
||||
}
|
||||
|
||||
params["sign"] = (&SendCardTaskTypeLuban{}).GenSign(t.Context(), params, "")
|
||||
paramsStr := map[string]string{}
|
||||
for k, v := range params {
|
||||
paramsStr[k] = convertor.ToString(v)
|
||||
}
|
||||
response, _ := webClient.R().SetFormData(paramsStr).Post("http://jiuzpay.xyz:56700/api/pay/create_order")
|
||||
otelTrace.Logger.WithContext(t.Context()).Info("请求结果", zap.String("response", response.String()))
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ func (s *SendCardTaskTypeWanXin) HandleSendCardTask(ctx context.Context, orderIt
|
||||
return fmt.Errorf("解析数据失败")
|
||||
}
|
||||
if strings.Contains(orderItem.PayURL, "qfdemo.kekep.cn") {
|
||||
if ok, msg, _ := (&eggplantProductCode{
|
||||
if ok, msg := (&eggplantProductCode{
|
||||
CardNo: task.CardInfo.CardNo,
|
||||
CardPassword: task.CardInfo.Data,
|
||||
ProductCode: orderItem.ProductCode,
|
||||
|
||||
Reference in New Issue
Block a user