WechatIMG26.png
添加仓库地址
maven { url "https://dl.bintray.com/thelasterstar/maven/" } // 微博 aar
maven { url 'http://developer.huawei.com/repo/' } // 华为仓库
maven { url 'https://dl.bintray.com/wenjie/maven' }
根据要集成的第三方库添加依赖
api 'com.enowr.android:Auth:0.0.7'
api 'com.enowr.android:AuthHW:0.0.7'
api 'com.enowr.android:AuthQQ:0.0.7'
api 'com.enowr.android:AuthWB:0.0.7'
api 'com.enowr.android:AuthWX:0.0.7'
api 'com.enowr.android:AuthYL:0.0.7'
api 'com.enowr.android:AuthZFB:0.0.7'
api 'com.enowr.android:AuthOPPO:0.0.7'
Manifest
混淆
# Auth
-keep class com.enowr.** {*;}
# 华为
-ignorewarning
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep class com.huawei.android.hms.agent.**{*;}
# QQ
-keep class com.tencent.open.TDialog$*
-keep class com.tencent.open.TDialog$* {*;}
-keep class com.tencent.open.PKDialog
-keep class com.tencent.open.PKDialog {*;}
-keep class com.tencent.open.PKDialog$*
-keep class com.tencent.open.PKDialog$* {*;}
# 微博
-keep class com.sina.weibo.sdk.** {*;}
# 微信
-keep class com.tencent.mm.opensdk.** {*;}
-keep class com.tencent.wxop.** {*;}
-keep class com.tencent.mm.sdk.** {*;}
# 银联
-keep public class com.unionpay.uppay.net.HttpConnection {public ;}
-keep public class com.unionpay.uppay.net.HttpParameters {public ;}
-keep public class com.unionpay.uppay.model.BankCardInfo {public ;}
-keep public class com.unionpay.uppay.model.PAAInfo {public ;}
-keep public class com.unionpay.uppay.model.ResponseInfo {public ;}
-keep public class com.unionpay.uppay.model.PurchaseInfo {public ;}
-keep public class com.unionpay.uppay.util.DeviceInfo {public ;}
-keep public class com.unionpay.uppay.util.PayEngine {
public ;
native ;
}
-keep public class com.unionpay.utils.UPUtils {native ;}
# 支付宝
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
-keep class com.alipay.sdk.app.H5PayCallback {
;
;
}
-keep class com.alipay.android.phone.mrpc.core.** { *; }
-keep class com.alipay.apmobilesecuritysdk.** { *; }
-keep class com.alipay.mobile.framework.service.annotation.** { *; }
-keep class com.alipay.mobilesecuritysdk.face.** { *; }
-keep class com.alipay.tscenter.biz.rpc.** { *; }
-keep class org.json.alipay.** { *; }
-keep class com.alipay.tscenter.** { *; }
-keep class com.ta.utdid2.** { *;}
-keep class com.ut.device.** { *;}
# SDK 包可能不包含 utdid
-dontwarn com.ta.utdid2.**
-dontwarn com.ut.device.**
# SDK 包可能不包含 securitysdk
-dontwarn com.alipay.mobilesecuritysdk.**
# OPPO
-keep class com.nearme.** {*;}
初始化
Auth.init()
.setHWAppID("")
.setHWKey("")
.setHWMerchantID("")
.setQQAppID("")
.setWXAppID("")
.setWXSecret("")
.setWBAppKey("")
.setWBRedirectUrl("")
.setWBScope("")
.setOPPOAppSecret("secret")
.build();
// 如果使用华为支付功能, 还需要在 MainActivity 里初始化华为
Auth.withHW(context).initHW(activity);
// OPPO 要求使用OPPO 自带的退出功能
Auth.withOPPO(context).exit(activity);
// 使用微信相关功能
// 包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增两个WXPayEntryActivity、WXEntryActivity类,继承自AuthActivity
public void hwLogin() {
Auth.withHW(this)
.loginForceLogin(false) // 当force为false时,错误码为2001、2002时,会再次以参数为ture尝试调用一次
.login(mCallback);
}
public void hwPay() {
Auth.withHW(this)
.payAmount("")
.payApplicationId("")
.payChannel(1)
.payCountry("")
.payCurrency("")
.payExtReserved("")
.payMerchantId("")
.payMerchantName("")
.payProductDesc("")
.payProductName("")
.payPublicKey("")
.payRequestId("")
.payServiceCatalog("")
.paySign("")
.payUrl("")
.payVersion("")
.pay(mCallback);
}
public void hwRouse() {
Auth.withHW(this)
.rouseAmount("")
.rouseApplicationId("")
.rouseChannel(1)
.rouseCountry("")
.rouseCurrency("")
.rouseExtReserved("")
.rouseMerchantId("")
.rouseMerchantName("")
.rouseProductDesc("")
.rouseProductName("")
.rousePublicKey("")
.rouseRequestId("")
.rouseServiceCatalog("")
.rouseSign("")
.rouseUrl("")
.rouseVersion("")
.rouseTradeType("")
.rouse(mCallback);
}
public void oppoPay() {
Auth.withOPPO(this)
.payAmount(1)
.payAttach("attach")
.payOrderId(String.valueOf(System.currentTimeMillis()))
.payProductName("test")
.payProductDesc("test")
.payCallbackUrl("")
.payUseCachedChannel(false)
.pay(mCallback);
}
public void qqLogin() {
Auth.withQQ(this)
.loginQrcode(true)
.login(mCallback);
}
public void qqShareText() {
Auth.withQQ(this)
.shareTextArk("")
.shareTextImage("")
.shareTextName("")
.shareTextQzoneHide(true)
.shareTextSummary("")
.shareTextTargetUrl("")
.shareTextTitle("")
.shareText(mCallback);
}
public void qqShareImage() {
Auth.withQQ(this)
.shareImageArk("")
.shareImagePath("")
.shareImageName("")
.shareImageQzoneHide(true)
.shareImage(mCallback);
}
public void qqShareMusic() {
Auth.withQQ(this)
.shareMusicImageUrl("")
.shareMusicSummary("")
.shareMusicArk("")
.shareMusicName("")
.shareMusicQzoneHide(true)
.shareMusicTargetUrl("")
.shareMusicTitle("")
.shareMusicUrl("")
.shareMusic(mCallback);
}
public void qqShareVideo() {
Auth.withQQ(this)
.shareVideoPath("")
.shareVideoBack("")
.shareVideoImageList(null)
.shareVideoScene("")
.shareVideoSummary("")
.shareVideo(mCallback);
}
public void qqShareApp() {
Auth.withQQ(this)
.shareAppName("")
.shareAppImageUrl("")
.shareAppSummary("")
.shareAppTitle("")
.shareAppArk("")
.shareAppQzoneHide(true)
.shareApp(mCallback);
}
public void qqShareQzone() {
Auth.withQQ(this)
.shareToQzoneImageList(null)
.shareToQzoneSummary("")
.shareToQzoneTargetUrl("")
.shareToQzoneTitle("")
.shareToQzone(mCallback);
}
public void qqShareMood() {
Auth.withQQ(this)
.shareToMoodBack("")
.shareToMoodImageList(null)
.shareToMoodScene("")
.shareToMoodSummary("")
.shareToMoodVideoPath("")
.shareToMood(mCallback);
}
public void wbLogin() {
Auth.withWB(this)
.login(mCallback);
}
public void wbShareText() {
Auth.withWB(this)
.shareTextContent("")
.shareTextSummary("")
.shareTextTitle("")
.shareTextUrl("")
.shareText(mCallback);
}
public void wbShareImage() {
Auth.withWB(this)
.shareImageBitmap(null)
.shareImageContent("")
.shareImage(mCallback);
}
public void wbShareMultiImage() {
Auth.withWB(this)
.shareMultiImageContent("")
.shareMultiImageUriList(null)
.shareMultiImage(mCallback);
}
public void wbShareLink() {
Auth.withWB(this)
.shareLinkContent("")
.shareLinkSummary("")
.shareLinkThumbImage(null)
.shareLinkTitle("")
.shareLinkUrl("")
.shareLink(mCallback);
}
public void wbShareVideo() {
Auth.withWB(this)
.shareVideoPath("")
.shareVideoContent("")
.shareVideoSummary("")
.shareVideoTitle("")
.shareVideo(mCallback);
}
public void wbShareToStory() {
Auth.withWB(this)
.shareToStoryImagePath("")
.shareToStoryVideoPath("")
.shareToStory(mCallback);
}
public void wxLogin() {
Auth.withWX(this)
.login(mCallback);
}
public void wxPay() {
Auth.withWX(this)
.payNonceStr("")
.payPackageValue("")
.payPartnerId("")
.payPrepayId("")
.paySign("")
.payTimestamp("")
.pay(mCallback);
}
public void wxRouse() {
Auth.withWX(this)
.rouseUrl("")
.rouse(mCallback);
}
public void wxShareText() {
Auth.withWX(this)
.shareTextSummary("")
.shareTextContent("")
.shareTextThumbData(null)
.shareTextTitle("")
.shareText(mCallback);
}
public void wxShareImage() {
Auth.withWX(this)
.shareImageBitmap(null)
.shareImageSummary("")
.shareImageThumbData(null)
.shareImageTitle("")
.shareImage(mCallback);
}
public void wxShareLink() {
Auth.withWX(this)
.shareLinkThumbData(null)
.shareLinkSummary("")
.shareLinkTitle("")
.shareLinkUrl("")
.shareLink(mCallback);
}
public void wxShareVideo() {
Auth.withWX(this)
.shareVideoThumbData(null)
.shareVideoSummary("")
.shareVideoLowBandUrl("")
.shareVideoTitle("")
.shareVideoUrl("")
.shareVideo(mCallback);
}
public void wxShareMusic() {
Auth.withWX(this)
.shareMusicThumbData(null)
.shareMusicSummary("")
.shareMusicDataUrl("")
.shareMusicLowBandDataUrl("")
.shareMusicLowBandUrl("")
.shareMusicTitle("")
.shareMusicUrl("")
.shareMusic(mCallback);
}
public void wxShareApp() {
Auth.withWX(this)
.shareAppId("")
.shareAppPath("")
.shareAppSummary("")
.shareAppThumbData(null)
.shareAppTitle("")
.shareAppType(1)
.shareAppUrl("")
.shareAppWithShareTicket(true)
.shareApp(mCallback);
}
public void ylPay() {
Auth.withYL(this)
.payOrderInfo("")
.payIsTest(true)
.pay(mCallback);
}
public void zfbPay() {
Auth.withZFB(this)
.payOrderInfo("")
.payIsShowLoading(true)
.pay(mCallback);
}
public void zfbRouse() {
Auth.withZFB(this)
.rouseUrl("")
.rouse(mCallback);
}
华为
110201:未登陆
110405:登录请求被限制
110404:请求参数缺少appid
110401:请求的应用不存在
110407:应用已经下架
110406:应用没有通过审核
100044:错误的sign
110500:获取用户授权信息失败
110501:获取应用的授权信息失败
110502:设置用户授权失败
110503:获取token失败
110504:系统内部错误
微博
C8998: 签名不一致
8000: 没有安装客户端
8001: 非官方客户端
微信
支付宝
OPPO 为离线文档
华为:Mac 下集成Agent执行脚本文件没反应。
GetHMSAgent_cn.sh 换行符的原因导致在macos下执行无反映,可通过下列命令替换下换行符:
cat GetHMSAgent_cn.sh | tr "^M" "\n" > GetHMSAgent_cn_new.sh
华为:同时引入其他第三方华为支持时(如极光的华为推送插件)
禁用华为依赖传递,由于极光插件全量引入了华为SDK,所以全部禁用所有依赖
implementation ('com.enowr.android:AuthHW:0.0.3'){transitive false}
引入极光的华为插件,配置相关配置即可
implementation 'cn.jiguang.sdk.plugin:huawei:3.3.2'