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
更多关于HarmonyOS鸿蒙Next中华为支付回调返回的签名算法和校验purchaseToken响应里的签名算法不一致的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,华为支付回调返回的签名算法与purchaseToken响应里的签名算法不一致,可能是由于以下原因:
-
不同接口的签名算法差异:华为支付系统可能在不同的接口中使用了不同的签名算法。请仔细查阅相关API文档,确认每个接口所使用的具体签名算法。
-
版本更新导致的差异:如果系统或SDK进行了更新,签名算法可能发生了变化。请确保使用的是最新版本的SDK和API文档。
-
配置或参数错误:检查你的配置文件和请求参数,确保没有误用或遗漏关键参数。
-
后端处理逻辑问题:确认后端在接收回调时是否正确解析和处理了签名数据。
建议仔细核对相关文档,并通过调试日志确认签名的生成和校验过程,确保一致性。如有疑问,可联系华为技术支持获取进一步帮助。