Merge branch 'dev-lwl/wx' into test
This commit is contained in:
commit
aeeb97dc7c
|
@ -8,6 +8,7 @@ type ConfigSt struct {
|
||||||
MixMysql *configcenter.MysqlConfig `json:"mix_mysql" yaml:"mix_mysql"` // mix mysql
|
MixMysql *configcenter.MysqlConfig `json:"mix_mysql" yaml:"mix_mysql"` // mix mysql
|
||||||
Crypto *configcenter.CryptoConfig `json:"crypto" yaml:"crypto"` // 账号相关加密
|
Crypto *configcenter.CryptoConfig `json:"crypto" yaml:"crypto"` // 账号相关加密
|
||||||
Wxpay *configcenter.WxpayClientConfig `json:"wxpay" yaml:"wxpay"` // 微信支付
|
Wxpay *configcenter.WxpayClientConfig `json:"wxpay" yaml:"wxpay"` // 微信支付
|
||||||
|
WxpayTFZ *configcenter.WxpayClientConfig `json:"wxpay_tfz" yaml:"wxpay_tfz"` // 微信支付
|
||||||
Alipay *configcenter.AlipayClientConfig `json:"alipay" yaml:"alipay"` // 支付宝 心意到了
|
Alipay *configcenter.AlipayClientConfig `json:"alipay" yaml:"alipay"` // 支付宝 心意到了
|
||||||
AlipayMYTS *configcenter.AlipayClientConfig `json:"alipay_myts" yaml:"alipay_myts"` // 支付宝 觅缘天使
|
AlipayMYTS *configcenter.AlipayClientConfig `json:"alipay_myts" yaml:"alipay_myts"` // 支付宝 觅缘天使
|
||||||
Apollo *configcenter.ApolloConfig `json:"apollo" yaml:"apollo"` // Apollo
|
Apollo *configcenter.ApolloConfig `json:"apollo" yaml:"apollo"` // Apollo
|
||||||
|
|
|
@ -159,7 +159,7 @@ func (s *Service) Init(c any) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = wxpaycli.Init(cfg.Wxpay)
|
err = wxpaycli.InitMulti(cfg.Wxpay, cfg.WxpayTFZ)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("wxpaycli.Init fail, cfg: %v, err: %v", util.ToJson(cfg.Wxpay), err)
|
logger.Error("wxpaycli.Init fail, cfg: %v, err: %v", util.ToJson(cfg.Wxpay), err)
|
||||||
return
|
return
|
||||||
|
|
|
@ -68,6 +68,7 @@ CREATE INDEX ix_orderid ON vas_ch_charge (order_id);
|
||||||
CREATE INDEX mid_ct ON vas_ch_income (mid, ct);
|
CREATE INDEX mid_ct ON vas_ch_income (mid, ct);
|
||||||
CREATE INDEX uid_ct ON vas_ch_income (uid, ct);
|
CREATE INDEX uid_ct ON vas_ch_income (uid, ct);
|
||||||
CREATE INDEX ix_orderid ON vas_ch_income (order_id);
|
CREATE INDEX ix_orderid ON vas_ch_income (order_id);
|
||||||
|
CREATE INDEX ix_ct ON vas_ch_income (ct);
|
||||||
CREATE INDEX mid_ct ON vas_ch_withdraw (mid, ct);
|
CREATE INDEX mid_ct ON vas_ch_withdraw (mid, ct);
|
||||||
CREATE INDEX uid_ct ON vas_ch_withdraw (uid, ct);
|
CREATE INDEX uid_ct ON vas_ch_withdraw (uid, ct);
|
||||||
CREATE INDEX ix_orderid ON vas_ch_withdraw (order_id);
|
CREATE INDEX ix_orderid ON vas_ch_withdraw (order_id);
|
||||||
|
|
|
@ -63,6 +63,15 @@ wxpay:
|
||||||
notify_url: "https://api.tiefen.fun/ext/vas/wxpay_callback"
|
notify_url: "https://api.tiefen.fun/ext/vas/wxpay_callback"
|
||||||
app_secret: "ebc325109b91087e22f046bc8ac5c940"
|
app_secret: "ebc325109b91087e22f046bc8ac5c940"
|
||||||
|
|
||||||
|
wxpay_tfz:
|
||||||
|
mchid: "1675813721"
|
||||||
|
appid: "wxc28fd8aaf31984b6"
|
||||||
|
serial_no: "176903F43E78B0BA5AA1F08A3BE852A5F637DC77"
|
||||||
|
apiv3_key: "5QwY1XMK1HW3JQwGKbA3mfJ5cdsTQGjR"
|
||||||
|
private_key_path: "/app/wishpal-ironfan/etc/mix/wxpaycert_tfz/apiclient_key.pem"
|
||||||
|
notify_url: "https://api.tiefen.fun/ext/vas/wxpay_callback"
|
||||||
|
app_secret: "ebc325109b91087e22f046bc8ac5c940"
|
||||||
|
|
||||||
apollo:
|
apollo:
|
||||||
app_id: "wishpal_live_service"
|
app_id: "wishpal_live_service"
|
||||||
cluster: "dev"
|
cluster: "dev"
|
||||||
|
|
|
@ -36,6 +36,16 @@ wxpay:
|
||||||
notify_url: "https://api.wishpal.cn/ext/vas/wxpay_callback"
|
notify_url: "https://api.wishpal.cn/ext/vas/wxpay_callback"
|
||||||
app_secret: "ebc325109b91087e22f046bc8ac5c940"
|
app_secret: "ebc325109b91087e22f046bc8ac5c940"
|
||||||
|
|
||||||
|
wxpay_tfz:
|
||||||
|
mchid: "1675813721"
|
||||||
|
appid: "wxc28fd8aaf31984b6"
|
||||||
|
serial_no: "176903F43E78B0BA5AA1F08A3BE852A5F637DC77"
|
||||||
|
apiv3_key: "5QwY1XMK1HW3JQwGKbA3mfJ5cdsTQGjR"
|
||||||
|
private_key_path: "/app/wishpal-ironfan/etc/mix/wxpaycert_tfz/apiclient_key.pem"
|
||||||
|
notify_url: "https://api.wishpal.cn/ext/vas/wxpay_callback"
|
||||||
|
app_secret: "ebc325109b91087e22f046bc8ac5c940"
|
||||||
|
apiv2_key: "mot5410nh69k87e22f046bc8anv5xds8"
|
||||||
|
|
||||||
crypto:
|
crypto:
|
||||||
aes:
|
aes:
|
||||||
private_key: "Xbz1145141919810"
|
private_key: "Xbz1145141919810"
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEKDCCAxCgAwIBAgIUF2kD9D54sLpaofCKO+hSpfY33HcwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
|
||||||
|
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
|
||||||
|
Q0EwHhcNMjQwNTAyMTc1NzA2WhcNMjkwNTAxMTc1NzA2WjCBgTETMBEGA1UEAwwK
|
||||||
|
MTY3NTgxMzcyMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL
|
||||||
|
DCTmiJDpg73lv4PmhI/liLDkuobnp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYT
|
||||||
|
AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
||||||
|
AQoCggEBAOaDpU37roG4zQOok/00vHtgPQdVEy/SgxqdakEEygVFXTiCh/PSmynV
|
||||||
|
wtAiULYkDor+KdPMAqmTO/wVxlkxVWhh0tq3Wr49MWqmSGAdS749H0CKv/TxrL+y
|
||||||
|
Bmw5OuKolGV7xYne9wJC28M0wJOJH4XFwUSJnQqOec956KdwnSWuZ/X8uI0d8Cs1
|
||||||
|
It/HRX4tJunEDaPFLCnF4ju6wrr+kAjlZb35laDX7zmDg25/yhpxpmgeAeJgSH7K
|
||||||
|
EJSCYlUWOpspMb4porEG5NIUxu1TfLXO4kkx3j7Diz8szdzZrTGdLcc4FjKNTdIL
|
||||||
|
jaJxmH8eyYC2Zu2jyuF5F3vSTtACszsCAwEAAaOBuTCBtjAJBgNVHRMEAjAAMAsG
|
||||||
|
A1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2Y2Eu
|
||||||
|
aXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRC
|
||||||
|
MDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJCMjdB
|
||||||
|
OUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQB8Ze+8
|
||||||
|
G5dKUUuAaGlwBQNxwf1YPeZ7LU3lh0OKc+09cQ3yNDJXdYKdgrCI0L2dkZMnk0xo
|
||||||
|
/gf0lxFfXiRfR5jYCYr3MRU7ooayqXEPpvwoRmTboiE9hVrpPifGeETsKJwQkvE3
|
||||||
|
W1kpBYckkNtUBucL6c7W66q7kFtz+8wVP7gPgJ7UFjk8x3r4Zao+A3opPRTBVgls
|
||||||
|
fxmmCu1Ud3Pf/zHKd1FCBDZepJ2ObOIUYW/0Wc+p2VbqansG1DirQ5jkmaf33mEN
|
||||||
|
51kDz5Hw07XGz04ZVPAWkpLtjAQFF4bSVfYxTYvhOllTidZXtt2IJNGT/MQyKp98
|
||||||
|
ufapZz95Zc/bxQ7U
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDmg6VN+66BuM0D
|
||||||
|
qJP9NLx7YD0HVRMv0oManWpBBMoFRV04gofz0psp1cLQIlC2JA6K/inTzAKpkzv8
|
||||||
|
FcZZMVVoYdLat1q+PTFqpkhgHUu+PR9Air/08ay/sgZsOTriqJRle8WJ3vcCQtvD
|
||||||
|
NMCTiR+FxcFEiZ0KjnnPeeincJ0lrmf1/LiNHfArNSLfx0V+LSbpxA2jxSwpxeI7
|
||||||
|
usK6/pAI5WW9+ZWg1+85g4Nuf8oacaZoHgHiYEh+yhCUgmJVFjqbKTG+KaKxBuTS
|
||||||
|
FMbtU3y1zuJJMd4+w4s/LM3c2a0xnS3HOBYyjU3SC42icZh/HsmAtmbto8rheRd7
|
||||||
|
0k7QArM7AgMBAAECggEAYQEHQFDod8iH5cE8PbLCmny+UeaYQ2ioKTwTKbdVOHCf
|
||||||
|
MRelFJMNHsbIy4OVSYDU6eLZQTq56BiAhq23IXOkSF/aNpYwRpxDvmipTmElrbHV
|
||||||
|
A/kfnHlTQ/wrvcE7qYRdpnM2hrVgZwAxsOzzGWL78/RrR2dNwdKBKjFYGZZHW0JE
|
||||||
|
HB3H6KZsqPssM9COYy4JrzWOgx/dGxihMSeWbGFgjXXo7LN7bWPzS6/6nBcVrmQU
|
||||||
|
JNjQ2Y4MIc56pjfoXwWHLUfftNL75uLr+yBVsL3qOLVTpLgIQQZyPSfj0Xg3rG7h
|
||||||
|
hzab5gLF+TREAFYsHPR1vyDJjzGjimrHjvCWysMxaQKBgQD26GvU2tz5HNMpGeUZ
|
||||||
|
A0DJmnKxY40sPltZES/l3mTiJzmig6kT+UGxeg3tPkU3Z/zCUFdoXWT1nNA185eD
|
||||||
|
fFgEka3mxg1g5Iw9PmefqeHbCMs94ICKdxsnJn1PFMhIPqhms9wcjoKJGgKUj3ov
|
||||||
|
a243HS/yh4gl6EnvMMeBTZMpZQKBgQDvAK7X9ZXb91+F/lBHrhynJjQmsbiDQcqk
|
||||||
|
synIImWPHJ6M1h2/vJbplmaOQFPOBqQiMWepb3TtKtGcSAYXIsyUFD1OECLb/+Vn
|
||||||
|
We/P6kVyki7UgDLkQERhNDmsdP1qzzt0UmncUjYUk2eFlfobgwSP3iZ+8aFZ10XF
|
||||||
|
BSwJTbrwHwKBgD2kpVdNFSI0qht21ZW7FC/BGaVj/1jucIv6GIVBUtqLhH4odMwB
|
||||||
|
zP7sRBHZHBrLIXW57TinKI+RiQIPQOKY5ritTkdxZuGr7b9UlzZriXHP7j4SkMUB
|
||||||
|
G4xYtaxKuf4fdpe9i9StV7W3ArHoaE7yeV/VL6VTZRBhwCOxf/2uSnFpAoGAV8S1
|
||||||
|
cKNEREIkty08SAZ9iThzYF5VdwY7J56P0monR5Xn96pNxHK6LM/Jm6Wt4PP5ZIEm
|
||||||
|
I0fF9a6KyUx9yBNEc4C3PqqYUpg3o2uYsI7EsB1Uyz7E8aNUOSoXn+hag9XUbJQz
|
||||||
|
QfCC4a18D8eS0HWdwEOBeY68hSST/5U1pbkA1FsCgYBQZX6MqUEybdjPnxeJn/RN
|
||||||
|
c3wG97sGG87A6Xo2i42koX1w87LT/f9qJrR/sU6kHw/39E/vx2xkMIs6u7I9lO+d
|
||||||
|
WsBYbtcp4ZDAI1+NwcDtkd6Q1Kbpti2MxkuC6r+1kteE80DEB4lryJ6r4HAry3k8
|
||||||
|
uCJCasc77UvJcfVnZX5QkA==
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -30,21 +30,43 @@ const (
|
||||||
DefaultOrderTimeoutSeconds = 900 // 默认订单超时时间,单位: s
|
DefaultOrderTimeoutSeconds = 900 // 默认订单超时时间,单位: s
|
||||||
)
|
)
|
||||||
|
|
||||||
var defaultWxpayClient *WxpayClient
|
const (
|
||||||
|
AppIdXinYiDaoLe = "1665016206"
|
||||||
|
AppIdTieFenZone = "1675813721"
|
||||||
|
)
|
||||||
|
|
||||||
|
var allWxpayClients = map[string]*WxpayClient{}
|
||||||
|
|
||||||
|
func GetDefaultWxpayClient() *WxpayClient {
|
||||||
|
return allWxpayClients[AppIdTieFenZone]
|
||||||
|
}
|
||||||
|
|
||||||
type WxpayClient struct {
|
type WxpayClient struct {
|
||||||
clientV3 *wxpayv3.ClientV3
|
clientV3 *wxpayv3.ClientV3
|
||||||
|
MchId string `json:"mch_id"`
|
||||||
AppSecret string `json:"app_secret"`
|
AppSecret string `json:"app_secret"`
|
||||||
AppId string `json:"app_id"`
|
AppId string `json:"app_id"`
|
||||||
NotifyUrl string `json:"notify_url"`
|
NotifyUrl string `json:"notify_url"`
|
||||||
PrivateKeyPath string `json:"private_key_path"`
|
PrivateKeyPath string `json:"private_key_path"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDefaultWxpayClient() *WxpayClient {
|
func InitMulti(cfgList ...*configcenter.WxpayClientConfig) (err error) {
|
||||||
return defaultWxpayClient
|
for _, cfg := range cfgList {
|
||||||
|
var cli *WxpayClient
|
||||||
|
cli, err = NewWxpayClient(cfg)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if cli == nil {
|
||||||
|
err = errors.New("NewAlipayClient fail")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
allWxpayClients[cli.MchId] = cli
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func Init(cfg *configcenter.WxpayClientConfig) (err error) {
|
func NewWxpayClient(cfg *configcenter.WxpayClientConfig) (ret *WxpayClient, err error) {
|
||||||
// private key
|
// private key
|
||||||
bs, err := os.ReadFile(cfg.PrivateKeyPath)
|
bs, err := os.ReadFile(cfg.PrivateKeyPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -59,8 +81,9 @@ func Init(cfg *configcenter.WxpayClientConfig) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultWxpayClient = &WxpayClient{
|
ret = &WxpayClient{
|
||||||
clientV3: wxpayCliV3,
|
clientV3: wxpayCliV3,
|
||||||
|
MchId: cfg.MchId,
|
||||||
AppSecret: cfg.AppSecret,
|
AppSecret: cfg.AppSecret,
|
||||||
AppId: cfg.AppId,
|
AppId: cfg.AppId,
|
||||||
NotifyUrl: cfg.NotifyUrl,
|
NotifyUrl: cfg.NotifyUrl,
|
||||||
|
|
|
@ -20,7 +20,7 @@ func TestMain(m *testing.M) {
|
||||||
fmt.Printf("%v\n", err)
|
fmt.Printf("%v\n", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = Init(cfg.Wxpay)
|
err = InitMulti(cfg.Wxpay)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|
Loading…
Reference in New Issue