Skip to content

通过简单配置实现umeng的微信、QQ、新浪微博的授权登录和分享功能,外加支付宝和微信支付功能

Notifications You must be signed in to change notification settings

zhaoyingtao/PayShareProject

Repository files navigation

PayShareProject

暂时通过依赖库集成会报错,项目做参考,就不要集成了

通过简单配置实现umeng的微信、QQ、新浪微博的授权登录和分享功能,外加支付宝和微信支付功能

PayShareProject

Download

关于授权登录和分享这块集成相对配置比较多,需要注意点!

集成方式参考如下:

一、在项目中直接引入
将下面的 x.y.z 更改为上面显示的版本号
compile 'com.bintray.library:payshare:x.y.z'

二、项目中的配置

2.1 在application中初始化各个平台的信息

 PayShareApplication.getInstance()
                .setIsDebug(true)
                .initPayShare(this, "xxxx")
                .registerAppToWeChat(this, "xxxx")
                .setWeixin("xxxx", "xxxx")
                .setQQZone("xxxx", "xxxx")
                .setSinaWeibo("xxxx", "xxxx");

2.2 在项目的build.gradle中添加如下代码(在最外层添加,不要添加到任何标签中)

ext {
    payshareLibs = projectDir.getPath() + "/payshare/libs"
}

2.3 在AndroidManifest.xml中配置(注意修改QQ分享配置的appid为自己申请的)

权限,根据自己项目去除重复的权限,有提示缺少其他权限,添加即可
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  
  <application>
  <!-- 微信分享 -->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent" />
        <activity
            android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent" />
        <!-- QQ分享 -->
        <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" />
                <!-- 修改此处的appid,只替换数字即可 -->
                <data android:scheme="tencent1106674812" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <!--新浪: -->
        <activity
            android:name="com.umeng.socialize.media.WBShareCallBackActivity"
            android:configChanges="keyboardHidden|orientation"
            android:exported="false"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <activity
            android:name="com.sina.weibo.sdk.share.WbShareTransActivity"
            android:launchMode="singleTask"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
  

2.4 将自己的打包签名文件放置在app模块中(和src文件夹同级别),在build.gradle中配置

android {
//修改下面信息umeng分享(签名文件如果不加,不配置,debug模式不能授权和分享)
 signingConfigs {
        debug {
            storeFile file('签名文件名带后缀')//如:'payshare.keystore'
            storePassword "密码"
            keyAlias "别名"
            keyPassword "密码"
        }
    }
 }
 
 repositories {
        flatDir {
        //因为依赖库中使用了使用了libs中的aar和jar文件,所以需要指明要虚调用的libs路径,路径在2.2中已经配置好了
            dirs 'libs', rootProject.ext.payshareLibs
        }
    }

2.5 将项目中的wxapi包整个复制到自己项目包名根路径下,不能放置在其他路径下(这是微信相关必须配置的)

在调用分享的Activity中添加如下代码,不添加与QQ相关分享授权无法监听回调
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);
     UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
  }

2.6 项目的其他配置

在baseActivity中添加如下代码
   @Override
   public void onResume() {
       super.onResume();
       MobclickAgent.onResume(this);
   }

   @Override
   public void onPause() {
       super.onPause();
       MobclickAgent.onPause(this);
   }

三、授权、分享、支付相关调用
授权

  //调用微信授权
  AuthorizedLogin.getInstance().userWeiChatLogin(this);
  //调用QQ授权
  AuthorizedLogin.getInstance().userQQLogin(this);
  //调用微博授权
  AuthorizedLogin.getInstance().useSinaLogin(this);
  //设置授权结果回调监听,AuthorizeLoginListener 剩余的自己处理吧
  AuthorizedLogin.getInstance().setAuthorizedLoginListener(this);

分享

//设置分享数据,这里支持分享链接、纯图片(网络图和bitmap格式)
ShareManager.init(mActivity).setShareData(imgUrl);
//设置分享行为,参数传对应的行为
ShareManager.init(mActivity).shareAction(SHARE_WEIXIN);
//分享结果监听,微信6.7.2以后分享返回结果统一返回都为成功,
ShareManager.init(mActivity).setShareCallBackListener(new ShareListener());
 

支付

//微信支付
PayManager.init(this).goToWeChatPay(this, weChatPayDataObj);

注意weChatPayDataObj格式为如下json数据,字段不要修改,否则无法获取到
      {
        "appid":"xxxxxxxx",
        "noncestr":"xxxxxxxx",
        "package":"Sign=WXPay",
        "partnerid":"xxxxxxxx",
        "prepayid":"xxxxxxxx",
        "sign":"xxxxxxxx",
        "timestamp":"xxxxxxxx"
    }

//支付宝支付,支付宝的相对简单直接是一长串字符串,这里就不示例了
PayManager.init(this).goToAliPay(this, payDataObj);


阿里的支付结果监听
PayManager.init(this).setPaymentListener();

微信的支付监听在项目配置的2.5中的WXPayEntryActivity类中处理

好了,该说的基本都说了,应该没问题了,有问题就在Issues提出来吧

About

通过简单配置实现umeng的微信、QQ、新浪微博的授权登录和分享功能,外加支付宝和微信支付功能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages