HarmonyOS鸿蒙Next中接微信三方登录,可以拉起微信,但是一直显示微信登录失败:由于应用Bundle ID信息校验不通过,无法使用微信登录是什么原因

HarmonyOS鸿蒙Next中接微信三方登录,可以拉起微信,但是一直显示微信登录失败:由于应用Bundle ID信息校验不通过,无法使用微信登录是什么原因 接微信三方登录,可以拉起微信,但是一直显示微信登录失败:由于应用 Bundle ID 信息校验不通过,无法使用微信登录是什么原因;需要怎么解决

cke_242.png


更多关于HarmonyOS鸿蒙Next中接微信三方登录,可以拉起微信,但是一直显示微信登录失败:由于应用Bundle ID信息校验不通过,无法使用微信登录是什么原因的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

【背景知识】

术语名称 微信文档中对术语的称谓 华为文档中对术语的称谓 其他出处 样例 说明
包名 Bundle ID ,点击链接搜索"Bundle ID" 应用包名/bundle name (1)HarmonyOS工程中app.json5中的bundleName (2)AGC的"应用信息"页面的包名 com.application.myapplication Android应用和HarmonyOS应用包名不能重复。在AGC创建应用和初始化HarmonyOS工程时都要手动指定,两者需保持一致。
应用APP ID identifier 签名应用包的signatureInfo里的appIdentifier AGC的"应用信息"页面的APP ID 6917575056321797718 只有运行签名的包的代码才能拿到,格式为数字。Android应用和HarmonyOS应用APP ID不允许重复。
应用在微信开放平台申请的AppID AppID/APP_ID / 微信官方样例代码中的APP_ID wxd5a474****b8fd17 应用在微信开放平台申请到的AppID,见《HarmonyOS微信接入指南》一、操作步骤
签名应用包里的appId / 签名应用包的signatureInfo里的appId / com.example.myschedule_BG2A+X4PdW148X9****z+ISIBSE= 指的是signatureInfo内的appId。该appId由两部分组成,前半部分是应用包名,后半部分是签名信息。

其中包名和APP ID可在华为AGC的应用信息页面上看到

【问题定位】 在微信开放平台创建应用,输入Bundle ID和应用APP ID。在微信开放平台创建应用成功后,获取到应用在微信开放平台的AppID

触发微信分享,微信登录等场景时,微信Open SDK获取当前应用包名和appIdentifier,并与微信开放平台上配置的Bundle ID和应用APP ID进行校验。若不匹配,则会报出第三方应用信息校验失败Bundle ID信息校验不通过

应用包名通常靠人工保证一致性,不随证书变化。 若应用使用手动申请的调试证书或发布证书打包,则appIdentifier不会变化,即与AGC一致。 appIdentifier若变化,存在以下可能:

  1. 若使用模拟器运行应用,appIdentifier为空。
  2. 若使用自动签名证书,证书变化则appIdentifier就会变化。

【分析结论】 参考微信官方文档,已给出该问题初步排查指导。正常接入微信SDK时,需要保证:

  1. appIdentifier、Bundle ID和微信公众平台上配置的一致。
  2. 代码中配置的APP_ID和应用在微信开放平台申请的AppID一致。

其中有一个不匹配都会导致校验失败。

【修改建议】

  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.使用真机,不要使用模拟器。

【常见FAQ】 Q:运行了签名的包,signatureInfo为空。自动签名,调试证书签名,发布证书签名都试过,现象一致,signatureInfo都为空。 A:参考本文【修改建议】第1条中的代码,确保bundleFlags赋值正确。

开发者您好,请先按上述步骤排查,如仍有问题,为了更快解决您的问题,尽量补全以下信息:

1.问题现象(如:异常截图、问题背景); 

2.版本信息(如:开发工具、手机系统版本信息);

更多关于HarmonyOS鸿蒙Next中接微信三方登录,可以拉起微信,但是一直显示微信登录失败:由于应用Bundle ID信息校验不通过,无法使用微信登录是什么原因的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢老师;问题已解决,

申请微信的key的BundleID和项目是否一致

已排查;一致的,

鸿蒙Next中微信登录失败提示"Bundle ID校验不通过"的主要原因是应用配置的Bundle ID与微信开放平台注册信息不匹配。需检查以下配置:在AppGallery Connect中查看应用的Bundle ID,确保与微信开放平台填写的包名完全一致,包括大小写。同时确认在微信开放平台正确配置了鸿蒙应用签名。若修改过应用包名或签名,需同步更新微信开放平台的对应信息。

在HarmonyOS Next中遇到微信登录失败并提示“Bundle ID信息校验不通过”,通常是由于微信开放平台的应用配置与HarmonyOS应用的实际信息不匹配导致的。以下是可能的原因及解决方法:

  1. 检查Bundle ID配置

    • 确保在微信开放平台注册应用时填写的Bundle ID与HarmonyOS应用的实际Bundle ID完全一致。Bundle ID需严格匹配,包括大小写和格式(例如:com.example.app)。
    • 在HarmonyOS项目中,Bundle ID可在AppScope > app.json5文件的bundleName字段中查看。
  2. 验证应用签名

    • 微信登录需要应用签名信息。在微信开放平台配置应用时,需填写正确的签名(如MD5或SHA值)。HarmonyOS应用签名可通过调试或发布证书生成,确保开放平台填写的签名与当前构建版本一致。
    • 若签名不一致,重新生成并更新到微信开放平台。
  3. 检查开放平台配置

    • 登录微信开放平台,确认应用状态为“已通过”审核,且“微信登录”权限已开启。
    • 确保包名(Bundle ID)和签名在开放平台中填写无误,尤其注意避免多余空格或字符。
  4. HarmonyOS配置验证

    • module.json5文件中,检查abilitiesuri权限配置是否正确,需允许微信的Scheme调用。
    • 确认应用已正确集成微信SDK,且初始化时使用的AppId与开放平台注册的应用对应。
  5. 网络与权限问题

    • 确保设备网络正常,且应用已获取必要的网络权限(如在module.json5中声明ohos.permission.INTERNET)。
    • 检查微信版本是否支持登录功能,过低版本可能导致兼容性问题。

通过以上步骤排查后,重新编译并测试登录流程。若问题仍存在,建议核对微信开放平台文档中的HarmonyOS集成指南,确保全流程符合规范。

回到顶部