plugin 云闪付,回调签名,相关处理,提单查国密加密数据处理
This commit is contained in:
parent
a0b5a08071
commit
637dc11b71
|
@ -26,6 +26,8 @@ const (
|
||||||
queryBizMethod = "mkt.cpn.couponAcqQuery.v1"
|
queryBizMethod = "mkt.cpn.couponAcqQuery.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const notifyBizMethod = "mkt.CpnStateUpdtNotify"
|
||||||
|
|
||||||
type UnionPayService struct{}
|
type UnionPayService struct{}
|
||||||
|
|
||||||
func (p *UnionPayService) Order(ctx context.Context, request *proto.OrderRequest) (*proto.OrderResponse, error) {
|
func (p *UnionPayService) Order(ctx context.Context, request *proto.OrderRequest) (*proto.OrderResponse, error) {
|
||||||
|
@ -77,7 +79,7 @@ func (p *UnionPayService) Notify(_ context.Context, request *proto.NotifyRequest
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = verify(conf, uv, request); err != nil {
|
if err = verify(conf, uv, notifyBizMethod); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"codeup.aliyun.com/6552e56cc3b2728a4557fc18/plugin/proto"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"plugins/union_pay/internal/po"
|
"plugins/union_pay/internal/po"
|
||||||
|
@ -36,10 +35,16 @@ func headers(config *Config, req po.Req, bizMethod string) map[string][]string {
|
||||||
return h
|
return h
|
||||||
}
|
}
|
||||||
|
|
||||||
func verify(config *Config, req *po.Notify, request *proto.NotifyRequest) error {
|
func verify(config *Config, req *po.Notify, notifyBizMethod string) error {
|
||||||
if req.Headers.SignMethod != vo.SignMethod {
|
if req.Headers.SignMethod != vo.SignMethod {
|
||||||
return fmt.Errorf("签名方式不匹配")
|
return fmt.Errorf("签名方式不匹配")
|
||||||
}
|
}
|
||||||
|
if req.Headers.AppId != config.Config.AppId {
|
||||||
|
return fmt.Errorf("appId不匹配")
|
||||||
|
}
|
||||||
|
if req.Headers.BizMethod != notifyBizMethod {
|
||||||
|
return fmt.Errorf("业务方法不匹配")
|
||||||
|
}
|
||||||
encodedHash := utils.Sha(req.Headers.Version, config.Config.AppId, req.Headers.BizMethod, req.GetReId(), string(req.ToJson()))
|
encodedHash := utils.Sha(req.Headers.Version, config.Config.AppId, req.Headers.BizMethod, req.GetReId(), string(req.ToJson()))
|
||||||
lowerStr := strings.ToLower(encodedHash)
|
lowerStr := strings.ToLower(encodedHash)
|
||||||
if utils.Verify(lowerStr, req.Headers.Sign, utils.FormatPEMPrivateKey(config.Extra.RsaNpk)) {
|
if utils.Verify(lowerStr, req.Headers.Sign, utils.FormatPEMPrivateKey(config.Extra.RsaNpk)) {
|
||||||
|
|
Loading…
Reference in New Issue