HarmonyOS鸿蒙Next中华为支付回调返回的签名算法和校验purchaseToken响应里的签名算法不一致

HarmonyOS鸿蒙Next中华为支付回调返回的签名算法和校验purchaseToken响应里的签名算法不一致 关键词
华为订阅商品,订阅支付验签

问题描述
集成华为应用内支付服务 SDK,配置了服务器回调地址,测试自动续费订阅功能时,发现服务器回调里面的签名算法是 SHA256WithRSA,收到回调后做 订阅型商品的购买 token 校验,响应参数里的签名算法却是 SHA256WithRSA/PSS。

服务器回调:

校验返回的响应参数:

问题解决
我找到华为技术支持(可以提交工单:https://developer.huawei.com/consumer/cn/support/feedback/#/),对方首先和我确认了,我这个应用没有自行配置算法,即支付请求参数 PurchaseIntentReq 里没有传入算法 setSignatureAlgorithm(String signatureAlgorithm),AGC 后台也没有打开算法开关,所以服务器支付回调里返回的是默认算法 SHA256WithRSA。

那么为什么购买 token 校验返回的算法变成了 SHA256WithRSA/PSS 呢?
是因为华为去年在 get 接口的签名信息上加上了新的逻辑:调用 get 接口如果没有带签名算法,那就会用默认的签名算法 SHA256WithRSA/PSS(考虑到这样会更安全)
只有 get 接口是这个情况!

如此解释,疑惑解除,问题解决。


更多关于HarmonyOS鸿蒙Next中华为支付回调返回的签名算法和校验purchaseToken响应里的签名算法不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中华为支付回调返回的签名算法和校验purchaseToken响应里的签名算法不一致的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,华为支付回调返回的签名算法与purchaseToken响应里的签名算法不一致,可能是由于以下原因:

  1. 不同接口的签名算法差异:华为支付系统可能在不同的接口中使用了不同的签名算法。请仔细查阅相关API文档,确认每个接口所使用的具体签名算法。

  2. 版本更新导致的差异:如果系统或SDK进行了更新,签名算法可能发生了变化。请确保使用的是最新版本的SDK和API文档。

  3. 配置或参数错误:检查你的配置文件和请求参数,确保没有误用或遗漏关键参数。

  4. 后端处理逻辑问题:确认后端在接收回调时是否正确解析和处理了签名数据。

建议仔细核对相关文档,并通过调试日志确认签名的生成和校验过程,确保一致性。如有疑问,可联系华为技术支持获取进一步帮助。

回到顶部