微信分享相关:报错“微信:包名不对,请检查包名是否与开放平台填写一致”

背景:应用或多或少会接入微信分享的功能。但是由于某些原因,自己配置的应用信息与开放平台的信息一致,但还是会报错:“包名不对,请检查包名是否与开放平台填写一致”,接下来就用两个实验来验证,并找到相关的解决办法。

(查看如何实现微信分享可参考上篇博文:android实现微信分享功能

实验

实验一
步骤:

  • 微信正常分享原始签名的应用(使微信缓存一些数据)
  • 使用更换签名的app进行分享,查看是否成功
    结果:报错
    • 微信:签名不对,请检查签名是否与开放平台填写的一致
    • app:-6分享失败
  • 分析原因
    签名变化了,微信在进行分享的时候会检测签名是否变化,若变化则分享失败

实验二
步骤

  • 根据实验一,更新微信开放平台的签名,进行分享(这里,微信缓存了原始app的一些信息)
    结果

    • 分享失败(但经过十几次分享后,分享成功)
    • 分享失败,清理微信缓存,则立即分享成功
  • 分析原因

    • 多次分享失败(或者微信每多少次分享后会自动检测签名),检测开放平台与本地缓存的签名信息是否一致,不一致则更新。进而导致分享成功
    • 清理微信本地的缓存,保证签名一致,进而导致分享成功

结论

每次使用微信分享时,微信都会对应用的签名信息进行检查,信息一致才可以进行分享。
(而且推测:微信为节省内存,会把相关的签名信息进行缓存。但为了保证刷新缓存与开放平台的签名一致,会有一个机制对缓存进行更新)

  • 使用微信分享时,不要轻易更换签名信息!!!

  • 若签名信息有变化

    只要保证签名等信息与微信开放平台的信息一致,则分享必能成功。

    倘若更新了签名,而且也同步到开放平台,由于微信本地缓存了数据,那么

    • 用户多分享几次则会刷新微信的缓存。。【可取,但必须保证用户安装的app的签名与平台的签名一致,而且用户也需要耐心】
    • 或者用户直接清理微信缓存。【虽也可以分享成功,但不可取】

    签名信息不一致必然导致分享失败

    • 若用户安装的是新签名的应用,开放平台没有更新签名,那么用户分享必然失败
    • 若用户安装的是旧签名的应用,开放平台是新的签名,那么用户分享必然失败
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值