new wxpay
This commit is contained in:
parent
e99814461e
commit
db8e6a930d
@ -40,12 +40,10 @@ Alipay:
|
||||
ReturnURL: "http://192.168.10.13:5679/payment/result"
|
||||
|
||||
Wxpay:
|
||||
AppID: "wxa581992dc74d860e"
|
||||
MchID: "1704330055"
|
||||
MchPublicKeyID: "PUB_KEY_ID_0117043300552025010900447500000187"
|
||||
MchPublicKeyPath: "etc/merchant/pub_key.pem"
|
||||
MchCertificateSerialNumber: "434FE8C0FC8CFEF28B76B3EF35DD2297E977A3CB"
|
||||
MchApiv3Key: "h6Jk9Qm7W1pXyFzA4bL2V8CzH0K3wDqw"
|
||||
AppID: "wxba8424db4771cc18"
|
||||
MchID: "1682635136"
|
||||
MchCertificateSerialNumber: "5369B8AEEBDCF7AF274510252E6A8C0659C30F61"
|
||||
MchApiv3Key: "e3ea4cf0765f1e71b01bb387dfcdbc9f"
|
||||
MchPrivateKeyPath: "etc/merchant/apiclient_key.pem"
|
||||
NotifyUrl: "https://6m4685017o.goho.co/api/v1/pay/wechat/callback"
|
||||
RefundNotifyUrl: "https://6m4685017o.goho.co/api/v1/wechat/refund_callback"
|
||||
|
@ -41,15 +41,13 @@ Alipay:
|
||||
NotifyUrl: "https://www.quannengcha.com/api/v1/pay/alipay/callback"
|
||||
ReturnURL: "https://www.quannengcha.com/payment/result"
|
||||
Wxpay:
|
||||
AppID: "wxa581992dc74d860e"
|
||||
MchID: "1704330055"
|
||||
MchPublicKeyID: "PUB_KEY_ID_0117043300552025010900447500000187"
|
||||
MchPublicKeyPath: "etc/merchant/pub_key.pem"
|
||||
MchCertificateSerialNumber: "434FE8C0FC8CFEF28B76B3EF35DD2297E977A3CB"
|
||||
MchApiv3Key: "h6Jk9Qm7W1pXyFzA4bL2V8CzH0K3wDqw"
|
||||
AppID: "wxba8424db4771cc18"
|
||||
MchID: "1682635136"
|
||||
MchCertificateSerialNumber: "5369B8AEEBDCF7AF274510252E6A8C0659C30F61"
|
||||
MchApiv3Key: "e3ea4cf0765f1e71b01bb387dfcdbc9f"
|
||||
MchPrivateKeyPath: "etc/merchant/apiclient_key.pem"
|
||||
NotifyUrl: "https://www.quannengcha.com/api/v1/pay/wechat/callback"
|
||||
RefundNotifyUrl: "https://www.quannengcha.com/api/v1/wechat/refund_callback"
|
||||
NotifyUrl: "https://www.tianyuancha.cn/api/v1/pay/wechat/callback"
|
||||
RefundNotifyUrl: "https://www.tianyuancha.cn/api/v1/wechat/refund_callback"
|
||||
Applepay:
|
||||
ProductionVerifyURL: "https://api.storekit.itunes.apple.com/inApps/v1/transactions/receipt"
|
||||
SandboxVerifyURL: "https://api.storekit-sandbox.itunes.apple.com/inApps/v1/transactions/receipt"
|
||||
|
@ -1,28 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDBUq/9OV6FzRcl
|
||||
vUReArEh6czC001MVzEsBbde88xpsZjQkCoECzJL7wHq9aWcom4yQjp6AiTHeHO1
|
||||
FvHoRN/dssxgVf28V3L2zF4U23FNcWOElScQksYESNAIVTQb5lKnRdgAS4LRY0OE
|
||||
BzSnlYn+m6zQV6GRCOv0uCR7tgRFGdYW+RoHjHJqH4dX2cN/SrpuB01/BEkUJIp7
|
||||
bWswyh8Ogf9GZZumJlmJtld18ZDqd1RzQDk8VbYxJgsmcXcQPa1LouZsBVzU4IdV
|
||||
Bz0/vNIJ2+D+shifPT7dL4IWCjL6zHxYdnHv9VDb1bS9JN6pk4Tpi4C3Tyhaq3kI
|
||||
iRW0IPqFAgMBAAECggEAR9KMh6t0rokPfHngmHyvikXuSMNwCFiscAp/ocs5ulq8
|
||||
x1+H/JCcUxGsyLoSmSrPfeSVDRcWyvS5KCIqJXzRHvB6dZ/88KgckgxDN8R/R6JE
|
||||
stEm/kVJQ/Y5M59UCLl9I6ATK6jiJSCXyMlUip5H8kur3Itx/wwtfXGcPEnXNERK
|
||||
qM7AXRB2d6Ag0XkC9Cfdf6U7WNk1zKAr+1V1Iiav5mU7A8iHFsgK6RjVbxdh2ghJ
|
||||
45LLU26YdoNoSWRefd1Wu/n0OMfyQdpySnyJcei2+5PlNbt6uHKrQLxtSE/HllcK
|
||||
agv+FzfRYNpZ+ia7GMvTDNEuvnkKxs/K24Gk+aOwUQKBgQD48Qkns6gIN9yURMgc
|
||||
KE8mDaerNeuCHY1cxymgriYUQAjrEysy51W41q+gvvJbXYMAmNM5RbrV+ktSWDZG
|
||||
kljQaY0c/u0mYofuNYs/ul1TFcQTwxNnYUMmCWFzRgFM7Sp2H+sRO3W+Tvs9ctFJ
|
||||
7a8HOYxqkQSfnHSgOuXAKXvy6wKBgQDGzfCF6DfRh3D/QQ9WCBi1JNWdLL6fHbmI
|
||||
V4OrpQuQiTGGf/yY8ySOLq0QYXyc3pBxgTdOChliSNBjdr7/LXusIByZEvcKOds5
|
||||
pOalrjrFWoNf87zM38wMQjUeMprWQniBmq4H+TL7De29hR1QhdGb62uZCLo5V1u2
|
||||
k41gGvoMTwKBgC1blaRzOomMzBcD1UY0Hf+7+zHZ2DhT9B7UdwQ81tlXtYhHbNaQ
|
||||
ifDsxQFP6U62Yhkov0uvJdS5DyJIylLfdWk74idHV6RnzYacoOuSpFBwJdLH93Ad
|
||||
q6NxkBz1w2TlzZfKRwVTxSdQsrxGgFWtBfgWBzyfga0nT6SmNphltpzTAoGAML3l
|
||||
Lq+Un+aZKbwFyo4JoL/7L6H8yn47MtZiDf9VKoa4gcV3ZPiYCdQf0lhUeRGIUIvh
|
||||
x1xqhNJdZUWD5oR8QeNNn6oqr3Mn8KYhdpWVCzX559iWfZSRLqA87b5yf/2kFgKa
|
||||
kJHkkfEETOcKHOfyUEwUAV1GazCj58udaeazT7kCgYB23ZTeqRsxw7jqEVz6KOSW
|
||||
oWGYi0/lDmW6dtjcT3fDtyiYDlnE+53dIs2mcIvUyOwzcQ+e1rH+ZmGf/UpfWyXl
|
||||
7aftUeDlPMLHi7wQUU04DaZU/Lyy0HGHMKVrPJF47gLKCgfk8I8HdUEtHSXNmYZb
|
||||
hZ3T2j+d4u74saGGaxOlqw==
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDCP6fWm1vXXybH
|
||||
m3Ne6PjacGrN2+iMrzWZlzdHCZ31udDPqSUYaZ+78b441KZK/CJFQWeSJ/1h//A+
|
||||
BGsQDKvE/fj2QzN1KkOuQ8WJXNGpixE5uu5bv/QTN/ukurGdA1aO2aFCANumlOmB
|
||||
HkB/B2so57ii8iQQjwK2xM4r3oOU/IfcFGKL+9/QjLGFFp9PJXCDBCgrxxlZGaj1
|
||||
3wowlfVOzlaX94gemQsCYVkuAFIYMAnFHs9cKNZQIU80somW/yy2Gy38N6n7NnbD
|
||||
nvFSaq4GoDROqRgKbRZ5e706d/p7A3aS/2oRqq1jomUIugK8g++LmoHFTgfhfQkI
|
||||
v1aG/nPzAgMBAAECggEAD2RN31J2J42xm/V0YdviBCUOQXugZK1peN8jkSxw6Myt
|
||||
gBbuCo4sCw9vvD8VYjGyYXx6QXmLuV03YyKkfSQT5EsflBvlEu6jaEaUe3rwXhfX
|
||||
6JQoWPrP00oHVZk5g7CFBlK2VW2N+hgonIOSJr6mvhoGZlr7gphiZasYjx9Vm9N3
|
||||
Pbnfru5ttzplYNniwH3DF6ph8VmdbD1nnbWSKLXvHCsXQT2wBcnsIagIH3vyq6K1
|
||||
pc5abWsQJrixOPebpI8jD5w0HxHAqVLx58H/OC2zW/roAw1WS2AkueJ1j7dQ7Z0C
|
||||
mc9Xexz5gcAP0nMAQv+LP7iYqsa/niFhfcTFWfdxkQKBgQD5JkKNmInU2/IVYCwO
|
||||
c483MCSv1+MnbRXlb7vut8T0IupHTU6hCge6C3q3HsjbKSBn8bRChtPUzvw9JFxK
|
||||
QWKiQqQDPLDJ08AIKhfQD2JiLtoikkZN0bF6OTL+Soney1yGx51mlfHM194+PcCJ
|
||||
jF7iWdMVbcBwHbgydNxxIS5cKQKBgQDHlvQ4lw6gvLILpGK494/vNYSJP/Jmd66V
|
||||
3oSGYi84YRKTSwH4NlbBVVieb3Dv+pPugbsXEuFHBif7WsivbYgNTE9++8Yvt0gh
|
||||
duB1G4yh7m/ylQeSuipgQU9tozrU/15cWwmcCRV50wWXBGoVEM0kf7mzEKSxmjYk
|
||||
Qzko/zxSuwKBgQCY6Bc+SViFz3qSDdTcBaXma+CIHsmlH7ipd9px1kzEvEzl95cD
|
||||
FGHLl1H34qfIgUQHJvrHPXHyEBoT+CW/2MMM7DM2XV/ubctT92ln4pkxwqlTQExv
|
||||
Y/s1FLesAtj8Z/hgK0/5bprYab9WmZV5lTGCXzhB1XqeFE9AgCHuODv4iQKBgQC8
|
||||
g2uwd5ytXQydymokYk9klJvWNrvw5GHV1BJAC0Smb6lnzZTSqCBRAxdsrb1yLK7E
|
||||
u2vGY2K7/qiM1DZw23eBd+4t9gg+0VIjqXBfq+GsoNTDvtckUwnrWER5PY831ut9
|
||||
N89fvYS3SAUjmlvIAdKBAtKWusWTqiAxJ/05J7oGOQKBgB5PSr5i0LlupIbKui9t
|
||||
XtXnRqGPxxrZZUpTkyrGOAnlCz/zq2QiwFpBWo/NMHOp0KmxzJpQ8yEY2LWlRZ61
|
||||
Oc9m0J/HtPw3Ohi1treBosEVG/0NOI9Tq1Obny23N51MVibdW6zEIyGUp/DbFS8h
|
||||
5DljdOYX9IYIHHn3Ig4GeTGe
|
||||
-----END PRIVATE KEY-----
|
||||
|
@ -53,8 +53,6 @@ type AlipayConfig struct {
|
||||
type WxpayConfig struct {
|
||||
AppID string
|
||||
MchID string
|
||||
MchPublicKeyID string
|
||||
MchPublicKeyPath string
|
||||
MchCertificateSerialNumber string
|
||||
MchApiv3Key string
|
||||
MchPrivateKeyPath string
|
||||
|
@ -210,6 +210,7 @@ var requestProcessors = map[string]func(*ApiRequestService, []byte) ([]byte, err
|
||||
"G10XM02": (*ApiRequestService).ProcessG10XM02Request,
|
||||
"G11BJ06": (*ApiRequestService).ProcessG11BJ06Request,
|
||||
"G29BJ05": (*ApiRequestService).ProcessG29BJ05Request,
|
||||
"Marriage": (*ApiRequestService).ProcessMarriageRequest,
|
||||
}
|
||||
|
||||
// PreprocessRequestApi 调用指定的请求处理函数
|
||||
@ -1854,6 +1855,21 @@ func (a *ApiRequestService) ProcessRIS031Request(params []byte) ([]byte, error)
|
||||
|
||||
return []byte(Value.Raw), nil
|
||||
}
|
||||
|
||||
// ProcessMarriageRequest 婚姻状态查询,优先使用西部数据G09XM02接口,失败时回退到羽山IDV044接口
|
||||
func (a *ApiRequestService) ProcessMarriageRequest(params []byte) ([]byte, error) {
|
||||
// 首先尝试使用西部数据接口查询
|
||||
resp, err := a.ProcessG09XM02Request(params)
|
||||
if err != nil {
|
||||
// 西部数据接口查询失败,尝试使用羽山接口
|
||||
logx.Infof("西部数据婚姻查询失败,尝试使用羽山接口: %v", err)
|
||||
resp, err = a.ProcessIDV044Request(params)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
func (a *ApiRequestService) ProcessG09XM02Request(params []byte) ([]byte, error) {
|
||||
idCard := gjson.GetBytes(params, "id_card")
|
||||
name := gjson.GetBytes(params, "name")
|
||||
@ -1895,7 +1911,6 @@ func (a *ApiRequestService) ProcessG09XM02Request(params []byte) ([]byte, error)
|
||||
response := map[string]string{
|
||||
"status": statusCode,
|
||||
}
|
||||
|
||||
// 序列化为JSON
|
||||
jsonResponse, err := json.Marshal(response)
|
||||
if err != nil {
|
||||
|
@ -47,22 +47,17 @@ func NewWechatPayService(c config.Config, userAuthModel model.UserAuthModel) *We
|
||||
mchID := c.Wxpay.MchID
|
||||
mchCertificateSerialNumber := c.Wxpay.MchCertificateSerialNumber
|
||||
mchAPIv3Key := c.Wxpay.MchApiv3Key
|
||||
mchPublicKeyID := c.Wxpay.MchPublicKeyID
|
||||
|
||||
// 从文件中加载商户私钥
|
||||
mchPrivateKey, err := utils.LoadPrivateKeyWithPath(c.Wxpay.MchPrivateKeyPath)
|
||||
if err != nil {
|
||||
logx.Errorf("加载商户私钥失败: %v", err)
|
||||
panic(fmt.Sprintf("初始化失败,服务停止: %v", err)) // 记录错误并停止程序
|
||||
}
|
||||
// 从文件中加载公钥
|
||||
mchPublicKey, err := utils.LoadPublicKeyWithPath(c.Wxpay.MchPublicKeyPath)
|
||||
if err != nil {
|
||||
logx.Errorf("加载商户私钥失败: %v", err)
|
||||
panic(fmt.Sprintf("初始化失败,服务停止: %v", err)) // 记录错误并停止程序
|
||||
}
|
||||
|
||||
// 使用商户私钥和其他参数初始化微信支付客户端
|
||||
opts := []core.ClientOption{
|
||||
option.WithWechatPayPublicKeyAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchPublicKeyID, mchPublicKey),
|
||||
option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
|
||||
}
|
||||
client, err := core.NewClient(context.Background(), opts...)
|
||||
if err != nil {
|
||||
@ -71,14 +66,12 @@ func NewWechatPayService(c config.Config, userAuthModel model.UserAuthModel) *We
|
||||
}
|
||||
// 在初始化时获取证书访问器并创建 notifyHandler
|
||||
certificateVisitor := downloader.MgrInstance().GetCertificateVisitor(mchID)
|
||||
//notifyHandler, err := notify.NewRSANotifyHandler(mchAPIv3Key, verifiers.NewSHA256WithRSAVerifier(certificateVisitor))
|
||||
//if err != nil {
|
||||
// logx.Errorf("获取证书访问器失败: %v", err)
|
||||
// panic(fmt.Sprintf("初始化失败,服务停止: %v", err)) // 记录错误并停止程序
|
||||
//}
|
||||
notifyHandler := notify.NewNotifyHandler(
|
||||
mchAPIv3Key,
|
||||
verifiers.NewSHA256WithRSACombinedVerifier(certificateVisitor, mchPublicKeyID, *mchPublicKey))
|
||||
notifyHandler, err := notify.NewRSANotifyHandler(mchAPIv3Key, verifiers.NewSHA256WithRSAVerifier(certificateVisitor))
|
||||
if err != nil {
|
||||
logx.Errorf("获取证书访问器失败: %v", err)
|
||||
panic(fmt.Sprintf("初始化失败,服务停止: %v", err)) // 记录错误并停止程序
|
||||
}
|
||||
logx.Infof("微信支付客户端初始化成功")
|
||||
return &WechatPayService{
|
||||
config: c.Wxpay,
|
||||
wechatClient: client,
|
||||
|
Loading…
Reference in New Issue
Block a user