HarmonyOS鸿蒙Next中微信opensdk调用微信客服报错第三方应用信息校验失败,identifier错误

HarmonyOS鸿蒙Next中微信opensdk调用微信客服报错第三方应用信息校验失败,identifier错误 鸿蒙使用 微信opensdk1.0.15 调用微信客服功能, 参数都设置的没问题 为什么 调到微信后提示 第三方应用验证失败 第三方应用信息校验失败,identifier错误 , 不会是只能正式包才可以吧

7 回复

【解决方案】

开发者您好,可以参照以下步骤进行排查:

  1. 检查应用的appIdentifier与微信开放平台填入的identifier是否能对应上。 应用可以通过bundleManager.getBundleInfoForSelf获取bundleInfo。样例代码如下,其中data的类型为bundleInfo,在bundleInfo中的signatureInfo.appIdentifier即为微信开放平台填入的identifier。

    import { bundleManager } from '@kit.AbilityKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    import { hilog } from '@kit.PerformanceAnalysisKit';
    
    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
    
    try {
      bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
        hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
      }).catch((err: BusinessError) => {
        hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
      });
    } catch (err) {
      let message = (err as BusinessError).message;
      hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
    }
    
  2. 检查应用在微信开放平台申请的AppID,与对接微信的代码中的“APP_ID”是否一致。

    // WXApi是第三方app和微信通信的openApi接口,其实例通过WXAPIFactory获取,需要传入应用在微信开放平台申请的AppID
    export const WXApi = wxopensdk.WXAPIFactory.createWXAPI(APP_ID)
    
  3. 请勿使用IDE自动签名。自动签名场景下,证书不固定,会造成获取到的signatureInfo里的appIdentifier发生变化,从而与微信开发平台中登记的identifier不一致,需要使用手动签名方式。

  4. 使用真机,不要使用模拟器。

更多关于HarmonyOS鸿蒙Next中微信opensdk调用微信客服报错第三方应用信息校验失败,identifier错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


背景知识:

  • identifier不一致
    • 需确保微信开放平台配置的 identifier 与代码中传递的 appIdentifier 完全一致(包括大小写、特殊字符)。
    • 在微信开放平台中,进入「移动应用-开发配置-平台信息」检查HarmonyOS应用的 Bundle ID 和 identifier 是否正确填写。
  • 签名验证失败
    • 微信要求应用签名必须与开放平台配置的签名匹配。若测试阶段使用调试签名,需在微信平台注册调试签名(申请新的测试移动应用账号)。
    • 正式包问题:如果仅正式签名在微信平台注册,则调试包无法通过校验。
  • AppID错误
    • 检查代码中的 APP_ID 是否为微信开放平台创建的移动应用AppID(非小程序或网页应用ID)。

问题解决:

  • 检查微信平台配置
    • 登录微信开放平台,进入移动应用的「开发配置」页面,确认以下信息:
    • Bundle ID:与鸿蒙应用的 bundleName 一致
    • identifier:与代码中调用微信API时传递的 appIdentifier 参数完全一致
    • 应用签名:通过微信提供的签名生成工具获取当前APK的签名(或直接提交正式签名)
  • 生成正确的签名文件
    • 若需调试,建议在微信开放平台新注册一个测试用移动应用,配置调试包签名(.p12或.jks文件生成的MD5值)。
    • 若为正式环境,直接使用发布签名文件。
  • 代码参数核对
// 示例代码段需确保以下参数正确:
const params = {
  appId: '微信开放平台分配的AppID', // 必须为移动应用AppID
  appIdentifier: '与微信平台配置完全一致的identifier' // 大小写敏感
};

微信开放平台,是否配置了鸿蒙的信息呢;不配置就会出错

cke_715.png

配置了 APPID ID 和 客服url 还有 企业号ID 都没问题确认好几次了。

我之前是自动签名的问题,导致报错【第三方应用信息校验失败】,报错对照下微信文档https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/ohos.html

在HarmonyOS Next中,微信OpenSDK调用微信客服报错“第三方应用信息校验失败,identifier错误”,通常是由于应用签名或包名配置不匹配导致的。请检查在微信开放平台注册的应用信息,确保包名(Bundle Name)和签名(SHA-1或SHA-256)与鸿蒙应用的实际配置完全一致。鸿蒙应用的签名信息需在AppGallery Connect中查看并正确配置到微信开放平台。

在HarmonyOS Next中调用微信OpenSDK的客服功能时,出现“第三方应用信息校验失败,identifier错误”的报错,通常与应用的签名和包名配置有关,不一定是正式包才能调用。以下是排查重点:

  1. 检查微信开放平台配置:确保在微信开放平台登记的HarmonyOS应用包名(Bundle Name)与项目app.json5中的bundleName字段完全一致,包括大小写。这是最常见的错误来源。

  2. 核对应用签名:微信OpenSDK通过应用签名来校验身份。请确保:

    • 调试阶段:使用调试证书(如openharmony.cer)生成的签名,在微信开放平台配置该调试签名。HarmonyOS应用的签名可通过命令行工具(如keytool)或IDE的签名信息查看。
    • 发布阶段:必须替换为正式签名,并在微信开放平台更新为正式签名。
    • 签名通常以MD5形式提交(去冒号、小写),请确认平台配置的签名与当前打包使用的签名匹配。
  3. 确认SDK初始化:在调用客服功能前,需正确初始化微信OpenSDK,并传入从微信开放平台获取的AppID。确保AppID与应用配置对应。

  4. HarmonyOS Next适配:由于HarmonyOS Next不再兼容Android生态,需确认使用的微信OpenSDK是否为HarmonyOS专用版本(如针对HarmonyOS API开发),并检查其文档是否有特殊配置要求。

建议按以上顺序逐步核对,尤其是包名和签名。如果问题仍存在,可尝试在微信开放平台重新配置信息并等待一段时间生效。

回到顶部