微信支付寶QQ微博分享登陸支付

Social

微信 微博 支付寶 QQ 【 登陸 、分享炼杖、支付 原生分享】 灭返。獨(dú)立library 調(diào)用方便 詳看文檔


social.png

本Library各包均單獨(dú)使用其中common庫必須依賴,
截止2020-05-31坤邪,

微博使用最新的9.12.0.aar 熙含。

支付寶sdk aar 。QQ339/微信是最新6.6.4艇纺。

銀聯(lián)怎静、QQ、京東 支付后續(xù)添加

主要提供服務(wù): 支付: 微信支付黔衡,支付寶支付蚓聘,銀聯(lián)/qq暫未封裝入 登錄: 支付寶授權(quán),微信授權(quán)盟劫,qq授權(quán)或粮,微博授權(quán) 分享: qq分享,qq空間分享捞高,微博分享氯材,微博故事分享,微信分享硝岗,微信朋友圈分享 系統(tǒng)原生分享 集成方法1:推薦

 implementation 'com.mhy.social:common:1.2'
 implementation 'com.mhy.social:ali:1.2'
 implementation 'com.mhy.social:wx:1.2'
 implementation 'com.mhy.social:wb:1.2'
 implementation 'com.mhy.social:qq:1.2'
 //沒錯 1.2就是懶人版氢哮,sdk均已內(nèi)置 僅依賴本庫即可

集成方法2:

 //如果需要集成微博 、支付寶 根 添加如下
 allprojects {
  maven { url "https://dl.bintray.com/thelasterstar/maven/" }//微博倉庫
  flatDir {
  dirs 'libs'//支付寶aar放在對應(yīng)libs
  }
 }

//主庫必須依賴

 //無論使用本庫任一library都必須依賴此library
 //此庫未依賴任何第三方型檀,僅支持系統(tǒng)分享冗尤、支付寶個人首款碼支付,跳轉(zhuǎn)微信掃一掃頁面 
  implementation 'com.mhy.social:common:1.2.2'

//以下按需依賴

 //支付寶  
  implementation 'com.mhy.social:ali:1.2.2'
  implementation (name: 'alipaySdk-15.7.6-20200521195109', ext: 'aar')

//QQ

  implementation 'com.mhy.social:qq:1.2.2'
  implementation files('libs/open_sdk_r8353806_lite.jar')
 //微信
  implementation 'com.mhy.social:wx:1.2.2'
  implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.6.4'

//微博 不支持x86
implementation 'com.mhy.social:wb:1.2.2'
implementation 'com.sina.weibo.sdk:core:9.12.0:openDefaultRelease@aar'

//////////////////////////////////////////////////////////////////////////////////////  
**AndroidManifest.xml配置**


<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"/>

<activity
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"/>

<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent換成你的appid" />
</intent-filter>
</activity>

**Application配置**

//集成微信
在你包名下 新建wxapi包里面新建類 分享登陸WXEntryActivity 支付WXPayEntryActivity
兩個類按需新建 都建無妨 只需按如下繼承即可,不需要其他代碼
public class WXEntryActivity extends BaseWXActivity {}
public class WXPayEntryActivity extends BaseWXPayEntryActivity{}

 在你的Application里 onCreate()里  【記得別忘AndroidManifest.xml里添加】
 WxSocial.setWeixinId("你的微信appid");
 QqSocial.setAppId("你的QQ appid");
 WbSocial.setWbApp("2045436852",//你的微博Key
  "http://www.sina.com",//你對應(yīng)的授權(quán)回調(diào)
  "email,direct_messages_read,direct_messages_write,"+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
  + "follow_app_official_microblog," + "invitation_write");
  //第三個參數(shù)是在微博開放平臺為應(yīng)用申請的高級權(quán)限

 支付寶從后端返回拼接字符串》調(diào)用的時候傳入

App配置

 **先說接收回調(diào)數(shù)據(jù)*******************************
 因微博和QQ需要onActivityresult()返回數(shù)據(jù) 因此他倆登陸 均使用 AuthApi和ShareApi獲取實(shí)例后在你當(dāng)前Activity/ Fragment 中
 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  //微博和QQ需要
  if (api != null) {
  api.onActivityResult(requestCode, resultCode, data);
  api = null;
  }
  if (spi != null) {
  spi.onActivityResult(requestCode, resultCode, data);
  spi = null;
  }
  super.onActivityResult(requestCode, resultCode, data);
  }
 **然后 所有回調(diào)都從以下3個人接口對應(yīng)出來 只需實(shí)現(xiàn)方法即可** 
  //登陸回調(diào)
  private AuthApi.OnAuthListener onAuthListener = new AuthApi.OnAuthListener() {
  @Override
  public void onComplete(int type, Object user) {
 //這里根據(jù)type使用不同對象 
  switch (type){
  case SocialType.ALIPAY_Auth:
 //                    ali AuthResult
  break;
  case SocialType.QQ_Auth:
 //                    JSONObject data = (JSONObject) user;
 //                    String openID = data.getString("openid");
 //                    String accessToken = data.getString("access_token");
 //                    String expires = data.getString("expires_in");
  break;
  case SocialType.WEIBO_Auth:
 //                    wb(Oauth2AccessToken)user 
  break;
  case SocialType.WEIXIN_Auth:
 //                    wx((WeiXin)user).getCode()
  break;
  }
  Toast.makeText(MainActivity.this, "登錄成功", Toast.LENGTH_SHORT).show();
  }
 ?
  @Override
  public void onError(int type, String error) {
  Toast.makeText(MainActivity.this, "登錄失敗:" + error, Toast.LENGTH_SHORT).show();
  }
 ?
  @Override
  public void onCancel(int type) {
  Toast.makeText(MainActivity.this, "登錄取消", Toast.LENGTH_SHORT).show();
  }
  };
 ?
  //支付回調(diào)
  private PayApi.OnPayListener onPayListener = new PayApi.OnPayListener() {
  @Override
  public void onPayOk() {
  Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_SHORT).show();
  }
 ?
  @Override
  public void onPayFail(String code, String msg) {
  Toast.makeText(MainActivity.this, "支付失斦湍纭:" + msg, Toast.LENGTH_SHORT).show();
  }
  };
  //分享回調(diào)
  private ShareApi.OnShareListener onShareListener = new ShareApi.OnShareListener() {
  @Override
  public void onShareOk(int type) {
  Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_SHORT).show();
  }
 ?
  @Override
  public void onShareFail(int type, String msg) {
  Toast.makeText(MainActivity.this, "分享失敗:" + msg, Toast.LENGTH_SHORT).show();
  }
  };
 ?```
  **再說使用*******************************

//微信分享
findViewById(R.id.btn_share_wx).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WxShare mShareApi = new WxShare(MainActivity.this, ShareEntity.TYPE_WX, onShareListener);
mShareApi.doShare(createWXShareEntity(false));
v.startAnimation(shake);
}
});
//微信朋友圈分享
findViewById(R.id.btn_share_wx_circle).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WxShare mShareApi = new WxShare(MainActivity.this, ShareEntity.TYPE_PYQ, onShareListener);
mShareApi.doShare(createWXShareEntity(true));
v.startAnimation(shake);
}
});
//微信登錄
findViewById(R.id.btn_login_wx).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// WxAuth wxAuth=new WxAuth(MainActivity.this, onAuthListener);
// wxAuth.doAuth();
WxAuth authApi = new WxAuth(MainActivity.this, onAuthListener);
authApi.doAuth();
v.startAnimation(shake);
?
}
});
//qq登錄
findViewById(R.id.btn_login_qq).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
QqAuth authApi = new QqAuth(MainActivity.this, onAuthListener);
authApi.doAuth(false);
v.startAnimation(shake);
api = authApi;//onActivityResult()內(nèi)使用
}
});
//原生分享
findViewById(R.id.btn_share_local).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(shake);
ShareUtil shareUtil = new ShareUtil(MainActivity.this);
// shareUtil.shareFile(new File(getExternalFilesDir(null) + "/ccc.JPG"));
shareUtil.shareText("【flutter涼了嗎?】知乎:… https://www.zhihu.com/question/374113031/answer/1253795562?utm_source=com.eg.android.alipaygphone&utm_medium=social&utm_oi=1020568397012209664 (分享自知乎網(wǎng))");
}
});
//長按 打開小程序
findViewById(R.id.btn_mini_qq).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(shake);
QqAuth authApi = new QqAuth(MainActivity.this, onAuthListener);
authApi.doOpenMiniApp("1108108864", "pages/tabBar/index/index", "release");
}
});
//qq分享
findViewById(R.id.btn_share_qq).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
QqShare mShareApi = new QqShare(MainActivity.this, SocialType.QQ_Share, onShareListener);
mShareApi.doShare(QQShareEntity.createImageInfo(getExternalFilesDir(null) + "/aaa.png", "app"));
spi = mShareApi;
v.startAnimation(shake);
}
});
//qq空間分享
findViewById(R.id.btn_share_qq_zone).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<String> imgUrls = new ArrayList<>();
imgUrls.add(getExternalFilesDir(null) + "/aaa.png");
imgUrls.add(getExternalFilesDir(null) + "/bbb.jpg");
QqShare mShareApi = new QqShare(MainActivity.this, SocialType.QQ_ZONE_Share, onShareListener);
mShareApi.doShare(QQShareEntity.createImageTextInfoToQZone("toptitle", "http://www.baidu.com", imgUrls, "summary", "我"));
spi = mShareApi;
v.startAnimation(shake);
}
});
//支付寶登陸
findViewById(R.id.btn_login_ali).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AliAuth authApi = new AliAuth(MainActivity.this, onAuthListener);
authApi.doAuth("");
v.startAnimation(shake);
}
});
//支付寶支付
findViewById(R.id.btn_pay_alipay).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AliPay authApi = new AliPay(MainActivity.this, onPayListener);
authApi.doPay(new AliPayContent(""));
v.startAnimation(shake);
}
});
//微信支付
findViewById(R.id.btn_pay_wx).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
JSONObject jsonObject = new JSONObject("source json data...");
//服務(wù)端獲取
jsonObject = jsonObject.getJSONObject("pay_message");
?
WxPayContent req = new WxPayContent(
jsonObject.getString("appid"),
jsonObject.getString("partnerid"),
jsonObject.getString("prepayid"),
jsonObject.getString("packagestr"),
jsonObject.getString("noncestr"),
jsonObject.getString("timestamp"),
jsonObject.getString("sign"));
PayApi wxApi = new WxPay(MainActivity.this, onPayListener);
wxApi.doPay(req);
v.startAnimation(shake);
} catch (JSONException ignored) {
?
}
}
});
//小程序分享
findViewById(R.id.btn_mini_wx).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(shake);
// WxShare wxShare=new WxShare(MainActivity.this,SocialType.WEIXIN_Share,onShareListener);
// wxShare.doShare(WxShareEntity.createMiniApp( miniAppid, miniPath, webpageUrl, title, desc, imgUrl));
?
WxAuth wxAuth = new WxAuth(MainActivity.this, onAuthListener);
wxAuth.doOpenMiniApp("gh_d43f693ca31f", "", WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE);
}
});
//微博分享
findViewById(R.id.btn_share_weibo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WbShare wbShare = new WbShare(MainActivity.this, SocialType.WEIBO_Share, onShareListener);
wbShare.doShareStory(WbShareEntity.createImageStory(getExternalFilesDir(null) + "/aaa.png"));
spi = wbShare;
v.startAnimation(shake);
}
});
//微博登錄
findViewById(R.id.btn_login_weibo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WbAuth wbAuth = new WbAuth(MainActivity.this, onAuthListener);
wbAuth.doAuth();
api = wbAuth;
v.startAnimation(shake);
}
});

  關(guān)于分享 使用對應(yīng)ShareEntity  的createxxx 方法傳參調(diào)用對應(yīng)分享內(nèi)容包裝W
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裂七,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子仓坞,更是在濱河造成了極大的恐慌背零,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件无埃,死亡現(xiàn)場離奇詭異徙瓶,居然都是意外死亡毛雇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門侦镇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灵疮,“玉大人,你說我怎么就攤上這事壳繁≌鸬罚” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵闹炉,是天一觀的道長伍派。 經(jīng)常有香客問我,道長剩胁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任祥国,我火速辦了婚禮昵观,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舌稀。我一直安慰自己啊犬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布壁查。 她就那樣靜靜地躺著觉至,像睡著了一般。 火紅的嫁衣襯著肌膚如雪睡腿。 梳的紋絲不亂的頭發(fā)上语御,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音席怪,去河邊找鬼应闯。 笑死,一個胖子當(dāng)著我的面吹牛挂捻,可吹牛的內(nèi)容都是我干的碉纺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刻撒,長吁一口氣:“原來是場噩夢啊……” “哼骨田!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起声怔,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤态贤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后醋火,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抵卫,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狮荔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了介粘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殖氏。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖姻采,靈堂內(nèi)的尸體忽然破棺而出雅采,到底是詐尸還是另有隱情,我是刑警寧澤慨亲,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布婚瓜,位于F島的核電站,受9級特大地震影響刑棵,放射性物質(zhì)發(fā)生泄漏巴刻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一蛉签、第九天 我趴在偏房一處隱蔽的房頂上張望胡陪。 院中可真熱鬧,春花似錦碍舍、人聲如沸柠座。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妈经。三九已至,卻和暖如春捧书,著一層夾襖步出監(jiān)牢的瞬間吹泡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工经瓷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荞胡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓了嚎,卻偏偏與公主長得像泪漂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子歪泳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354