安卓 微信SDK的快捷使用

一、工程引入工具包准备

下载项目,可以在APP项目的libs文件下找到wxlibrary.aar文件(已编译为最新版),引入自己的工程
引用时需要在android标签下加入,此处设置libs路径需要根据项目结构确定位置

android {
     repositories {
        flatDir {
            dirs 'libs'
        }
    }
    ...
}


引入微信工具包及微信SDK
 

dependencies {
   implementation(name: 'wxlibrary', ext: 'aar')
   implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
   ...
}

二、工具包初始准备工作

工程继承WxApplication 或者 application 的 onCreate 下使用,继承方式必须重写获取 APPkey 的方法, AppSecret  根据需要重写。
   isCheckSignature() 与  isNowRegister()  默认即可 

 WxApiUtil.getInstance().init(getApplicationContext(), "appId", "secret", false, true);

工程添加相关的微信回调activity(只需要继承即可,无需书写任何代码逻辑),如

  1. 登录和分享
    public class WXEntryActivity extends BaseWXEntryActivity {
    }

    2. 支付
    public class WXPayEntryActivity extends BaseWXPayEntryActivity {
    }



需要在manifest文件下声明该activity,注意:包名一定要对应微信后台设置的包名,如果不一样就新建包名分支,然后创建该activity。
 

 目录结构为(文件所在包位置和名称都不能改变):
        1. 登录和分享: 包名.wxapi.WXEntryActivity
        

        2. 支付:包名.wxapi.WXPayEntryActivity
        

三、登录、分享和支付的使用
 

1. 登录使用

WxLoginUtil.logIn(new LoginEntryCallBack() {

            @Override
            public void succeed(String s) {
                //登录过程回调成功   s为微信返回的code
                //如果需要在app获取openID,则在此处使用s(code)向微信服务器请求获取openID。
                //使用WxApiUtil.getInstance().getAppKey()和WxApiUtil.getInstance().getAppSecret()获取微信的必要参数
            }

            @Override
            public void wxNoInstalled() {
                //微信客户端未安装
            }

            @Override
            public void userCancle() {
                //用户取消
            }

            @Override
            public void faild(int i) {
                //其他类型错误, i为微信返回的错误码
            }
        });


2. 分享使用,注意由于微信分享变更,分享时只要唤起微信客户端,无论是否真正分享,都会返回成功

WxShareUtil.shareTextMessage("内容", "标题", "描述", ShareType.WXSceneTimeline, new ShareEntryCallBack() {
            @Override
            public void succeed() {
                //分享过程回调成功
            }

            @Override
            public void wxNoInstalled() {
                //微信客户端未安装
            }

            @Override
            public void userCancle() {
                //用户取消,由于微信调整,用户取消状态不会触发
            }

            @Override
            public void faild(int i) {
                //其他类型错误, i为微信返回的错误码
            }
        });


3. 支付使用

        // req.appId = json.getString("appid");
        // req.partnerId = json.getString("partnerid");
        // req.prepayId = json.getString("prepayid");
        // req.nonceStr = json.getString("noncestr");
        // req.timeStamp = json.getString("timestamp");
        // req.packageValue = json.getString("package");
        // req.sign = json.getString("sign");
        // 此json文本需要包含以上所需字段,或者使用实体方式,不列举
        WxPayUtil.payWeChat("json文本", new PayCallBack() {
            @Override
            public void succeed() {
                //sdk支付成功,向微信服务器查询下具体结果吧
            }

            @Override
            public void wxNoInstalled() {
                //微信客户端未安装
            }

            @Override
            public void userCancle() {
                //用户取消
            }

            @Override
            public void faild(int i) {
                //其他类型错误, i为微信返回的错误码
            }
        });

四、测试说明

由于微信需要在后台配置签名信息,而测试时不能修改一次打包一次进行测试,所以配置项目的签名信息即可在debug模式下使用正式版签名信息。可在项目配置对话框内设置,不贴出

android {
    signingConfigs {
        release {
            storeFile file('key文件位置,可写相对位置。')
            storePassword 'key文件密码'
            keyAlias = '打包别名'
            keyPassword '别名密码'
        }
    }
    ...
    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }

}

一般的对微信登录、分享和支付的使用此工具已基本满足

最后附上:项目地址

 

你可能感兴趣的:(Android,安卓,Android,微信支付,微信分享)