切换主体
This commit is contained in:
parent
cf9ecc4486
commit
d5460e9415
|
|
@ -66,14 +66,24 @@ func (w *BankMultiActivityImpl) Notify(ctx context.Context, mchId string, header
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
decodeBodyStr, err := t.Notify(ctx, headers, respBody)
|
body, decodeBodyStr, err := t.Notify(ctx, headers, respBody)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var plainText bo.PlainText
|
||||||
if err = json.Unmarshal([]byte(decodeBodyStr), &response); err != nil {
|
if err = json.Unmarshal([]byte(decodeBodyStr), &response); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return &bo.WechatVoucherNotifyBo{
|
||||||
|
ID: body.Id,
|
||||||
|
CreateTime: body.CreateTime,
|
||||||
|
ResourceType: body.ResourceType,
|
||||||
|
EventType: body.EventType,
|
||||||
|
Summary: body.Summary,
|
||||||
|
//OriginalType: body.OriginalType,
|
||||||
|
//AssociatedData: body.AssociatedData,
|
||||||
|
PlainText: plainText,
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,12 +63,12 @@ func (srv *Marketing) Query(appId, openId, couponId string) (response *SendResp,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify .
|
// Notify .
|
||||||
func (srv *Marketing) Notify(_ context.Context, headers *http.Header, respBody []byte) (response string, err error) {
|
func (srv *Marketing) Notify(_ context.Context, headers *http.Header, respBody []byte) (body *utils.WxNotifyBody, response string, err error) {
|
||||||
|
|
||||||
bizStr, err := srv.GetDecodeBody(headers, respBody)
|
wxNotifyBody, bizStr, err := srv.GetDecodeBody(headers, respBody)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
return bizStr, nil
|
return wxNotifyBody, bizStr, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAes(t *testing.T) {
|
||||||
|
|
||||||
|
aesUtil, err := NewAesUtil("d9af70585b18ae206d981548c766563f")
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("NewAesUtil() error = %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
gotResponse, err := aesUtil.DecryptToString("coupon", "pV96KsdLrSAd", "IfJmKJnBYezruwmk+IA+ENQBn13oWiLR1YnYi3bhYaqYreaXwFcFWbnnQjWfh8RDF36S1v+H1eLj0OtiQVDveLJ9vOcCrtr0M8bkV6NpRN7amqcf02vg+xLcs6UiZDedkN353nMnVVY1SAyuJj0AjKTUJrMhPNtxzdPpL/A3bMVCHrw4sqUItAOsDWVyJ5Kb09BEbdNOesmFkCc+Pcqmr554UHXzjQxzYimMpdbZ8OCovEy6JY1jnbxyiduDI7XBiTvxLr5CzLGlxNk1tIHUSrrDnRzUCpFJzNETgcrF3JWvQVAPThelGnTLN/TT3/pyM7/Kz60YNGaSbJTNKOtxbLXopk72x5hlt45fgrueP+RsnVQWmjULJ0AVEVmPNtlHTYRw7WV0cGwwrF7CCSDifYPed9QZPU1+awVtnGb3If53l109HojJiJB7Y0C/ZPX/vH/KLmtUx+10YKIFOo3vYnxEBV5lv4D5ZqXn4gOOtufVH/URYqgRqnzNFqJV6sW2qP6K9AgBhe/BO4AoeDDHG00XP89XFbeHmR2zZ019jBapq92YkvDVtQc2oLr9MWPoHJUhkmApwB6AmOK7ldWJ14P/Fws3/zBzCxVSlQsgLoDyBKm461ZnA6k09c+hffhTutLt89HYv+pqA1nukdTGuCWqPqUgx0AsK5i1CngrBQZJwc7+ylpakpOrX8oulyuA3So65hgMuqgl5dgkR0e8nvjjv7dVl0aRkqTZt3VL7BB1xwGqbvO3aTEuqqPrFQKLpnaY5Gz64dgg6huQFOBnZww=")
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("DecryptToString() error = %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Log(gotResponse)
|
||||||
|
}
|
||||||
|
|
@ -576,10 +576,10 @@ func (srv *MchConfig) Verify(request *http.Request) (string, error) {
|
||||||
return EncryptOAEPWithPublicKey(string(respBody), srv.wechatPayPublicKey)
|
return EncryptOAEPWithPublicKey(string(respBody), srv.wechatPayPublicKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (srv *MchConfig) GetDecodeBody(headers *http.Header, respBody []byte) (string, error) {
|
func (srv *MchConfig) GetDecodeBody(headers *http.Header, respBody []byte) (*WxNotifyBody, string, error) {
|
||||||
|
|
||||||
if respBody == nil {
|
if respBody == nil {
|
||||||
return "", fmt.Errorf("request HttpBody is nil")
|
return nil, "", fmt.Errorf("request HttpBody is nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
err := ValidateResponse(
|
err := ValidateResponse(
|
||||||
|
|
@ -589,20 +589,25 @@ func (srv *MchConfig) GetDecodeBody(headers *http.Header, respBody []byte) (stri
|
||||||
respBody,
|
respBody,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
var wxNotifyBody WxNotifyBody
|
var wxNotifyBody WxNotifyBody
|
||||||
if err = json.Unmarshal(respBody, &wxNotifyBody); err != nil {
|
if err = json.Unmarshal(respBody, &wxNotifyBody); err != nil {
|
||||||
return "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
aesUtil, err := NewAesUtil(srv.aesKey)
|
aesUtil, err := NewAesUtil(srv.aesKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
return aesUtil.DecryptToString(wxNotifyBody.Resource.AssociatedData, wxNotifyBody.Resource.Nonce, wxNotifyBody.Resource.Ciphertext)
|
decryptedText, err := aesUtil.DecryptToString(wxNotifyBody.Resource.AssociatedData, wxNotifyBody.Resource.Nonce, wxNotifyBody.Resource.Ciphertext)
|
||||||
|
if err != nil {
|
||||||
|
return nil, "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &wxNotifyBody, decryptedText, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// BuildSortedQueryString 函数接受一个 map,返回按照字段名排序后的 URL 键值对格式字符串
|
// BuildSortedQueryString 函数接受一个 map,返回按照字段名排序后的 URL 键值对格式字符串
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue