diff --git a/common/common.go b/common/common.go index ad7b334..9c5bf91 100644 --- a/common/common.go +++ b/common/common.go @@ -1,3 +1,19 @@ package common +import ( + "bytes" + "io" + "net/http" +) + var Layout = "2006-01-02 15:04:05" +var YSEPAYURL = "https://qrcode.ysepay.com/gateway.do" //银盛的微信小程序接口地址 + +func HttpPost(url string, jsonBytes []byte) ([]byte, error) { + resp, err := http.Post(url, "application/json", bytes.NewReader(jsonBytes)) + if err != nil { + return nil, err + } + defer resp.Body.Close() + return io.ReadAll(resp.Body) +} diff --git a/config.yaml b/config.yaml index 580459f..0d22496 100644 --- a/config.yaml +++ b/config.yaml @@ -1,5 +1,5 @@ server: - address: ":8080" + address: ":8000" openapiPath: "/api.json" swaggerPath: "/swagger" logger: @@ -19,8 +19,10 @@ database: weixin: appId: "wx5078c9d7b9eca030" #"wx231bd3f08954da9e" #微信小程序appid ysepay: + url: "http://127.0.0.1:8080/pay" notifyUrl: "http://xxxxxxxxxxxxx/ysePay/notifyWxPay" CERTID: "826452972730006" + busCode: "00510030" #业务代码 MQTT: topic: "pay" ip: "101.200.127.15" #测试环境IP diff --git a/log/2024-11-07.log b/log/2024-11-07.log new file mode 100644 index 0000000..53186fc --- /dev/null +++ b/log/2024-11-07.log @@ -0,0 +1,46 @@ +2024-11-07 17:07:35.056 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:07:35.085 main.go:25: 初始化成功 +2024-11-07 17:07:38.843 pay.go:31: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[165] Content-Type:[application/json] Postman-Token:[d16b68b0-f446-4fb8-9806-126c00da3a42] User-Agent:[PostmanRuntime/7.42.0]] 0xc0002643c0 165 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:55583 /wxApi/payQrCode 0xc00033e7b0 [] map[]} +2024-11-07 17:07:40.912 pay.go:38: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:0} +2024-11-07 17:08:26.172 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:08:26.214 main.go:25: 初始化成功 +2024-11-07 17:08:29.530 pay.go:31: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[378a53b3-6d06-4c2e-946a-1957a52ab990] User-Agent:[PostmanRuntime/7.42.0]] 0xc0001f4140 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:55606 /wxApi/payQrCode 0xc00033c720 [] map[]} +2024-11-07 17:08:31.442 pay.go:38: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:15:07.911 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:15:07.944 main.go:25: 初始化成功 +2024-11-07 17:15:13.410 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[93d13185-595e-4b36-b2fb-27763c437f62] User-Agent:[PostmanRuntime/7.42.0]] 0xc000262200 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:55728 /wxApi/payQrCode 0xc000360960 [] map[]} +2024-11-07 17:15:15.597 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:23:17.264 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:23:17.296 main.go:25: 初始化成功 +2024-11-07 17:23:33.962 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[36e0dc61-eaff-4a7d-bc01-7e3f55af52c9] User-Agent:[PostmanRuntime/7.42.0]] 0xc00007d100 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:56619 /wxApi/payQrCode 0xc0002618c0 [] map[]} +2024-11-07 17:23:33.962 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:25:10.675 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:25:10.703 main.go:25: 初始化成功 +2024-11-07 17:25:13.071 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[6d1c0d36-fcbf-4ca1-9c23-f25696bf3379] User-Agent:[PostmanRuntime/7.42.0]] 0xc00031a4c0 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:56683 /wxApi/payQrCode 0xc0002a1650 [] map[]} +2024-11-07 17:25:13.072 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:34:49.408 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:34:49.438 main.go:25: 初始化成功 +2024-11-07 17:34:57.512 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[c1f43b19-370f-48e0-8951-570522b924fe] User-Agent:[PostmanRuntime/7.42.0]] 0xc00007c180 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:56853 /wxApi/payQrCode 0xc00033ecc0 [] map[]} +2024-11-07 17:34:57.513 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:43:23.746 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:43:23.777 main.go:25: 初始化成功 +2024-11-07 17:43:42.690 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[7a426374-fcd7-4ba6-9461-cd7c558ad82a] User-Agent:[PostmanRuntime/7.42.0]] 0xc0003a0240 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:56979 /wxApi/payQrCode 0xc0000c3800 [] map[]} +2024-11-07 17:43:42.691 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:47:52.308 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:47:52.337 main.go:25: 初始化成功 +2024-11-07 17:47:54.438 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[24eaf20d-e5b6-4e5a-99f6-23fed4eb18b2] User-Agent:[PostmanRuntime/7.42.0]] 0xc00007c540 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:57072 /wxApi/payQrCode 0xc0000370e0 [] map[]} +2024-11-07 17:47:54.439 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:48:56.705 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:48:56.741 main.go:25: 初始化成功 +2024-11-07 17:48:58.370 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[8110d4f2-1654-4322-a356-934f5886d824] User-Agent:[PostmanRuntime/7.42.0]] 0xc0001e2340 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:57095 /wxApi/payQrCode 0xc00033ee10 [] map[]} +2024-11-07 17:48:58.372 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:50:55.781 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:50:55.811 main.go:25: 初始化成功 +2024-11-07 17:50:58.552 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[7d74cf08-ada9-452b-bf58-6596c2956e2f] User-Agent:[PostmanRuntime/7.42.0]] 0xc0003a0240 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:57125 /wxApi/payQrCode 0xc0001cf620 [] map[]} +2024-11-07 17:50:58.556 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 17:52:31.276 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 17:52:31.316 main.go:25: 初始化成功 +2024-11-07 17:52:37.190 pay.go:29: {POST /wxApi/payQrCode HTTP/1.1 1 1 map[Accept:[*/*] Accept-Encoding:[gzip, deflate, br] Connection:[keep-alive] Content-Length:[183] Content-Type:[application/json] Postman-Token:[5d765f3c-60cc-475a-aa87-f6a925fd9051] User-Agent:[PostmanRuntime/7.42.0]] 0xc0001d2300 183 [] false 127.0.0.1:8000 map[] map[] map[] 127.0.0.1:57186 /wxApi/payQrCode 0xc0002910e0 [] map[]} +2024-11-07 17:52:37.190 pay.go:36: {ShopId:aaaaaaaaaa Price:65.3 Amount:65.2 Bean:0.1 OpenId:aaaaaaaaaaaaaaaaabbbbbbbb Mobile:15963264270 Channel:1} +2024-11-07 18:07:06.387 mqtt.go:31: MQTT连接地址: mqtt://101.200.127.15:1883 +2024-11-07 18:07:06.423 main.go:25: 初始化成功 diff --git a/log/sqlLog/2024-11-07.log b/log/sqlLog/2024-11-07.log new file mode 100644 index 0000000..f23e5df --- /dev/null +++ b/log/sqlLog/2024-11-07.log @@ -0,0 +1,75 @@ +2024-11-07 11:34:11.614 [DEBU] {1cedb2c343920518b575875132b53297} [ 77 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 11:34:11.631 [DEBU] {549f5ac843920518b6758751cf93f31b} [ 16 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 11:34:11.659 [DEBU] {e0b9a5c243920518b4758751becaeb88} [ 28 ms] [default] [yuledui] [rows:31 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'account' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 11:34:11.703 [DEBU] {e0b9a5c243920518b4758751becaeb88} [ 23 ms] [default] [yuledui] [rows:10 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'dict' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 11:34:11.742 [DEBU] {e0b9a5c243920518b4758751becaeb88} [ 21 ms] [default] [yuledui] [rows:9 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'district' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 11:34:11.783 [DEBU] {e0b9a5c243920518b4758751becaeb88} [ 21 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 11:34:11.823 [DEBU] {e0b9a5c243920518b4758751becaeb88} [ 21 ms] [default] [yuledui] [rows:12 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'promoter' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 11:34:11.865 [DEBU] {e0b9a5c243920518b4758751becaeb88} [ 22 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 11:34:11.905 [DEBU] {e0b9a5c243920518b4758751becaeb88} [ 21 ms] [default] [yuledui] [rows:12 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop_admin' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:07:41.212 [DEBU] {c8ccb99b76a405189953d151d34c6dc5} [ 93 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:07:41.228 [DEBU] {a88b4ca176a405189a53d151fde08493} [ 15 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:07:41.256 [DEBU] {8ce841a276a405189b53d151ac67e95d} [ 27 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:07:41.285 [DEBU] {cccee7a376a405189c53d151299c9e0d} [ 29 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:07:44.926 [DEBU] {cc43437d77a405189d53d15172e5ed6c} [ 23 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:07:44.962 [DEBU] {18b4a87e77a405189e53d151e3305be9} [ 36 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0g6s0d5fttgh2knlk200p8dywf',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:07:44','2024-11-07 17:07:44','',0) RETURNING "order_id" +2024-11-07 17:08:31.671 [DEBU] {ec101c5c82a405184dac4750bde6f5a4} [ 80 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:08:31.687 [DEBU] {a834ec6082a405184eac4750f20bc6dc} [ 15 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:08:31.723 [DEBU] {047ee16182a405184fac4750088df625} [ 35 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:08:31.754 [DEBU] {18df006482a4051850ac4750c185ced4} [ 30 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:08:35.071 [DEBU] {18c12a2a83a4051851ac475058807fed} [ 23 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:08:35.102 [DEBU] {14ae952b83a4051852ac4750fc2daaa7} [ 30 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0g0c0d5ftu3lqplfw20052lkj8',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:08:34','2024-11-07 17:08:34','',1) RETURNING "order_id" +2024-11-07 17:15:15.916 [DEBU] {708e797be0a405183c288c3d3ac44184} [ 71 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:15:15.932 [DEBU] {c847cd7fe0a405183d288c3d1f9b5454} [ 15 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:15:15.958 [DEBU] {00b8b080e0a405183e288c3d2d65df95} [ 26 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:15:15.992 [DEBU] {1cdf4882e0a405183f288c3d8f2341b2} [ 33 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:15:23.555 [DEBU] {b0264044e2a4051840288c3daa2ef8cc} [ 47 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:15:23.594 [DEBU] {5c4b0d47e2a4051841288c3d09836c27} [ 38 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0gec0d5ftzb3r79jw200re6exv',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:15:22','2024-11-07 17:15:22','',1) RETURNING "order_id" +2024-11-07 17:23:34.035 [DEBU] {ec0aa97554a505188d1a2d70b771759c} [ 72 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:23:34.049 [DEBU] {6cadf57954a505188e1a2d7058326499} [ 14 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:23:34.076 [DEBU] {000ece7a54a505188f1a2d70dd7a4dbc} [ 27 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:23:34.102 [DEBU] {400f637c54a50518901a2d703c0d42da} [ 26 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:23:34.125 [DEBU] {0462047e54a50518911a2d706aa6208a} [ 22 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:23:34.153 [DEBU] {200e597f54a50518921a2d70f54864d1} [ 27 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq01qk0d5fu5ltbnddc2006f9hpf',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:23:34','2024-11-07 17:23:34','',1) RETURNING "order_id" +2024-11-07 17:25:13.163 [DEBU] {3ceb0c896ba50518bc56911c59c42bd0} [ 90 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:25:13.181 [DEBU] {0875758e6ba50518bd56911c2ae047c6} [ 18 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:25:13.209 [DEBU] {d4d47f8f6ba50518be56911c213cd4e0} [ 28 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:25:13.245 [DEBU] {c85e3c916ba50518bf56911c6521a0e3} [ 35 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:25:13.270 [DEBU] {84a168936ba50518c056911c34fac588} [ 23 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:25:13.305 [DEBU] {94bce1946ba50518c156911cc27d9fa4} [ 34 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0gls0d5fu6vcywxsg200mf4zp3',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:25:13','2024-11-07 17:25:13','',1) RETURNING "order_id" +2024-11-07 17:34:57.586 [DEBU] {a03b629cf3a5051810f7af621eca1329} [ 72 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:34:57.604 [DEBU] {0c0dd0a0f3a5051811f7af62e9aa7983} [ 17 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:34:57.631 [DEBU] {ec5fdda1f3a5051812f7af625fd5debf} [ 26 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:34:57.662 [DEBU] {14ed85a3f3a5051813f7af6242b58ceb} [ 30 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:34:57.684 [DEBU] {405c57a5f3a5051814f7af62a389513a} [ 21 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:34:57.715 [DEBU] {404ab8a6f3a5051815f7af62e9464651} [ 29 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq07ng0d5fuebu5cuak20044rst6',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:34:57','2024-11-07 17:34:57','',1) RETURNING "order_id" +2024-11-07 17:43:42.770 [DEBU] {20217ce36da60518d2b25c4afbeb5c4f} [ 78 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:43:42.787 [DEBU] {148641e86da60518d3b25c4a21b5eb49} [ 15 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:43:42.816 [DEBU] {705542e96da60518d4b25c4afd8bffc2} [ 28 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:43:42.847 [DEBU] {58d9f7ea6da60518d5b25c4a39112677} [ 30 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:43:42.871 [DEBU] {4c62c9ec6da60518d6b25c4a5538f289} [ 23 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:43:42.903 [DEBU] {801a45ee6da60518d7b25c4a58f07456} [ 31 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0nk00d5ful13r1n4c200f242pn',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:43:42','2024-11-07 17:43:42','',1) RETURNING "order_id" +2024-11-07 17:47:54.515 [DEBU] {34b5d880a8a60518635b0146427fda6d} [ 75 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:47:54.531 [DEBU] {ac796585a8a60518645b01461adba4fc} [ 15 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:47:54.560 [DEBU] {bc1c5c86a8a60518655b0146a98ed50a} [ 28 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:47:54.592 [DEBU] {40990e88a8a60518665b0146487c7220} [ 31 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:47:54.615 [DEBU] {0481f789a8a60518675b01463c0e4d16} [ 22 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:47:54.645 [DEBU] {c0275c8ba8a60518685b014674255473} [ 29 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0ho40d5fuo8r5luys20088xhsk',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:47:54','2024-11-07 17:47:54','',1) RETURNING "order_id" +2024-11-07 17:48:58.451 [DEBU] {f8258a63b7a60518afe2c84d26f5967d} [ 78 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:48:58.468 [DEBU] {c08e4a68b7a60518b0e2c84d3349a035} [ 16 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:48:58.496 [DEBU] {84513b69b7a60518b1e2c84dd670cedb} [ 28 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:48:58.527 [DEBU] {d82ff86ab7a60518b2e2c84d77cdee43} [ 30 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:48:58.550 [DEBU] {f47bc06cb7a60518b3e2c84d7c8e8c98} [ 23 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:48:58.581 [DEBU] {c0c12a6eb7a60518b4e2c84d7b46b19e} [ 30 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0hzs0d5fup24ih69g2008yuz7e',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:48:58','2024-11-07 17:48:58','',1) RETURNING "order_id" +2024-11-07 17:50:58.635 [DEBU] {38660b5fd3a60518ebbd5c3fa7631e0c} [ 79 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:50:58.650 [DEBU] {1cd6d063d3a60518ecbd5c3f91ff8d4b} [ 14 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:50:58.676 [DEBU] {e462a364d3a60518edbd5c3f4b641511} [ 26 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:50:58.703 [DEBU] {1cc23c66d3a60518eebd5c3f35ab35f8} [ 26 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:50:58.724 [DEBU] {3cd8cd67d3a60518efbd5c3ffa44d0da} [ 21 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:50:58.752 [DEBU] {8cee1a69d3a60518f0bd5c3fef0281a4} [ 27 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0gpg0d5fuqlc07i9o200o936bs',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:50:58','2024-11-07 17:50:58','',1) RETURNING "order_id" +2024-11-07 17:52:37.276 [DEBU] {c0bc1e56eaa60518d8b636474f287b58} [ 85 ms] [default] [yuledui] [rows:1 ] SELECT version(); +2024-11-07 17:52:37.295 [DEBU] {443e505beaa60518d9b636478eb5ea97} [ 17 ms] [default] [yuledui] [rows:7 ] SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON c.relnamespace = n.oid WHERE n.nspname = 'public' AND c.relkind IN ('r', 'p') AND c.relpartbound IS NULL ORDER BY c.relname +2024-11-07 17:52:37.325 [DEBU] {5c075f5ceaa60518dab6364707d9ff5b} [ 29 ms] [default] [yuledui] [rows:18 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'shop' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:52:37.359 [DEBU] {38482c5eeaa60518dbb636470f927796} [ 33 ms] [default] [yuledui] [rows:1 ] SELECT "shop_id","promoter_id","account_number","child_account_number","contact_name","tel","shop_name","address","door_photo","interior_photo","industry","equipment_no","extend","join_date","state","delete_flag","create_time","update_time" FROM "shop" WHERE shop_id = 'aaaaaaaaaa' LIMIT 1 +2024-11-07 17:52:37.383 [DEBU] {a84f2b60eaa60518dcb636472c93f381} [ 24 ms] [default] [yuledui] [rows:11 ] SELECT a.attname AS field, t.typname AS type,a.attnotnull as null, (case when d.contype = 'p' then 'pri' when d.contype = 'u' then 'uni' else '' end) as key ,ic.column_default as default_value,b.description as comment ,coalesce(character_maximum_length, numeric_precision, -1) as length ,numeric_scale as scale FROM pg_attribute a left join pg_class c on a.attrelid = c.oid left join pg_constraint d on d.conrelid = c.oid and a.attnum = d.conkey[1] left join pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid left join pg_type t ON a.atttypid = t.oid left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname WHERE c.relname = 'pay_order' and a.attisdropped is false and a.attnum > 0 ORDER BY a.attnum +2024-11-07 17:52:37.417 [DEBU] {cc299f61eaa60518ddb6364771414802} [ 33 ms] [default] [yuledui] [rows:1 ] INSERT INTO "pay_order"("order_id","price","amount","bean","open_id","mobile","shop_id","created","updated","ysepay_status","channel") VALUES('pyacyq0g4c0d5furunl8jgs200jvr6ob',65.3,65.2,0.1,'aaaaaaaaaaaaaaaaabbbbbbbb','15963264270','aaaaaaaaaa','2024-11-07 17:52:37','2024-11-07 17:52:37','',1) RETURNING "order_id" diff --git a/readme.md b/readme.md deleted file mode 100644 index 596ac33..0000000 --- a/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -微信支付服务 -controller: 路由 -middle:中间件 -service: 业务逻辑 -repo:存储 -config.yaml:配置文件 -log:日志保存目录 - - -gf gen dao -p service/po -gf gen dao -h \ No newline at end of file diff --git a/service/mqtt.go b/service/mqtt.go index 176f85e..2fed55f 100644 --- a/service/mqtt.go +++ b/service/mqtt.go @@ -35,7 +35,7 @@ func (t *MQTT) InitMQTT() error { opts.SetClientID(guid.S()) //opts.SetUsername(user.String()) //使用用户名和密码 //opts.SetPassword(passwd.String()) - //opts.SetDefaultPublishHandler(messagePubHandler) + //opts.SetDefaultPublishHandler(messagePubHandler) // 设置消息回调处理函数 //opts.OnConnect = connectHandler opts.OnConnectionLost = t.connectLostHandler t.client = mqtt.NewClient(opts) diff --git a/service/pay.go b/service/pay.go index 5ae30f5..e5e36c0 100644 --- a/service/pay.go +++ b/service/pay.go @@ -1,14 +1,12 @@ package service import ( - "bytes" "encoding/json" "errors" "fmt" - "io" - "net/http" "strconv" "time" + "yuleduiPay/common" "yuleduiPay/repo" "yuleduiPay/service/po" "yuleduiPay/service/vo" @@ -24,8 +22,6 @@ type Pay struct { shopRepo repo.Shop } -var YSEPAYURL = "https://qrcode.ysepay.com/gateway.do" //银盛的微信小程序接口地址 - // 微信小程序,扫码支付 func (t *Pay) PayQrCode(r *ghttp.Request) { g.Log().Line().Print(nil, r.Request) //todo @@ -63,6 +59,7 @@ func (t *Pay) PayQrCode(r *ghttp.Request) { payOrder.OpenId = req.OpenId payOrder.Mobile = req.Mobile payOrder.ShopId = req.ShopId + payOrder.Channel = req.Channel payOrder.Created = gtime.Now() payOrder.Updated = payOrder.Created @@ -72,18 +69,13 @@ func (t *Pay) PayQrCode(r *ghttp.Request) { return } - jsonBytes, err := t.ysePayRequestJson(shop, &payOrder) //组织银盛请求json + commReq, err := t.ysePayRequestJson(shop, &payOrder) //组织银盛请求json if err != nil { r.SetError(err) return } - //java 项目处理sign字段 - jsonResp, err := t.ysePayPost(jsonBytes) //Post请求银盛接口 - if err != nil { - r.SetError(err) - return - } - yseResp, err := t.yseRespHandler(jsonResp) //解析银盛应答报文 + + yseResp, err := t.ysePostUrl(commReq) //解析银盛应答报文 if err != nil { r.SetError(err) return @@ -101,9 +93,17 @@ func (t *Pay) PayQrCode(r *ghttp.Request) { } return } -func (t *Pay) yseRespHandler(jsonResp []byte) (*vo.WeixinPayResp, error) { +func (t *Pay) ysePostUrl(commReq *vo.PayCommonReq) (*vo.WeixinPayResp, error) { + jsonBytes, err := json.Marshal(commReq) + if err != nil { + return nil, err + } + jsonResp, err := common.HttpPost(common.YSEPAYURL, jsonBytes) + if err != nil { + return nil, err + } ysePayResp := &vo.PayResp{} - err := json.Unmarshal(jsonResp, ysePayResp) + err = json.Unmarshal(jsonResp, ysePayResp) if err != nil { return nil, err } @@ -114,49 +114,109 @@ func (t *Pay) yseRespHandler(jsonResp []byte) (*vo.WeixinPayResp, error) { } return yseWeiXinPayResp, err } -func (t *Pay) ysePayPost(jsonBytes []byte) ([]byte, error) { - resp, err := http.Post(YSEPAYURL, "application/json", bytes.NewReader(jsonBytes)) - if err != nil { - return nil, err - } - defer resp.Body.Close() - return io.ReadAll(resp.Body) + +/* + func (t *Pay) ysePayRequestJson(shop *po.Shop, payOrder *po.PayOrder) ([]byte, error) { + jsonMap := g.Map{} + //公共请求参数 + jsonMap["method"] = "ysepay.online.weixin.pay" //接口名称,固定值 + certId := g.Cfg().MustGet(nil, "ysepay.CERTID") + + jsonMap["partner_id"] = certId //在银盛支付开设的服务商商户号 + jsonMap["timestamp"] = time.Now().Format("2006-01-02 15:04:05") //发送请求的时间 + jsonMap["charset"] = "UTF-8" //商户网站使用的编码格式 + jsonMap["sign_type"] = "SM" //报文签名算法 + //sign 需要java项目处理 todo + notifyUrl := g.Cfg().MustGet(nil, "ysepay.notifyUrl") + jsonMap["notify_url"] = notifyUrl //交易成功异步通知到商户的后台地址 + jsonMap["version"] = "3.0" //接口版本 + + //业务请求参数 + businessMap := g.Map{} + businessMap["orderId"] = payOrder.OpenId //订单编号 + businessMap["shopdate"] = payOrder.Created.Format("20060102") //商户系统的交易发生日期格式 + businessMap["subject"] = "余乐兑小程序订单" //订单备注 + businessMap["total_amount"] = payOrder.Price //该笔订单的资金总额 + businessMap["currency"] = "CNY" //默认人民币 //订单备注 + businessMap["seller_id"] = shop.AccountNumber //商户ID + businessMap["seller_name"] = shop.ShopName //店铺名称 + businessMap["timeout_express"] = "1h" //设置未付款交易的超时时间,一个小时 + businessMap["sub_openid"] = payOrder.OpenId //微信OpenId + businessMap["is_minipg"] = "1" //微信小程序支付:1 + appId := g.Cfg().MustGet(nil, "weixin.appId") + businessMap["appid"] = appId //微信小程序APPID + b, err := json.Marshal(businessMap) + if err != nil { + return nil, err + } + jsonMap["biz_content"] = string(b) + return json.Marshal(jsonMap) + } - -func (t *Pay) ysePayRequestJson(shop *po.Shop, payOrder *po.PayOrder) ([]byte, error) { - jsonMap := g.Map{} - //公共请求参数 - jsonMap["method"] = "ysepay.online.weixin.pay" //接口名称,固定值 - certId := g.Cfg().MustGet(nil, "ysepay.CERTID") - - jsonMap["partner_id"] = certId //在银盛支付开设的服务商商户号 - jsonMap["timestamp"] = time.Now().Format("2006-01-02 15:04:05") //发送请求的时间 - jsonMap["charset"] = "UTF-8" //商户网站使用的编码格式 - jsonMap["sign_type"] = "SM" //报文签名算法 - //sign 需要java项目处理 todo - notifyUrl := g.Cfg().MustGet(nil, "ysepay.notifyUrl") - jsonMap["notify_url"] = notifyUrl //交易成功异步通知到商户的后台地址 - jsonMap["version"] = "3.0" //接口版本 - +*/ +func (t *Pay) ysePayRequestJson(shop *po.Shop, payOrder *po.PayOrder) (*vo.PayCommonReq, error) { //业务请求参数 - businessMap := g.Map{} - businessMap["orderId"] = payOrder.OpenId //订单编号 - businessMap["shopdate"] = payOrder.Created.Format("20060102") //商户系统的交易发生日期格式 - businessMap["subject"] = "余乐兑小程序订单" //订单备注 - businessMap["total_amount"] = payOrder.Price //该笔订单的资金总额 - businessMap["currency"] = "CNY" //默认人民币 //订单备注 - businessMap["seller_id"] = shop.AccountNumber //商户ID - businessMap["seller_name"] = shop.ShopName //店铺名称 - businessMap["timeout_express"] = "1h" //设置未付款交易的超时时间,一个小时 - businessMap["sub_openid"] = payOrder.OpenId //微信OpenId - businessMap["is_minipg"] = "1" //微信小程序支付:1 - appId := g.Cfg().MustGet(nil, "weixin.appId") - businessMap["appid"] = appId //微信小程序APPID - b, err := json.Marshal(businessMap) + busReq := vo.PayBusReq{} + busReq.OutTradeNo = payOrder.OrderId //订单编号 + busReq.Shopdate = payOrder.Created.Format("20060102") //商户系统的交易发生日期格式 + busReq.Subject = "余乐兑小程序订单" //订单备注 + busReq.TotalAmount = fmt.Sprintf("%.2f", payOrder.Price) //该笔订单的资金总额,保留两位小数 + busReq.Currency = "CNY" //默认人民币 + busReq.SellerId = shop.AccountNumber //商户ID //订单备注 + busReq.SellerName = shop.ShopName //店铺名称 + busReq.TimeoutExpress = "1h" //设置未付款交易的超时时间,一个小时 + busReq.BusinessCode = g.Cfg().MustGet(nil, "ysepay.busCode").String() //业务代码 + + var bjson []byte + var err error + if payOrder.Channel == 1 { //微信渠道 + wxBusReq := vo.PayWxBusReq{PayBusReq: busReq} + wxBusReq.SubOpenid = payOrder.OpenId //微信用户ID + wxBusReq.IsMinipg = "1" //微信小程序支付:1 + wxBusReq.Appid = g.Cfg().MustGet(nil, "weixin.appId").String() //微信小程序APPID + bjson, err = json.Marshal(wxBusReq) + if err != nil { + return nil, err + } + } else { //支付宝渠道 + zfBusReq := vo.PayZfBusReq{PayBusReq: busReq} + zfBusReq.BuyerId = payOrder.OpenId //支付宝用户ID + bjson, err = json.Marshal(zfBusReq) + if err != nil { + return nil, err + } + } + + commonReq := vo.PayCommonReq{} + if payOrder.Channel == 1 { //微信渠道 + commonReq.Method = "ysepay.online.weixin.pay" + } else { //支付宝渠道 + commonReq.Method = "ysepay.online.alijsapi.pay" + } + commonReq.PartnerId = g.Cfg().MustGet(nil, "ysepay.CERTID").String() //在银盛支付开设的服务商商户号 + commonReq.Timestamp = time.Now().Format("2006-01-02 15:04:05") //发送请求的时间 + commonReq.Charset = "UTF-8" //商户网站使用的编码格式 + commonReq.SignType = "SM" //报文签名算法 + commonReq.NotifyUrl = g.Cfg().MustGet(nil, "ysepay.notifyUrl").String() //交易成功异步通知到商户的后台地址 + commonReq.Version = "3.0" //接口版本 + + //sign 需要java项目处理 todo + commonReq.BizContent = string(bjson) // + bjson, err = json.Marshal(&commonReq) if err != nil { return nil, err } - jsonMap["biz_content"] = string(b) - return json.Marshal(jsonMap) - + url := g.Cfg().MustGet(nil, "ysepay.url").String() + bjson, err = common.HttpPost(url, bjson) + if err != nil { + return nil, err + } + signResp := vo.YseJavaResp{} + err = json.Unmarshal(bjson, signResp) + if err != nil { + return nil, err + } + commonReq.Sign = signResp.Sign + commonReq.BizContent = signResp.BizContent + return &commonReq, nil } diff --git a/service/po/pay_order.go b/service/po/pay_order.go index a098c19..18a3cd6 100644 --- a/service/po/pay_order.go +++ b/service/po/pay_order.go @@ -20,4 +20,5 @@ type PayOrder struct { Created *gtime.Time `json:"created" orm:"created" ` // 创建时间 Updated *gtime.Time `json:"updated" orm:"updated" ` // 更新时间 YsepayStatus string `json:"ysepayStatus" orm:"ysepay_status" ` // 银盛交易状态 + Channel int `json:"channel" orm:"channel" ` // 支付渠道 1.微信 2.支付宝 } diff --git a/service/vo/pay.go b/service/vo/pay.go index 3c29928..ce00ba8 100644 --- a/service/vo/pay.go +++ b/service/vo/pay.go @@ -7,13 +7,18 @@ type RespBase struct { type PayQrCodeReq struct { //g.Meta `path:"/wxApi/payQrCode" method:"post" tags:"PayService" summary:"Sign up a new user account"` - ShopId string `json:"shopId"` //商户ID - Price string `json:"price"` //商品原价 - Amount string `json:"amount"` //支付价格 - Bean string `json:"bean"` //抵扣金豆 - OpenId string `json:"openId"` //微信OpenId - Mobile string `json:"mobile"` //支付用户手机号 + ShopId string `json:"shopId"` //商户ID + Price string `json:"price"` //商品原价 + Amount string `json:"amount"` //支付价格 + Bean string `json:"bean"` //抵扣金豆 + OpenId string `json:"openId"` //微信OpenId + Mobile string `json:"mobile"` //支付用户手机号 + Channel int `json:"channel"` //支付渠道 1.微信 2.支付宝 } type PayQrCodeResp struct { RespBase } +type YseJavaResp struct { + Sign string `json:"sign"` + BizContent string `json:"biz_content"` +} diff --git a/service/vo/ysePay.go b/service/vo/ysePay.go index 64c07cf..32f87f5 100644 --- a/service/vo/ysePay.go +++ b/service/vo/ysePay.go @@ -1,5 +1,43 @@ package vo +//银盛公共请求参数 +type PayCommonReq struct { + Method string `json:"method"` //接口名称 + PartnerId string `json:"partner_id"` //银盛支付开设的服务商商户号 + Timestamp string `json:"timestamp"` //发送请求的时间 + Charset string `json:"charset"` //商户网站使用的编码格式, + SignType string `json:"sign_type"` //报文签名算法 + Sign string `json:"sign"` //签名字符串,再用Base64编码 + NotifyUrl string `json:"notify_url"` //交易成功异步通知到商户的后台地址 + Version string `json:"version"` //交易类型 + BizContent string `json:"biz_content"` //业务请求参数的集合 +} + +//银盛业务请求参数 +type PayBusReq struct { + OutTradeNo string `json:"out_trade_no"` //商户系统生成的订单号 + Shopdate string `json:"shopdate"` //商户系统的交易发生日期格式yyyyMMdd 20180525 + Subject string `json:"subject"` //订单备注 + TotalAmount string `json:"total_amount"` //该笔订单的资金总额 + Currency string `json:"currency"` //默认CNY + SellerId string `json:"seller_id"` //收款商户号 + SellerName string `json:"seller_name"` //收款商户号对应商户名称 + TimeoutExpress string `json:"timeout_express"` //设置未付款交易的超时时间 + ExtraCommonParam string `json:"extra_common_param"` //公用回传参数 + BusinessCode string `json:"business_code"` //业务代码 + +} +type PayZfBusReq struct { + PayBusReq + BuyerId string `json:"buyer_id"` //买家支付宝用户ID +} +type PayWxBusReq struct { + PayBusReq + SubOpenid string `json:"sub_openid"` //用户在商户appid下的唯一标识 + IsMinipg string `json:"is_minipg"` //微信小程序支付:1 + Appid string `json:"appid"` //商户在微信侧申请的小程序或公众号APPID +} + type PayResp struct { Sign string `json:"sign"` //签名字符串 Base64编码 YsepayOnlineWeixinPayResponse string `json:"ysepay_online_weixin_pay_response"` //业务响应参数的集合,最大长度不限