一、前提:

由于工作需要需接入微信分享但是通过微信官方文档嵌入完成后发现微信官方SDK依赖库('com.tencent.mm.opensdk:wechat-sdk-android:+')统一包含了分享、登录、支付等功能及代码,而且也没有提供不包含支付的依赖库。由于第三方渠道不允许包涵其它支付插件和相关代码明显微信官方的依赖库不符合规则所以需要解决方案处理这个问题,考虑了下解决方案有以下几种:

1、旧版ShareSDK内部是通过调用微信接口协议实现的微信分享功能不包含微信官方API所以可以把ShareSDK的接口包一层来实现想要的功能。

2、反编译微信官方SDK资源删除支付相关代码。

以上两种方法因为最初游戏就是用的ShareSDK实现的分享相关功能无疑这种方法是比较简单且靠谱的但是感觉这样做意义不大(何不干脆继续沿用老版本ShareSDK)所以选用了第二种方法,以下是我操作流程;

二、详细操作流程

2.1、获取微信官方SDK jar包进行反编译

操作思路:首先反编译微信官方SDKjar包资源为.java文件全局搜索pay关键字,然后再次反编译成.smali文件参照对应.java搜索涵盖pay类及方法进行代码删除。

(1)、在androidStudio中找到对应添加微信官方SDK依赖库下载下来的jar包资源 (对应微信SDK删除支付模块资源中的wechat-sdk-android-without-mta-6.8.0.jar文件)

(2)、通过jd-gui工具打开微信官方SDKjar包资源以压缩包形式导出.java文件

(3)、通过Android逆向助手反编译微信官方SDKjar为.dex文件后再次反编译.dex文件为.smali;在进行反编译微信官方SDKjar为.dex这个步骤的时候一直报错试了很多方法编译不过去不知道是APKTool的问题还是微信官方SDKjar做了相关限制,无奈只能探索其它方式。

2.2、androidStudio项目获取添加微信官方依赖库后编译生成的.dex文件进行反编译

由于直接反编译微信官方SDKjar为.dex行不通所以想到能不能直接找到androidStudio工程下编译生成的.dex文件最终在(app/build/intermediates/dex/debug/out/)文件下找到了(对应微信SDK删除支付模块资源中的project_wechat-6.8.0classes.dex)还是之前逆向思路(反编译为.java文件全局搜索pay关键字,然后再次反编译成.smali文件参照对应.java搜索涵盖pay类及方法进行代码删除)

(1)、右击project_wechat-6.8.0classes.dex通过APKDB工具选择查看源码打开—>选择全部保存导出.java文件并且删除非微信方SDK外其它多余资源(对应微信SDK删除支付模块资源中project_wechat-6.8.0classes_java文件)

(2)、选中project_wechat-6.8.0classes.dex通过APKDB工具选择使用APKDB编译,反编译为.smali文件并且删除非微信方SDK外其它多余资源(对应微信SDK删除支付模块资源中project_wechat-6.8.0classes_smali文件)

(3)、打开导出的.java文件全局搜索pay关键字,参照.java文件删除更改对应搜索到的.smali下相关类和对应代码,在操作过程中发现这种方式太繁琐而且看不懂smail语言经常会有改完后回编译jar包报错的问题所以想到能不能直接改.java文件然后导出jar包,所以先暂停了该步骤的操作延伸了以下处理方式;

2.3、更改反编译生成的project_wechat-6.8.0classes_java中代码并导出jar包

(1)、Eclipse下新建测试工程并且复制project_wechat-6.8.0classes_java下资源代码到工程src目录下如下图:

(2)、全局搜索pay字段然后删除对应类和代码—>修改报错代码,如下图:

(3)、由于一些类之前经过混淆报错不能有效修改后来发现这几个类耦合性不强并且都在同一个包名下所以这几个同包下的类特殊处理不参与jar包导出,我们先把其它改好的导出jar包(对应微信SDK删除支付模块资源中Wechat_DeletePay0.jar文件)如下图;

(4)、打开project_wechat-6.8.0classes_smali文件删除本文档2.3.3中除未参与jar包编译资源外的其它所有资源,然后右击删除完成后的project_wechat-6.8.0classes_smali文件夹通过APKDB工具选择使用APKDB编译 回编译为.dex文件,(图1)(对应微信SDK删除支付模块资源中project_wechat-6.8.0classes_classes1.dex文件),然后通过Android逆向助手工具转为jar文件(图2)(对应微信SDK删除支付模块资源中Wechat_DeletePay1.jar文件)

(5)、最后合并Wechat_DeletePay0.jar和Wechat_DeletePay1.jar为一个jar包,具体jar包合并方法这里就不写了详情可自行百度(不合并也可以),至此删除微信SDK支付相关代码所有操作流程完成,最终生成的jar包在Demo下自测未发现问题。

三、资源下载地址

微信SDK删除支付模块资源.zip-Android文档类资源-CSDN下载https://download.csdn.net/download/zhao331863874/72331264

微信SDK删除支付模块所需工具.zip-Android文档类资源-CSDN下载https://download.csdn.net/download/zhao331863874/72337990四、微信SDK删除支付模块资源介绍

1、微信SDK删除支付模块流程.docx

当前操作流程文档

2、wechat-sdk-android-without-mta-6.8.0.jar

微信官方SDK jar包

3、project_wechat-6.8.0classes.dex

androidStudio项目下获取的添加微信官方依赖库后编译生成的.dex

4、project_wechat-6.8.0classes_classes.dex

添加微信官方依赖库后编译生成的.dex精简后的资源

5、project_wechat-6.8.0classes_java

反编译生成的java文件

6、project_wechat-6.8.0classes_smali

反编译生成的smali文件

7、Wechat_DeletePay0.jar

java文件去掉支付代码后导出的.jar

8、project_wechat-6.8.0classes_classes1.dex

java文件未参与jar包编译smali文件生成的.dex文件

9、Wechat_DeletePay1.jar

java文件未参与jar包编译smali文件生成的.jar文件

10、Wechat_DeletePay.jar

删除微信SDK支付模块最终jar包

微信SDK删除支付模块流程相关推荐

  1. Magento微信跨境支付模块V2.1发布

    2019独角兽企业重金招聘Python工程师标准>>> 关于微信跨境支付(WeChat Cross-border Payment) 微信跨境支付的核心功能是实现"人民币收款 ...

  2. 微信开发-微信分享和支付模块代码记录

    文章目录 微信H5开发[分享模块] 写在前面 准备工作 微信后台配置 获取配置微信环境的参数 引入weixin-js-sdk 分享配置源码 启动以后日志显示OK即可 注意事项 微信H5开发支付模块 需 ...

  3. 微信公众号支付对接流程

    一.首先申请公众号,认证,开通支付功能(具体配置参照API) 二.登录商户平台进行开发设置(具体配置参照API) 三.具体开发流程 首先,官方给出的SDK和demo和一些具体的API文档看起来比较麻烦 ...

  4. php 公众号微信支付流程,微信公众号支付完整流程案例

    简介 微信公众号支付,顾名思义就是必须在微信中实现支付,并且需要公众号配合. 教程 由于我们使用的是第三方封装好的接口,这里省去了我们自己配置公众号.为什么用第三方?因为个人没有申请权限. 交互细节: ...

  5. 公众号支付成功后执行ajax,真香,微信公众号支付完整流程案例

    /** * 获取授权链接,首先调用此方法 * @return */ @GetMapping(value= "getOauthUrl") public void getOauthUr ...

  6. java微信无感支付怎么开通_微信无感支付开通流程,要怎么停车

    微信无感支付,根据不同的应用场景会有所不同,高速通行与其他应用场景的停车缴费,所开通的入口会有所不一样,这里以高速停车,和近日深圳机场停车场为例来说明. 微信"无感支付"高速通行开 ...

  7. 支付宝、微信Android APP支付接入流程

    支付类型: 一次性支付 自动续费(支付宝周期扣款.微信委托扣款):1.支付并签约 2.先签约后扣费 注:微信委托扣款中先签约后扣费:自动续费.授权扣款.免密支付 支付宝 支付流程中各端交互逻辑 支付流 ...

  8. 微信sdk服务器支付文档,微信支付-普通下单开发者文档

    3.2. API接入(含示例代码) 本章节展示了如何使用微信支付服务端 SDK 快速接入小程序支付产品,完成与微信支付对接的部分. 注意: 文档中的代码示例是用来阐述 API 基本使用方法,代码中的示 ...

  9. 微信公众号支付完整流程

    一.微信支付相关文档 jsapi支付下单:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml jsapi支付场景:http ...

  10. 微信小程序支付完整流程

    1.注册微信支付商户号(由上级或法人注册) 注册链接:https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal#non ...

最新文章

  1. java保留两位小数_java使double保留两位小数的多方法 java保留两位小数
  2. 广东海洋大学计算机科学与技术排名,最新排名!广东高校22个学科位居全球前50位...
  3. 软件测试 图覆盖,软件测试(四)——图覆盖
  4. 【已解决】可以访问Tomcat下webapp中的文件目录(间接实现下载功能)
  5. 石锤!今年Python要过苦日子了? 程序员:我疯了!
  6. git 原理详解及实用指南_如何编写良好的提交消息:实用的Git指南
  7. libuv 网络库设计概览译
  8. 伺服电机常用参数设置_安川伺服电机参数基本调整..doc
  9. sql between 效率高吗_整个SQL语句的执行效率都靠它了...
  10. DeepStream参数配置之sink
  11. python 计算循环次数,05.Python循环
  12. npm中强制关闭node.js
  13. 微信小程序云开发教程-WXML入门-常用组件和属性
  14. matlab数据存成脚本,matlab的excel的读和写(生成脚本m文件)
  15. mac下charles使用教程
  16. u深度u盘制作与装系统教程
  17. 计算机系统时间在哪改,win10系统日期时间在哪里修改?win10修改电脑时间的方法...
  18. 腾达和小云无线路由中继(WISP)解决
  19. 架构思维成长系列教程
  20. 《降龙之剑》刷马坐标 BOSS坐标,鉴定出好马的时间段

热门文章

  1. 小组取什么名字好_给小组取个好名字
  2. FCP-报表交付工程师考试经验
  3. 帕累托最优和纳什均衡例子
  4. chart.js使用学习——折线图(2:常用属性设置)
  5. Coursera | 免费上Coursera-助学金申请流程
  6. mysql中将大写日期转为小写日期
  7. Servlet共享数据域cookie、session ;监听器;过滤器
  8. java_求1到n英寸换算厘米 (右对齐,保留两位小数)
  9. pom通过profile设置打包运行环境
  10. 计算机中文输入法教案,智能ABC输入法教案