微信客服接口对接-签名验签-微信客服GET请求回调URL验证解析返回数据-【唯一客服】...

文章介绍了在微信客服接口对接过程中,如何配置回调URL并使用官方XML版SDK进行加密参数的验证。通过创建KefuWework结构体和调用CheckSign方法,实现了签名验证功能。测试用例显示了验证过程,并展示了成功的签名验证结果。

在做微信客服的接口对接时,第一步就是在微信客服后台配置自己的回调URL

微信客服会往URL上get请求数据,要求把GET中的加密参数解析出来,并且原样输出,才能验证成功

下面就是使用官方的xml 版sdk 实现这个验证的类库,与测试用例

package wechat_kf_sdk



// 创建微信客服API的封装结构体实例
func NewKefuWework(corpid string, corpsecret, Token, EncodingAESKey string) *KefuWework {
    return &KefuWework{
        corpid:         corpid,
        corpsecret:     corpsecret,
        Token:          Token,
        EncodingAESKey: EncodingAESKey,
    }
}


//验证签名
func (s *KefuWework) CheckSign(signature, timestamp, nonce, echostr string) (string, error) {
    wxcpt := NewWXBizMsgCrypt(s.Token, s.EncodingAESKey, s.corpid, XmlType)
    echoStr, cryptErr := wxcpt.VerifyURL(signature, timestamp, nonce, echostr)
    if cryptErr != nil {
        return "", errors.New(cryptErr.ErrMsg)
    }
    return string(echoStr), nil
}

测试用例

func TestCheckSign(t *testing.T) {
    corpid := "wx5823bf96d3bd56c7"
    corpsecret := "your_corpsecret"

    token := "QDG6eK"
    encodingAeskey := "jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C"
    verifyMsgSign := "5c45ff5e21c57e6ad56bac8758b79b1d9ac89fd3"
    // verifyTimestamp := HttpUtils.ParseUrl("timestamp")
    verifyTimestamp := "1409659589"
    // verifyNonce := HttpUtils.ParseUrl("nonce")
    verifyNonce := "263014780"
    // verifyEchoStr := HttpUtils.ParseUrl("echoStr")
    verifyEchoStr := "P9nAzCzyDtyTWESHep1vC5X9xho/qYX3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp+4RPcs8TgAE7OaBO+FZXvnaqQ=="
    // 创建微信客服API的封装结构体实例
    wxService := NewKefuWework(corpid, corpsecret, token, encodingAeskey)
    res, err := wxService.CheckSign(verifyMsgSign, verifyTimestamp, verifyNonce, verifyEchoStr)
    log.Println(res, err)
}

官方的sdk

package wechat_kf_sdk

import (
    "bytes"
    "crypto/aes"
    "crypto/cipher"
    "crypto/sha1"
    "encoding/base64"
    "encoding/binary"
    "encoding/xml"
    "fmt"
    "math/rand"
    "sort"
    "strings"
)

const letterBytes = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

const (
    ValidateSignatureError in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值