mirror of
https://shylinux.com/x/community
synced 2025-04-25 17:48:06 +08:00
add some
This commit is contained in:
parent
d7a8be98ae
commit
dd0c095c17
1
go.mod
1
go.mod
@ -25,6 +25,7 @@ require (
|
|||||||
github.com/go-sql-driver/mysql v1.7.0 // indirect
|
github.com/go-sql-driver/mysql v1.7.0 // indirect
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
github.com/jinzhu/now v1.1.5 // indirect
|
github.com/jinzhu/now v1.1.5 // indirect
|
||||||
|
github.com/wechatpay-apiv3/wechatpay-go v0.2.20 // indirect
|
||||||
golang.org/x/text v0.16.0 // indirect
|
golang.org/x/text v0.16.0 // indirect
|
||||||
gorm.io/driver/mysql v1.5.7 // indirect
|
gorm.io/driver/mysql v1.5.7 // indirect
|
||||||
gorm.io/gorm v1.25.11 // indirect
|
gorm.io/gorm v1.25.11 // indirect
|
||||||
|
4
go.sum
4
go.sum
@ -1,5 +1,6 @@
|
|||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/PuerkitoBio/goquery v1.9.1/go.mod h1:cW1n6TmIMDoORQU5IU/P1T3tGFunOeXEpGP2WHRwkbY=
|
github.com/PuerkitoBio/goquery v1.9.1/go.mod h1:cW1n6TmIMDoORQU5IU/P1T3tGFunOeXEpGP2WHRwkbY=
|
||||||
|
github.com/agiledragon/gomonkey v2.0.2+incompatible/go.mod h1:2NGfXu1a80LLr2cmWXGBDaHEjb1idR6+FVlX5T3D9hw=
|
||||||
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
|
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
|
||||||
github.com/bgould/http v0.0.0-20190627042742-d268792bdee7/go.mod h1:BTqvVegvwifopl4KTEDth6Zezs9eR+lCWhvGKvkxJHE=
|
github.com/bgould/http v0.0.0-20190627042742-d268792bdee7/go.mod h1:BTqvVegvwifopl4KTEDth6Zezs9eR+lCWhvGKvkxJHE=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
@ -60,6 +61,7 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
|||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/tdakkota/win32metadata v0.1.0/go.mod h1:77e6YvX0LIVW+O81fhWLnXAxxcyu/wdZdG7iwed7Fyk=
|
github.com/tdakkota/win32metadata v0.1.0/go.mod h1:77e6YvX0LIVW+O81fhWLnXAxxcyu/wdZdG7iwed7Fyk=
|
||||||
@ -68,6 +70,8 @@ github.com/tinygo-org/pio v0.0.0-20231216154340-cd888eb58899/go.mod h1:LU7Dw00NJ
|
|||||||
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
|
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
|
||||||
github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY=
|
github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY=
|
||||||
github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
|
github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
|
||||||
|
github.com/wechatpay-apiv3/wechatpay-go v0.2.20 h1:gS8oFn1bHGnyapR2Zb4aqTV6l4kJWgbtqjCq6k1L9DQ=
|
||||||
|
github.com/wechatpay-apiv3/wechatpay-go v0.2.20/go.mod h1:A254AUBVB6R+EqQFo3yTgeh7HtyqRRtN2w9hQSOrd4Q=
|
||||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
github.com/yuin/goldmark v1.5.5/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.5.5/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
|
@ -13,6 +13,7 @@ const GONGANXITONG_MEETING = "web.team.gonganxitong.meeting"
|
|||||||
const GONGANXITONG_MEMBER = "web.team.gonganxitong.member"
|
const GONGANXITONG_MEMBER = "web.team.gonganxitong.member"
|
||||||
const GONGANXITONG_MESSAGE = "web.team.gonganxitong.message"
|
const GONGANXITONG_MESSAGE = "web.team.gonganxitong.message"
|
||||||
const GONGANXITONG_NOTICE = "web.team.gonganxitong.notice"
|
const GONGANXITONG_NOTICE = "web.team.gonganxitong.notice"
|
||||||
|
const GONGANXITONG_PAYMENTLIST = "web.team.gonganxitong.paymentlist"
|
||||||
const GONGANXITONG_QRCODE = "web.team.gonganxitong.qrcode"
|
const GONGANXITONG_QRCODE = "web.team.gonganxitong.qrcode"
|
||||||
const GONGANXITONG_RECENT = "web.team.gonganxitong.recent"
|
const GONGANXITONG_RECENT = "web.team.gonganxitong.recent"
|
||||||
const GONGANXITONG_SERVICE = "web.team.gonganxitong.service"
|
const GONGANXITONG_SERVICE = "web.team.gonganxitong.service"
|
||||||
@ -31,6 +32,7 @@ const HUODONGZUZHI_MEETING = "web.team.huodongzuzhi.meeting"
|
|||||||
const HUODONGZUZHI_MEMBER = "web.team.huodongzuzhi.member"
|
const HUODONGZUZHI_MEMBER = "web.team.huodongzuzhi.member"
|
||||||
const HUODONGZUZHI_MESSAGE = "web.team.huodongzuzhi.message"
|
const HUODONGZUZHI_MESSAGE = "web.team.huodongzuzhi.message"
|
||||||
const HUODONGZUZHI_NOTICE = "web.team.huodongzuzhi.notice"
|
const HUODONGZUZHI_NOTICE = "web.team.huodongzuzhi.notice"
|
||||||
|
const HUODONGZUZHI_PAYMENTLIST = "web.team.huodongzuzhi.paymentlist"
|
||||||
const HUODONGZUZHI_QRCODE = "web.team.huodongzuzhi.qrcode"
|
const HUODONGZUZHI_QRCODE = "web.team.huodongzuzhi.qrcode"
|
||||||
const HUODONGZUZHI_RECENT = "web.team.huodongzuzhi.recent"
|
const HUODONGZUZHI_RECENT = "web.team.huodongzuzhi.recent"
|
||||||
const HUODONGZUZHI_SERVICE = "web.team.huodongzuzhi.service"
|
const HUODONGZUZHI_SERVICE = "web.team.huodongzuzhi.service"
|
||||||
@ -47,11 +49,13 @@ const RENZHENGSHOUQUAN_DOMAIN = "web.team.renzhengshouquan.domain"
|
|||||||
const RENZHENGSHOUQUAN_EVENT = "web.team.renzhengshouquan.event"
|
const RENZHENGSHOUQUAN_EVENT = "web.team.renzhengshouquan.event"
|
||||||
const RENZHENGSHOUQUAN_EXTERNAL_TENCENT_MEETING = "web.team.renzhengshouquan.external.tencent.meeting"
|
const RENZHENGSHOUQUAN_EXTERNAL_TENCENT_MEETING = "web.team.renzhengshouquan.external.tencent.meeting"
|
||||||
const RENZHENGSHOUQUAN_EXTERNAL_TENCENTMEETING_TENCENTMEETING = "web.team.renzhengshouquan.external.tencentmeeting.tencentmeeting"
|
const RENZHENGSHOUQUAN_EXTERNAL_TENCENTMEETING_TENCENTMEETING = "web.team.renzhengshouquan.external.tencentmeeting.tencentmeeting"
|
||||||
|
const RENZHENGSHOUQUAN_EXTERNAL_WEIXINPAYMENT_WEIXINPAYMENT = "web.team.renzhengshouquan.external.weixinpayment.weixinpayment"
|
||||||
const RENZHENGSHOUQUAN_MARKET = "web.team.renzhengshouquan.market"
|
const RENZHENGSHOUQUAN_MARKET = "web.team.renzhengshouquan.market"
|
||||||
const RENZHENGSHOUQUAN_MEETING = "web.team.renzhengshouquan.meeting"
|
const RENZHENGSHOUQUAN_MEETING = "web.team.renzhengshouquan.meeting"
|
||||||
const RENZHENGSHOUQUAN_MEMBER = "web.team.renzhengshouquan.member"
|
const RENZHENGSHOUQUAN_MEMBER = "web.team.renzhengshouquan.member"
|
||||||
const RENZHENGSHOUQUAN_MESSAGE = "web.team.renzhengshouquan.message"
|
const RENZHENGSHOUQUAN_MESSAGE = "web.team.renzhengshouquan.message"
|
||||||
const RENZHENGSHOUQUAN_NOTICE = "web.team.renzhengshouquan.notice"
|
const RENZHENGSHOUQUAN_NOTICE = "web.team.renzhengshouquan.notice"
|
||||||
|
const RENZHENGSHOUQUAN_PAYMENTLIST = "web.team.renzhengshouquan.paymentlist"
|
||||||
const RENZHENGSHOUQUAN_PROFILE = "web.team.renzhengshouquan.profile"
|
const RENZHENGSHOUQUAN_PROFILE = "web.team.renzhengshouquan.profile"
|
||||||
const RENZHENGSHOUQUAN_QRCODE = "web.team.renzhengshouquan.qrcode"
|
const RENZHENGSHOUQUAN_QRCODE = "web.team.renzhengshouquan.qrcode"
|
||||||
const RENZHENGSHOUQUAN_RECENT = "web.team.renzhengshouquan.recent"
|
const RENZHENGSHOUQUAN_RECENT = "web.team.renzhengshouquan.recent"
|
||||||
@ -71,6 +75,7 @@ const YUEHAOXITONG_MEMBER = "web.team.yuehaoxitong.member"
|
|||||||
const YUEHAOXITONG_MESSAGE = "web.team.yuehaoxitong.message"
|
const YUEHAOXITONG_MESSAGE = "web.team.yuehaoxitong.message"
|
||||||
const YUEHAOXITONG_NOTICE = "web.team.yuehaoxitong.notice"
|
const YUEHAOXITONG_NOTICE = "web.team.yuehaoxitong.notice"
|
||||||
const YUEHAOXITONG_OPEN = "web.team.yuehaoxitong.open"
|
const YUEHAOXITONG_OPEN = "web.team.yuehaoxitong.open"
|
||||||
|
const YUEHAOXITONG_PAYMENTLIST = "web.team.yuehaoxitong.paymentlist"
|
||||||
const YUEHAOXITONG_PLAN = "web.team.yuehaoxitong.plan"
|
const YUEHAOXITONG_PLAN = "web.team.yuehaoxitong.plan"
|
||||||
const YUEHAOXITONG_QRCODE = "web.team.yuehaoxitong.qrcode"
|
const YUEHAOXITONG_QRCODE = "web.team.yuehaoxitong.qrcode"
|
||||||
const YUEHAOXITONG_RECENT = "web.team.yuehaoxitong.recent"
|
const YUEHAOXITONG_RECENT = "web.team.yuehaoxitong.recent"
|
||||||
|
@ -7,6 +7,7 @@ const JIAOCAIZILIAO_CREDIT = "web.team.jiaocaiziliao.credit"
|
|||||||
const JIAOCAIZILIAO_DOCUMENT = "web.team.jiaocaiziliao.document"
|
const JIAOCAIZILIAO_DOCUMENT = "web.team.jiaocaiziliao.document"
|
||||||
const JIAOCAIZILIAO_EVENT = "web.team.jiaocaiziliao.event"
|
const JIAOCAIZILIAO_EVENT = "web.team.jiaocaiziliao.event"
|
||||||
const JIAOCAIZILIAO_MARKET = "web.team.jiaocaiziliao.market"
|
const JIAOCAIZILIAO_MARKET = "web.team.jiaocaiziliao.market"
|
||||||
|
const JIAOCAIZILIAO_MEETING = "web.team.jiaocaiziliao.meeting"
|
||||||
const JIAOCAIZILIAO_MEMBER = "web.team.jiaocaiziliao.member"
|
const JIAOCAIZILIAO_MEMBER = "web.team.jiaocaiziliao.member"
|
||||||
const JIAOCAIZILIAO_MESSAGE = "web.team.jiaocaiziliao.message"
|
const JIAOCAIZILIAO_MESSAGE = "web.team.jiaocaiziliao.message"
|
||||||
const JIAOCAIZILIAO_NOTICE = "web.team.jiaocaiziliao.notice"
|
const JIAOCAIZILIAO_NOTICE = "web.team.jiaocaiziliao.notice"
|
||||||
@ -23,6 +24,7 @@ const JIAOWUXITONG_CREDIT = "web.team.jiaowuxitong.credit"
|
|||||||
const JIAOWUXITONG_EVENT = "web.team.jiaowuxitong.event"
|
const JIAOWUXITONG_EVENT = "web.team.jiaowuxitong.event"
|
||||||
const JIAOWUXITONG_HOMEWORK = "web.team.jiaowuxitong.homework"
|
const JIAOWUXITONG_HOMEWORK = "web.team.jiaowuxitong.homework"
|
||||||
const JIAOWUXITONG_MARKET = "web.team.jiaowuxitong.market"
|
const JIAOWUXITONG_MARKET = "web.team.jiaowuxitong.market"
|
||||||
|
const JIAOWUXITONG_MEETING = "web.team.jiaowuxitong.meeting"
|
||||||
const JIAOWUXITONG_MEMBER = "web.team.jiaowuxitong.member"
|
const JIAOWUXITONG_MEMBER = "web.team.jiaowuxitong.member"
|
||||||
const JIAOWUXITONG_MESSAGE = "web.team.jiaowuxitong.message"
|
const JIAOWUXITONG_MESSAGE = "web.team.jiaowuxitong.message"
|
||||||
const JIAOWUXITONG_NOTICE = "web.team.jiaowuxitong.notice"
|
const JIAOWUXITONG_NOTICE = "web.team.jiaowuxitong.notice"
|
||||||
@ -53,6 +55,7 @@ const ZAIXIANKETANG_CREDIT = "web.team.zaixianketang.credit"
|
|||||||
const ZAIXIANKETANG_EVENT = "web.team.zaixianketang.event"
|
const ZAIXIANKETANG_EVENT = "web.team.zaixianketang.event"
|
||||||
const ZAIXIANKETANG_LESSON = "web.team.zaixianketang.lesson"
|
const ZAIXIANKETANG_LESSON = "web.team.zaixianketang.lesson"
|
||||||
const ZAIXIANKETANG_MARKET = "web.team.zaixianketang.market"
|
const ZAIXIANKETANG_MARKET = "web.team.zaixianketang.market"
|
||||||
|
const ZAIXIANKETANG_MEETING = "web.team.zaixianketang.meeting"
|
||||||
const ZAIXIANKETANG_MEMBER = "web.team.zaixianketang.member"
|
const ZAIXIANKETANG_MEMBER = "web.team.zaixianketang.member"
|
||||||
const ZAIXIANKETANG_MESSAGE = "web.team.zaixianketang.message"
|
const ZAIXIANKETANG_MESSAGE = "web.team.zaixianketang.message"
|
||||||
const ZAIXIANKETANG_NOTICE = "web.team.zaixianketang.notice"
|
const ZAIXIANKETANG_NOTICE = "web.team.zaixianketang.notice"
|
||||||
|
@ -7,6 +7,7 @@ const DASHBOARD_CREDIT = "web.team.dashboard.credit"
|
|||||||
const DASHBOARD_DASHBOARD = "web.team.dashboard.dashboard"
|
const DASHBOARD_DASHBOARD = "web.team.dashboard.dashboard"
|
||||||
const DASHBOARD_EVENT = "web.team.dashboard.event"
|
const DASHBOARD_EVENT = "web.team.dashboard.event"
|
||||||
const DASHBOARD_MARKET = "web.team.dashboard.market"
|
const DASHBOARD_MARKET = "web.team.dashboard.market"
|
||||||
|
const DASHBOARD_MEETING = "web.team.dashboard.meeting"
|
||||||
const DASHBOARD_MEMBER = "web.team.dashboard.member"
|
const DASHBOARD_MEMBER = "web.team.dashboard.member"
|
||||||
const DASHBOARD_MESSAGE = "web.team.dashboard.message"
|
const DASHBOARD_MESSAGE = "web.team.dashboard.message"
|
||||||
const DASHBOARD_NOTICE = "web.team.dashboard.notice"
|
const DASHBOARD_NOTICE = "web.team.dashboard.notice"
|
||||||
@ -23,6 +24,7 @@ const DEVELOPMENT_CREDIT = "web.team.development.credit"
|
|||||||
const DEVELOPMENT_EVENT = "web.team.development.event"
|
const DEVELOPMENT_EVENT = "web.team.development.event"
|
||||||
const DEVELOPMENT_HISTORY = "web.team.development.history"
|
const DEVELOPMENT_HISTORY = "web.team.development.history"
|
||||||
const DEVELOPMENT_MARKET = "web.team.development.market"
|
const DEVELOPMENT_MARKET = "web.team.development.market"
|
||||||
|
const DEVELOPMENT_MEETING = "web.team.development.meeting"
|
||||||
const DEVELOPMENT_MEMBER = "web.team.development.member"
|
const DEVELOPMENT_MEMBER = "web.team.development.member"
|
||||||
const DEVELOPMENT_MESSAGE = "web.team.development.message"
|
const DEVELOPMENT_MESSAGE = "web.team.development.message"
|
||||||
const DEVELOPMENT_NOTICE = "web.team.development.notice"
|
const DEVELOPMENT_NOTICE = "web.team.development.notice"
|
||||||
@ -39,6 +41,7 @@ const OPERATION_APPLY = "web.team.operation.apply"
|
|||||||
const OPERATION_CREDIT = "web.team.operation.credit"
|
const OPERATION_CREDIT = "web.team.operation.credit"
|
||||||
const OPERATION_EVENT = "web.team.operation.event"
|
const OPERATION_EVENT = "web.team.operation.event"
|
||||||
const OPERATION_MARKET = "web.team.operation.market"
|
const OPERATION_MARKET = "web.team.operation.market"
|
||||||
|
const OPERATION_MEETING = "web.team.operation.meeting"
|
||||||
const OPERATION_MEMBER = "web.team.operation.member"
|
const OPERATION_MEMBER = "web.team.operation.member"
|
||||||
const OPERATION_MESSAGE = "web.team.operation.message"
|
const OPERATION_MESSAGE = "web.team.operation.message"
|
||||||
const OPERATION_NOTICE = "web.team.operation.notice"
|
const OPERATION_NOTICE = "web.team.operation.notice"
|
||||||
@ -56,6 +59,7 @@ const PRODUCTION_CREDIT = "web.team.production.credit"
|
|||||||
const PRODUCTION_EVENT = "web.team.production.event"
|
const PRODUCTION_EVENT = "web.team.production.event"
|
||||||
const PRODUCTION_ISSUE = "web.team.production.issue"
|
const PRODUCTION_ISSUE = "web.team.production.issue"
|
||||||
const PRODUCTION_MARKET = "web.team.production.market"
|
const PRODUCTION_MARKET = "web.team.production.market"
|
||||||
|
const PRODUCTION_MEETING = "web.team.production.meeting"
|
||||||
const PRODUCTION_MEMBER = "web.team.production.member"
|
const PRODUCTION_MEMBER = "web.team.production.member"
|
||||||
const PRODUCTION_MESSAGE = "web.team.production.message"
|
const PRODUCTION_MESSAGE = "web.team.production.message"
|
||||||
const PRODUCTION_NOTICE = "web.team.production.notice"
|
const PRODUCTION_NOTICE = "web.team.production.notice"
|
||||||
@ -73,11 +77,4 @@ const STORAGE_CREDIT = "web.team.storage.credit"
|
|||||||
const STORAGE_EVENT = "web.team.storage.event"
|
const STORAGE_EVENT = "web.team.storage.event"
|
||||||
const STORAGE_FILE = "web.team.storage.file"
|
const STORAGE_FILE = "web.team.storage.file"
|
||||||
const STORAGE_MARKET = "web.team.storage.market"
|
const STORAGE_MARKET = "web.team.storage.market"
|
||||||
const STORAGE_MEMBER = "web.team.storage.member"
|
const STORAGE_MEETING = "web.team.storage.meeting"
|
||||||
const STORAGE_MESSAGE = "web.team.storage.message"
|
|
||||||
const STORAGE_NOTICE = "web.team.storage.notice"
|
|
||||||
const STORAGE_QRCODE = "web.team.storage.qrcode"
|
|
||||||
const STORAGE_RECENT = "web.team.storage.recent"
|
|
||||||
const STORAGE_SERVICE = "web.team.storage.service"
|
|
||||||
const STORAGE_SETTING = "web.team.storage.setting"
|
|
||||||
const STORAGE_SUPPORT = "web.team.storage.support"
|
|
||||||
|
@ -254,6 +254,8 @@ func (s Table) RewriteAppend(m *ice.Message, arg ...string) *ice.Message {
|
|||||||
value = AllowStatus(kit.Int(value)).String()
|
value = AllowStatus(kit.Int(value)).String()
|
||||||
case model.MESSAGE_STATUS:
|
case model.MESSAGE_STATUS:
|
||||||
value = MessageStatus(kit.Int(value)).String()
|
value = MessageStatus(kit.Int(value)).String()
|
||||||
|
case model.PAYMENTLIST_STATUS:
|
||||||
|
value = PaymentStatus(kit.Int(value)).String()
|
||||||
}
|
}
|
||||||
return value
|
return value
|
||||||
})
|
})
|
||||||
|
@ -3,110 +3,111 @@ package model
|
|||||||
import "shylinux.com/x/mysql-story/src/db"
|
import "shylinux.com/x/mysql-story/src/db"
|
||||||
|
|
||||||
const (
|
const (
|
||||||
UID = "uid"
|
UID = "uid"
|
||||||
NAME = "name"
|
NAME = "name"
|
||||||
INFO = "info"
|
INFO = "info"
|
||||||
TYPE = "type"
|
TYPE = "type"
|
||||||
ROLE = "role"
|
ROLE = "role"
|
||||||
STATUS = "status"
|
STATUS = "status"
|
||||||
TITLE = "title"
|
TITLE = "title"
|
||||||
CONTENT = "content"
|
CONTENT = "content"
|
||||||
AVATAR = "avatar"
|
AVATAR = "avatar"
|
||||||
BACKGROUND = "background"
|
BACKGROUND = "background"
|
||||||
CREATED_AT = "created_at"
|
CREATED_AT = "created_at"
|
||||||
UPDATED_AT = "updated_at"
|
UPDATED_AT = "updated_at"
|
||||||
USER_UID = "user_uid"
|
USER_UID = "user_uid"
|
||||||
USER_NAME = "user_name"
|
USER_NAME = "user_name"
|
||||||
USER_INFO = "user_info"
|
USER_INFO = "user_info"
|
||||||
USER_ROLE = "user_role"
|
USER_ROLE = "user_role"
|
||||||
USER_AVATAR = "user_avatar"
|
USER_AVATAR = "user_avatar"
|
||||||
USER_BACKGROUND = "user_background"
|
USER_BACKGROUND = "user_background"
|
||||||
USER_PLACE_ROLE = "user_place_role"
|
USER_PLACE_ROLE = "user_place_role"
|
||||||
MEMBER_UID = "member_uid"
|
MEMBER_UID = "member_uid"
|
||||||
MEMBER_STATUS = "member_status"
|
MEMBER_STATUS = "member_status"
|
||||||
PLACE_UID = "place_uid"
|
PLACE_UID = "place_uid"
|
||||||
PLACE_NAME = "place_name"
|
PLACE_NAME = "place_name"
|
||||||
PLACE_TYPE = "place_type"
|
PLACE_TYPE = "place_type"
|
||||||
PLACE_INIT = "place_init"
|
PLACE_INIT = "place_init"
|
||||||
PLACE_ADDRESS = "place_address"
|
PLACE_ADDRESS = "place_address"
|
||||||
STREET_UID = "street_uid"
|
STREET_UID = "street_uid"
|
||||||
STREET_NAME = "street_name"
|
STREET_NAME = "street_name"
|
||||||
STREET_INFO = "street_info"
|
STREET_INFO = "street_info"
|
||||||
STREET_AVATAR = "street_avatar"
|
STREET_AVATAR = "street_avatar"
|
||||||
STREET_BACKGROUND = "street_background"
|
STREET_BACKGROUND = "street_background"
|
||||||
SCHOOL_NAME = "school_name"
|
SCHOOL_NAME = "school_name"
|
||||||
COMPANY_NAME = "company_name"
|
COMPANY_NAME = "company_name"
|
||||||
CITY_UID = "city_uid"
|
CITY_UID = "city_uid"
|
||||||
CITY_NAME = "city_name"
|
CITY_NAME = "city_name"
|
||||||
CITY_INFO = "city_info"
|
CITY_INFO = "city_info"
|
||||||
CITY_AVATAR = "city_avatar"
|
CITY_AVATAR = "city_avatar"
|
||||||
CITY_BACKGROUND = "city_background"
|
CITY_BACKGROUND = "city_background"
|
||||||
AUTH_UID = "auth_uid"
|
AUTH_UID = "auth_uid"
|
||||||
AUTH_NAME = "auth_name"
|
AUTH_NAME = "auth_name"
|
||||||
AUTH_INFO = "auth_info"
|
AUTH_INFO = "auth_info"
|
||||||
AUTH_TYPE = "auth_type"
|
AUTH_TYPE = "auth_type"
|
||||||
AUTH_STATUS = "auth_status"
|
AUTH_STATUS = "auth_status"
|
||||||
AUTH_AVATAR = "auth_avatar"
|
AUTH_AVATAR = "auth_avatar"
|
||||||
AUTH_BACKGROUND = "auth_background"
|
AUTH_BACKGROUND = "auth_background"
|
||||||
DASHBOARD_UID = "dashboard_uid"
|
PAYMENTLIST_STATUS = "paymentlist_status"
|
||||||
DASHBOARD_NAME = "dashboard_name"
|
DASHBOARD_UID = "dashboard_uid"
|
||||||
DASHBOARD_TYPE = "dashboard_type"
|
DASHBOARD_NAME = "dashboard_name"
|
||||||
STORAGE_UID = "storage_uid"
|
DASHBOARD_TYPE = "dashboard_type"
|
||||||
STORAGE_NAME = "storage_name"
|
STORAGE_UID = "storage_uid"
|
||||||
STORAGE_TYPE = "storage_type"
|
STORAGE_NAME = "storage_name"
|
||||||
QRCODE_TYPE = "qrcode_type"
|
STORAGE_TYPE = "storage_type"
|
||||||
APPLY_UID = "apply_uid"
|
QRCODE_TYPE = "qrcode_type"
|
||||||
APPLY_STATUS = "apply_status"
|
APPLY_UID = "apply_uid"
|
||||||
ALLOW_UID = "allow_uid"
|
APPLY_STATUS = "apply_status"
|
||||||
ALLOW_STATUS = "allow_status"
|
ALLOW_UID = "allow_uid"
|
||||||
EVENT_UID = "event_uid"
|
ALLOW_STATUS = "allow_status"
|
||||||
DOMAIN_UID = "domain_uid"
|
EVENT_UID = "event_uid"
|
||||||
DOMAIN_NAME = "domain_name"
|
DOMAIN_UID = "domain_uid"
|
||||||
MARKET_UID = "market_uid"
|
DOMAIN_NAME = "domain_name"
|
||||||
COMMAND_UID = "command_uid"
|
MARKET_UID = "market_uid"
|
||||||
COMMAND_ICON = "command_icon"
|
COMMAND_UID = "command_uid"
|
||||||
COMMAND_NAME = "command_name"
|
COMMAND_ICON = "command_icon"
|
||||||
MESSAGE_UID = "message_uid"
|
COMMAND_NAME = "command_name"
|
||||||
MESSAGE_STATUS = "message_status"
|
MESSAGE_UID = "message_uid"
|
||||||
SERVICE_UID = "service_uid"
|
MESSAGE_STATUS = "message_status"
|
||||||
SERVICE_ICON = "service_icon"
|
SERVICE_UID = "service_uid"
|
||||||
SERVICE_NAME = "service_name"
|
SERVICE_ICON = "service_icon"
|
||||||
SERVICE_TYPE = "service_type"
|
SERVICE_NAME = "service_name"
|
||||||
SERVICE_STATUS = "service_status"
|
SERVICE_TYPE = "service_type"
|
||||||
THUMB_COUNT = "thumb_count"
|
SERVICE_STATUS = "service_status"
|
||||||
FAVOR_COUNT = "favor_count"
|
THUMB_COUNT = "thumb_count"
|
||||||
COMMENT_COUNT = "comment_count"
|
FAVOR_COUNT = "favor_count"
|
||||||
SHARE_COUNT = "share_count"
|
COMMENT_COUNT = "comment_count"
|
||||||
THUMB_STATUS = "thumb_status"
|
SHARE_COUNT = "share_count"
|
||||||
FAVOR_STATUS = "favor_status"
|
THUMB_STATUS = "thumb_status"
|
||||||
FROM_UID = "from_uid"
|
FAVOR_STATUS = "favor_status"
|
||||||
FROM_USER_UID = "from_user_uid"
|
FROM_UID = "from_uid"
|
||||||
TO_USER_UID = "to_user_uid"
|
FROM_USER_UID = "from_user_uid"
|
||||||
BEGIN_TIME = "begin_time"
|
TO_USER_UID = "to_user_uid"
|
||||||
END_TIME = "end_time"
|
BEGIN_TIME = "begin_time"
|
||||||
OPEN_ID = "open_id"
|
END_TIME = "end_time"
|
||||||
USER_ID = "user_id"
|
OPEN_ID = "open_id"
|
||||||
VENDOR = "vendor"
|
USER_ID = "user_id"
|
||||||
PHONE = "phone"
|
VENDOR = "vendor"
|
||||||
EMAIL = "email"
|
PHONE = "phone"
|
||||||
ADDRESS = "address"
|
EMAIL = "email"
|
||||||
PORTAL = "portal"
|
ADDRESS = "address"
|
||||||
PORTAL_NAME = "portal_name"
|
PORTAL = "portal"
|
||||||
NODE_NAME = "node_name"
|
PORTAL_NAME = "portal_name"
|
||||||
NODENAME = "nodename"
|
NODE_NAME = "node_name"
|
||||||
NODETYPE = "nodetype"
|
NODENAME = "nodename"
|
||||||
SPACE = "space"
|
NODETYPE = "nodetype"
|
||||||
INDEX = "index"
|
SPACE = "space"
|
||||||
FIELD = "field"
|
INDEX = "index"
|
||||||
ICON = "icon"
|
FIELD = "field"
|
||||||
ARGS = "args"
|
ICON = "icon"
|
||||||
INIT = "init"
|
ARGS = "args"
|
||||||
QUERY = "query"
|
INIT = "init"
|
||||||
VALUE = "value"
|
QUERY = "query"
|
||||||
SCORE = "score"
|
VALUE = "value"
|
||||||
LEVEL = "level"
|
SCORE = "score"
|
||||||
UNIT = "unit"
|
LEVEL = "level"
|
||||||
LINK = "link"
|
UNIT = "unit"
|
||||||
|
LINK = "link"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Sess struct {
|
type Sess struct {
|
||||||
|
@ -2,6 +2,7 @@ package gonganxitong
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"shylinux.com/x/ice"
|
"shylinux.com/x/ice"
|
||||||
|
"shylinux.com/x/toolkits"
|
||||||
|
|
||||||
"shylinux.com/x/community/src/gonganxitong/model"
|
"shylinux.com/x/community/src/gonganxitong/model"
|
||||||
)
|
)
|
||||||
@ -9,35 +10,58 @@ import (
|
|||||||
type paymentlist struct {
|
type paymentlist struct {
|
||||||
Table
|
Table
|
||||||
order string `data:"92"`
|
order string `data:"92"`
|
||||||
fields string `data:"title,content,amount"`
|
fields string `data:"user_uid,paymentlist_status,amount,title,content"`
|
||||||
create string `name:"create title* content amount* vendor_uid" role:"leader"`
|
create string `name:"create amount* title* content" role:"leader"`
|
||||||
remove string `name:"remove" role:"leader"`
|
payfor string `name:"payfor" help:"支付" style:"notice" role:"void"`
|
||||||
payfor string `name:"payfor" role:"void"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s paymentlist) Inputs(m *ice.Message, arg ...string) {
|
|
||||||
switch arg[0] {
|
|
||||||
case "vendor_uid":
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func (s paymentlist) List(m *ice.Message, arg ...string) {
|
func (s paymentlist) List(m *ice.Message, arg ...string) {
|
||||||
s.ValueList(m, arg).Display("")
|
s.ValueList(m, arg).Table(func(value ice.Maps) {
|
||||||
m.PushAction(s.Payfor)
|
switch PaymentStatus(kit.Int(value[model.PAYMENTLIST_STATUS])) {
|
||||||
|
case PaymentCreate:
|
||||||
|
m.PushButton(s.Payfor)
|
||||||
|
case PaymentSuccess:
|
||||||
|
m.PushButton()
|
||||||
|
default:
|
||||||
|
m.PushButton()
|
||||||
|
}
|
||||||
|
}).Display("")
|
||||||
|
s.SelectJoinUser(m)
|
||||||
}
|
}
|
||||||
func (s paymentlist) Payfor(m *ice.Message, arg ...string) {
|
func (s paymentlist) Payfor(m *ice.Message, arg ...string) {
|
||||||
s.cmdy(m, s.PaymentRequest, arg...)
|
s.cmdy(m, s.Request, arg...)
|
||||||
|
}
|
||||||
|
func (s paymentlist) Request(m *ice.Message, arg ...string) {}
|
||||||
|
func (s paymentlist) Response(m *ice.Message, arg ...string) {
|
||||||
|
if len(arg) > 1 {
|
||||||
|
s.Update(m, kit.Dict(model.STATUS, PaymentSuccess), s.PLACE_UID, arg[0], model.UID, arg[1])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
func (s paymentlist) PaymentRequest(m *ice.Message, arg ...string) {}
|
|
||||||
|
|
||||||
func init() { ice.TeamCtxCmd(paymentlist{Table: newTable()}) }
|
func init() { ice.TeamCtxCmd(paymentlist{Table: newTable()}) }
|
||||||
|
|
||||||
func (s paymentlist) cmdy(m *ice.Message, action ice.Any, arg ...string) {
|
func (s paymentlist) cmdy(m *ice.Message, action ice.Any, arg ...string) {
|
||||||
m.Option(model.PLACE_UID, m.Option(s.PLACE_UID))
|
m.Options(model.PLACE_UID, m.Option(s.PLACE_UID)).Cmdy(paymentVendorKey, action, arg)
|
||||||
m.Cmdy(paymentVendorKey, action, arg)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type PaymentStatus int
|
||||||
|
|
||||||
|
const (
|
||||||
|
PaymentCreate PaymentStatus = iota
|
||||||
|
PaymentSuccess
|
||||||
|
PaymentFailure
|
||||||
|
)
|
||||||
|
|
||||||
|
var PaymentStatusList = map[PaymentStatus]string{
|
||||||
|
PaymentCreate: "create",
|
||||||
|
PaymentSuccess: "success",
|
||||||
|
PaymentFailure: "failure",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s PaymentStatus) String() string { return PaymentStatusList[s] }
|
||||||
|
|
||||||
type PaymentVendor interface {
|
type PaymentVendor interface {
|
||||||
PaymentRequest(m *ice.Message, arg ...string) *ice.Message
|
Request(m *ice.Message, arg ...string) *ice.Message
|
||||||
}
|
}
|
||||||
|
|
||||||
var paymentVendorKey string
|
var paymentVendorKey string
|
||||||
|
@ -1,9 +1,23 @@
|
|||||||
Volcanos(chat.ONIMPORT, {
|
Volcanos(chat.ONIMPORT, {
|
||||||
_init: function(can, msg) {
|
_init: function(can, msg) {
|
||||||
can.onimport.myView(can, msg, function(value) { return [
|
can.onimport.myView(can, msg, function(value) { return [
|
||||||
{view: html.TITLE, list: [value.title, "¥ "+value.amount]},
|
{view: html.TITLE, list: [value.title, "¥ "+(value.amount/100), can.onimport.titleAction(can, value)]},
|
||||||
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
|
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
|
||||||
{view: html.OUTPUT, list: [value.content]},
|
{view: html.OUTPUT, list: [value.content]},
|
||||||
] })
|
] })
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
Volcanos(chat.ONACTION, {
|
||||||
|
payfor: function(event, can) {
|
||||||
|
debugger
|
||||||
|
can.runAction(event, "payfor", [], function(msg) {
|
||||||
|
debugger
|
||||||
|
if(msg.IsErr()) { return }
|
||||||
|
WeixinJSBridge.invoke('getBrandWCPayRequest', msg.Table()[0], function(res) {
|
||||||
|
debugger
|
||||||
|
alert(JSON.stringify(res))
|
||||||
|
can.Update()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
})
|
@ -67,6 +67,7 @@
|
|||||||
"auth_status": "认证状态",
|
"auth_status": "认证状态",
|
||||||
"auth_avatar": "认证头像",
|
"auth_avatar": "认证头像",
|
||||||
"auth_background": "认证背景",
|
"auth_background": "认证背景",
|
||||||
|
"paymentlist_status": "支付状态",
|
||||||
"qrcode_type": "链接类型",
|
"qrcode_type": "链接类型",
|
||||||
"apply_status": "申请状态",
|
"apply_status": "申请状态",
|
||||||
"allow_status": "审批状态",
|
"allow_status": "审批状态",
|
||||||
|
@ -5,6 +5,8 @@ import "shylinux.com/x/mysql-story/src/db"
|
|||||||
const (
|
const (
|
||||||
UID = "uid"
|
UID = "uid"
|
||||||
TITLE = "title"
|
TITLE = "title"
|
||||||
|
CONTENT = "content"
|
||||||
|
AMOUNT = "amount"
|
||||||
OPEN_ID = "open_id"
|
OPEN_ID = "open_id"
|
||||||
USER_UID = "user_uid"
|
USER_UID = "user_uid"
|
||||||
PLACE_UID = "place_uid"
|
PLACE_UID = "place_uid"
|
||||||
@ -18,6 +20,9 @@ type Weixinpayment struct {
|
|||||||
UserUID string `gorm:"type:char(32)"`
|
UserUID string `gorm:"type:char(32)"`
|
||||||
AppID string `gorm:"type:varchar(32)"`
|
AppID string `gorm:"type:varchar(32)"`
|
||||||
MchID string `gorm:"type:varchar(32)"`
|
MchID string `gorm:"type:varchar(32)"`
|
||||||
|
ApiKey string `gorm:"type:varchar(32)"`
|
||||||
|
CertNO string `gorm:"type:varchar(64)"`
|
||||||
|
CertKey string `gorm:"type:varchar(4096)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { db.CmdModels("", &Weixinpayment{}) }
|
func init() { db.CmdModels("", &Weixinpayment{}) }
|
||||||
|
@ -1,25 +1,29 @@
|
|||||||
package weixinpayment
|
package weixinpayment
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"shylinux.com/x/ice"
|
"shylinux.com/x/ice"
|
||||||
"shylinux.com/x/icebergs/base/web"
|
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
|
|
||||||
"shylinux.com/x/community/src/api"
|
"shylinux.com/x/community/src/api"
|
||||||
"shylinux.com/x/community/src/gonganxitong"
|
"shylinux.com/x/community/src/gonganxitong"
|
||||||
"shylinux.com/x/community/src/renzhengshouquan"
|
"shylinux.com/x/community/src/renzhengshouquan"
|
||||||
"shylinux.com/x/community/src/renzhengshouquan/external/weixinpayment/model"
|
"shylinux.com/x/community/src/renzhengshouquan/external/weixinpayment/model"
|
||||||
|
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/core"
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/core/option"
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/services/payments/jsapi"
|
||||||
|
"github.com/wechatpay-apiv3/wechatpay-go/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type weixinpayment struct {
|
type weixinpayment struct {
|
||||||
renzhengshouquan.Table
|
renzhengshouquan.Table
|
||||||
order string `data:"11"`
|
order string `data:"11"`
|
||||||
fields string `data:"app_id,mch_id"`
|
fields string `data:"app_id,mch_id,api_key,cert_no,cert_key"`
|
||||||
create string `name:"create app_id* mch_id*" role:"leader"`
|
create string `name:"create app_id* mch_id* api_key* cert_no* cert_key*:textarea" role:"leader"`
|
||||||
remove string `name:"remove" role:"leader"`
|
remove string `name:"remove" role:"leader"`
|
||||||
|
response string `name:"response" role:"void"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s weixinpayment) Init(m *ice.Message, arg ...string) {
|
func (s weixinpayment) Init(m *ice.Message, arg ...string) {
|
||||||
@ -30,42 +34,43 @@ func (s weixinpayment) List(m *ice.Message, arg ...string) {
|
|||||||
s.ValueList(m, arg).Display("")
|
s.ValueList(m, arg).Display("")
|
||||||
kit.If(m.Length() > 0, func() { m.Action() })
|
kit.If(m.Length() > 0, func() { m.Action() })
|
||||||
}
|
}
|
||||||
func (s weixinpayment) PaymentRequest(m *ice.Message, arg ...string) *ice.Message {
|
func (s weixinpayment) Request(m *ice.Message, arg ...string) *ice.Message {
|
||||||
m.Option("auth_uid", "4c6a8ccf186816b332ad9dc5655255dd")
|
m.Option("auth_uid", "308a1ca57c40e2a46f6568e017269cdd")
|
||||||
return s.spide(m, "POST", "pay/transactions/jsapi",
|
msg := s.Select(m.Spawn(), m.OptionSimple(model.AUTH_UID)...)
|
||||||
"payer.openid", m.Cmd(api.GONGANXITONG_USER, s.Select, model.UID, m.Option(model.USER_UID)).Append(model.OPEN_ID),
|
svc := jsapi.JsapiApiService{Client: s.newClient(m, msg)}
|
||||||
"amount.total", kit.Int(m.Option("amount")), "amount.currency", "CNY",
|
resp, result, err := svc.PrepayWithRequestPayment(m, jsapi.PrepayRequest{
|
||||||
"description", m.Option(model.TITLE), "out_trade_no", m.Option(model.UID),
|
Appid: core.String(msg.Append("app_id")),
|
||||||
"notify_url", strings.Split(m.MergePodCmd("", m.PrefixKey()), "?")[0]+"/action/response/"+m.Option(model.PLACE_UID)+"/"+m.Option(model.UID))
|
Mchid: core.String(msg.Append("mch_id")),
|
||||||
|
Description: core.String(m.Option(model.TITLE)),
|
||||||
|
Attach: core.String(m.Option(model.CONTENT)),
|
||||||
|
OutTradeNo: core.String(m.Option(model.UID)),
|
||||||
|
Amount: &jsapi.Amount{Total: core.Int64(kit.Int64(m.Option(model.AMOUNT)))},
|
||||||
|
Payer: &jsapi.Payer{Openid: core.String(m.Cmd(api.GONGANXITONG_USER, s.Select, model.UID, m.Option(model.USER_UID)).Append(model.OPEN_ID))},
|
||||||
|
NotifyUrl: core.String(strings.Split(m.MergePodCmd("", m.PrefixKey()), "?")[0] + "/action/response/" + m.Option(model.PLACE_UID) + "/" + m.Option(model.UID)),
|
||||||
|
})
|
||||||
|
if !m.Warn(err) {
|
||||||
|
kit.For(kit.UnMarshal(kit.Format(resp)), func(k, v string) { m.Push(kit.LowerCapital(k), v) })
|
||||||
|
}
|
||||||
|
m.Info("what %v %v %v", resp, result, err)
|
||||||
|
return m
|
||||||
}
|
}
|
||||||
func (s weixinpayment) Response(m *ice.Message, arg ...string) *ice.Message {
|
func (s weixinpayment) Response(m *ice.Message, arg ...string) *ice.Message {
|
||||||
m.Echo("hello world")
|
if len(arg) > 1 {
|
||||||
|
if m.Option("event_type") == "TRANSACTION.SUCCESS" {
|
||||||
|
m.Cmdy(api.GONGANXITONG_PAYMENTLIST, s.Response, arg)
|
||||||
|
}
|
||||||
|
}
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { ice.TeamCtxCmd(weixinpayment{}) }
|
func init() { ice.TeamCtxCmd(weixinpayment{}) }
|
||||||
|
|
||||||
func (s weixinpayment) spide(m *ice.Message, method, api string, arg ...ice.Any) *ice.Message {
|
func (s weixinpayment) newClient(m, msg *ice.Message) *core.Client {
|
||||||
msg := s.Select(m.Spawn(), m.OptionSimple(model.AUTH_UID)...)
|
if key, err := utils.LoadPrivateKey(msg.Append("cert_key")); m.Warn(err) {
|
||||||
if msg.Length() == 0 {
|
return nil
|
||||||
m.Echo("请联系公司管理员,配置微信支付的账号")
|
} else if client, err := core.NewClient(m, option.WithWechatPayAutoAuthCipher(msg.Append("mch_id"), msg.Append("cert_no"), key, msg.Append("api_key"))); m.Warn(err) {
|
||||||
return m
|
return nil
|
||||||
|
} else {
|
||||||
|
return client
|
||||||
}
|
}
|
||||||
arg = append(arg, "appid", msg.Append("app_id"), "mchid", msg.Append("mch_id"))
|
|
||||||
method = kit.Select(http.MethodGet, method)
|
|
||||||
uri, body, args := kit.MergeURL("/v3/"+api, arg...), "", []string{}
|
|
||||||
kit.If(kit.IsIn(method, http.MethodPost, http.MethodPut), func() {
|
|
||||||
uri, body = kit.MergeURL("/v3/"+api), kit.Format(kit.Dict(arg...))
|
|
||||||
args = []string{web.SPIDE_DATA, body}
|
|
||||||
})
|
|
||||||
m.Options(web.SPIDE_HEADER, map[string]string{
|
|
||||||
"Accept": "application/json", "Authorization": doSignature("", "", method, "", "", uri, body),
|
|
||||||
}).Cmdy(web.SPIDE, ice.DEV, web.SPIDE_RAW, method, "https://api.mch.weixin.qq.com"+uri, args)
|
|
||||||
|
|
||||||
kit.If(kit.IsIn(method, http.MethodPost, http.MethodPut), func() { kit.If(!m.IsErr(), func() { m.ProcessRefresh() }) })
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
func doSignature(secretId string, secretKey string, method string, nonce string, now string, uri string, body string) string {
|
|
||||||
strings.Join([]string{method, uri, now, nonce, body}, "\n")
|
|
||||||
return ""
|
|
||||||
}
|
}
|
||||||
|
@ -2,5 +2,6 @@ chapter "微信支付"
|
|||||||
refer `
|
refer `
|
||||||
后台 https://pay.weixin.qq.com/index.php/core/cert/api_cert#/
|
后台 https://pay.weixin.qq.com/index.php/core/cert/api_cert#/
|
||||||
文档 https://pay.weixin.qq.com/doc/v3/merchant/4012525057
|
文档 https://pay.weixin.qq.com/doc/v3/merchant/4012525057
|
||||||
|
接口 https://github.com/wechatpay-apiv3/wechatpay-go
|
||||||
签名算法 https://segmentfault.com/a/1190000039301729
|
签名算法 https://segmentfault.com/a/1190000039301729
|
||||||
`
|
`
|
@ -1,7 +1,7 @@
|
|||||||
Volcanos(chat.ONIMPORT, {
|
Volcanos(chat.ONIMPORT, {
|
||||||
_init: function(can, msg) {
|
_init: function(can, msg) {
|
||||||
can.onimport.myView(can, msg, function(value) { return [
|
can.onimport.myView(can, msg, function(value) { return [
|
||||||
{view: html.TITLE, list: [value.title||value.name||value.user_name]},
|
{view: html.TITLE, list: [value.title||value.name||value.user_name, can.onimport.titleAction(can, value)]},
|
||||||
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
|
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
|
||||||
{view: html.OUTPUT, list: [value.content||value.info]},
|
{view: html.OUTPUT, list: [value.content||value.info]},
|
||||||
] })
|
] })
|
||||||
|
Loading…
x
Reference in New Issue
Block a user