HarmonyOS鸿蒙Next支付服务数据类型,这个bodySign是否需要参与headerSign的签名

HarmonyOS鸿蒙Next支付服务数据类型,这个bodySign是否需要参与headerSign的签名 【问题描述】:鸿蒙支付服务数据类型,这个bodySign 是否需要参与 headerSign的签名?

【问题现象】:这个签名规则写的是排除所有的sign字段,但是这个headerSign 上面写的是 除headerSign外 所有字段, 我想问一下,这个bodySign 是否需要参与 headerSign的签名。

cke_2069.png cke_3156.png

相关链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/payment-model#paymercauth

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/payment-rest-overview#签名规则

【版本信息】:不涉及

【复现代码】:不涉及

【尝试解决方案】:暂无


更多关于HarmonyOS鸿蒙Next支付服务数据类型,这个bodySign是否需要参与headerSign的签名的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

更多关于HarmonyOS鸿蒙Next支付服务数据类型,这个bodySign是否需要参与headerSign的签名的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


坐等大佬回复。

bodySign不参与headerSign的签名。在HarmonyOS支付服务中,headerSign仅对HTTP请求头中的特定字段进行签名计算,用于验证请求头的完整性和来源。bodySign是请求体数据的签名,用于验证请求体数据的完整性。两者是独立计算和验证的。

根据HarmonyOS支付服务的官方文档和签名规则,bodySign不需要参与headerSign的签名计算。

具体分析如下:

  1. 签名规则的核心原则:文档明确指出,签名计算时需排除所有名为“sign”的字段。这是总的指导原则。

  2. headerSign签名的具体说明:在headerSign的生成描述中,其规则是“headerSign外所有字段”。这里的“所有字段”指的是HTTP请求Header部分的所有字段(不包括headerSign本身)。bodySign是请求Body中的一个字段,不属于Header部分。

  3. 字段的归属与作用域

    • headerSign:位于HTTP Header中,其签名对象是Header部分的字段(除自身外)。
    • bodySign:位于HTTP Body中,是Body数据的签名值。
    • 两者作用域清晰分离。计算headerSign时,只需关注Header内的字段,Body内的字段(包括bodySign)不参与此次计算。

结论:在生成headerSign时,应严格按照其定义,仅对HTTP Header中(除headerSign字段外)的字段进行签名。bodySign字段属于请求体,不应包含在headerSign的签名计算中。这符合文档中“排除所有sign字段”以及按作用域分别签名的设计逻辑。

回到顶部