签名算法

计算签名

所有请求都需要带上signature字段,以防止数据被篡改,在加入scanforpay后,scanforpay会提供签名key供签名实用。

签名的具体算法为: 对(请求中的request数据+签名key)进行SHA256加密处理。Java签名算法可参考apache commons-codec包中的DigestUtils

请求格式如基本说明所示,计算签名示例如下:

    String req = “{
        \"header\":{
            请求头数据
        },
        \"body\":{
            业务请求数据
        }
    }”
    String signKey = "123456" //实际会由scanforpay提供
    String signature  =  DigestUtils.sha256Hex(req + signKey);

校验签名

收到响应时需要对数据进行验签,对响应中的response数据进行如上述方法的签名计算, 将得到的签名和响应中返回的签名进行对比,如一致则验签正确

响应格式如基本说明所示,对比签名示例如下:

    String resp = “{
        \"header\":{
            请求头数据
        },
        \"body\":{
            业务请求数据
        }
    }”
    String signKey = "123456" //实际会由scanforpay提供
    String signature  =  DigestUtils.sha256Hex(req + signKey);
    //if(signature.equals(response.signature)){
        // 如果计算出的签名和响应里的签名相等,验签成功
    //}

results matching ""

    No results matching ""