增加一些vivo的接入代码
This commit is contained in:
parent
8618e42880
commit
2134db34af
@ -9,7 +9,7 @@ android {
|
||||
versionCode 1
|
||||
versionName "1.0.0"
|
||||
ndk {
|
||||
abiFilters 'armeabi-v7a'
|
||||
abiFilters 'armeabi'
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
@ -35,7 +35,7 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(include: '*.jar', dir: 'libs')
|
||||
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
|
||||
implementation(name: 'egret', ext: 'aar')
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.android.volley:volley:1.1.1'
|
||||
|
BIN
app/libs/armeabi/libvivo_account_sdk.so
Normal file
BIN
app/libs/armeabi/libvivo_account_sdk.so
Normal file
Binary file not shown.
BIN
app/libs/msa_mdid_1.0.13.aar
Normal file
BIN
app/libs/msa_mdid_1.0.13.aar
Normal file
Binary file not shown.
BIN
app/libs/vivounionsdk_v4.6.0.1.jar
Normal file
BIN
app/libs/vivounionsdk_v4.6.0.1.jar
Normal file
Binary file not shown.
@ -1,7 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.hnjc.wjtx">
|
||||
|
||||
<!--联运SDK跳转游戏中心-->
|
||||
<uses-permission android:name="vivo.game.permission.OPEN_JUMP_INTENTS"/>
|
||||
<!--联运SDK监听网络状态变化,在支付登录过程中做一些异常处理-->
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
||||
<!--判断游戏是否是在主进程初始化,避免初始化进程错误导致功能不可用-->
|
||||
<uses-permission android:name="android.permission.GET_TASKS"/>
|
||||
<!--获取安装权限-->
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
@ -39,19 +48,30 @@
|
||||
|
||||
</activity>
|
||||
|
||||
<!-- <activity android:name=".MainActivity"-->
|
||||
<!-- android:launchMode="singleTask"-->
|
||||
<!-- android:screenOrientation="portrait"-->
|
||||
<!-- android:windowSoftInputMode="adjustPan|stateAlwaysVisible"-->
|
||||
<!-- android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"-->
|
||||
<!-- android:theme="@android:style/Theme.NoTitleBar.Fullscreen">-->
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
<!-- vivo sdk componets start -->
|
||||
<!--vivo sdk的Activity-->
|
||||
<activity
|
||||
android:name="com.vivo.unionsdk.ui.UnionActivity"
|
||||
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
|
||||
android:theme="@android:style/Theme.Dialog"
|
||||
android:exported="false"
|
||||
tools:ignore="AppLinkUrlError">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
<!-- </activity>-->
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
|
||||
<data
|
||||
android:host="union.vivo.com"
|
||||
android:path="/openjump"
|
||||
android:scheme="vivounion"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<!-- vivo sdk componets end -->
|
||||
<meta-data
|
||||
android:name="vivo_union_sdk"
|
||||
android:value="4.6.0.1"/>
|
||||
</application>
|
||||
|
||||
</manifest>
|
17
app/src/main/assets/supplierconfig.json
Normal file
17
app/src/main/assets/supplierconfig.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"supplier":{
|
||||
"vivo":{
|
||||
"appid":"104485272"
|
||||
},
|
||||
"xiaomi":{
|
||||
|
||||
},
|
||||
"huawei":{
|
||||
|
||||
},
|
||||
"oppo":{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
BIN
app/src/main/assets/vivounionsdk/vivounionapk.vua
Normal file
BIN
app/src/main/assets/vivounionsdk/vivounionapk.vua
Normal file
Binary file not shown.
244
app/src/main/assets/vivounionsdk/vivounionchecklist.xml
Normal file
244
app/src/main/assets/vivounionsdk/vivounionchecklist.xml
Normal file
@ -0,0 +1,244 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- activity可正反向检测,service/provider/broadcast只做反向检测 -->
|
||||
<tests xmlns:android="http://schemas.android.com/apk/res/com.vivo.sdkplugin">
|
||||
|
||||
<!-- 正向 -->
|
||||
<!-- 权限 -->
|
||||
<uses-permission android:name="vivo.game.permission.OPEN_JUMP_INTENTS"/>
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.GET_TASKS"/>
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
||||
|
||||
<!-- APK/SDK:通用activity -->
|
||||
<activity android:configChanges="orientation|keyboardHidden|navigation|screenSize"
|
||||
android:name="com.vivo.unionsdk.ui.UnionActivity"
|
||||
android:theme="@android:style/Theme.Dialog">
|
||||
<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:host="union.vivo.com"
|
||||
android:path="/openjump"
|
||||
android:scheme="vivounion"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<meta-data android:name="vivo_union_sdk"/>
|
||||
|
||||
<!-- 反向 -->
|
||||
<!-- 测试界面 -->
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.TestActivity"/>
|
||||
<!-- aidl service -->
|
||||
<service android:include="false"
|
||||
android:name="com.vivo.plugin.aidl.LoginAccInfoService"/>
|
||||
<!-- 自升级对话框 -->
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.upgradelibrary.upmode.VivoUpgradeActivityDialog"/>
|
||||
<!-- 权限检测对话框 -->
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.unionsdk.ui.PermissionAlertActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.alipay.sdk.auth.AuthActivity"/>
|
||||
|
||||
<!--SDK含有功能时期声明 start-->
|
||||
<!--微信支付回调-->
|
||||
<activity android:include="false"
|
||||
android:name="@_pkg_@.wxapi.WXPayEntryActivity"/>
|
||||
<!--QQ钱包支付回调-->
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.payment.qqpay.VivoQQPayResultActivity"/>
|
||||
<!--银联支付-->
|
||||
<activity android:include="false"
|
||||
android:name="com.unionpay.uppay.PayActivity"/>
|
||||
<!--支付宝支付-->
|
||||
<activity android:include="false"
|
||||
android:name="com.alipay.sdk.app.H5PayActivity"/>
|
||||
<!--SDK含有功能时期声明 end-->
|
||||
|
||||
<!-- 老版本声明 start -->
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.LoginActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.ChangePassWordActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.BindQuestionActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.BindPhoneActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.GameInfoMoreListActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.AccountPersonalCenterActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.AccountAssistWebViewActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.FindpwdVerifyPhoneNumActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.LoginDialogActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.UserFeedBackActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.SetpwdActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.RegisterEmailActiviy"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.RegisterActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.PhoneRegisterCommitActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.RegisterOneKeyActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.VerifyPhoneNumActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.FindPasswordActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.SetPassWordActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.RegisterProtocolActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.CommitUserIdentifyActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.CommitUserContactActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.StrategyDetailActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.SubAccountActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.SubAccountEditActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.SubAccountEditCommitActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.SubAccountAddCommitActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.sdkplugin.activity.VivoUserInfoActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.dealRecord.VivoDealRecordActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.dealRecord.VivoDealRecordDetailActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.PaymentActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.PaymentRechargeActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.SelectMoreChannelActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.TicketActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.PaymentActionActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.CardActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.RechargeChoiceActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.PaySuccActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.JCardActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.DetectPayResultActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.PayContinueActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.RechargeFailActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.PaymentDetailsActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.tenpay.VivoQQPayResultActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbkmobile.iqoo.payment.PaymentActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbkmobile.iqoo.payment.CardActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbkmobile.iqoo.payment.tenpay.VivoQQPayResultActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="@_pkg_@.wxapi.WXSPayEntryActivity"/>
|
||||
|
||||
<service android:include="false"
|
||||
android:name="com.vivo.sdkplugin.accounts.LocalService"/>
|
||||
<service android:include="false"
|
||||
android:name="com.vivo.sdkplugin.accounts.LogWatcherService"/>
|
||||
<service android:include="false"
|
||||
android:name="com.vivo.sdkplugin.service.VivoAccountService"/>
|
||||
<service android:include="false"
|
||||
android:name="com.vivo.assist.AssistService"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.vivo.sdkplugin.accounts.SendMsgReceiver"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.vivo.sdkplugin.accounts.ManageAccountReceiver"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.vivo.sdkplugin.accounts.VivoApkInstallRecevier"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.vivo.sdkplugin.accounts.VivoIThemeChangeRecevier"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.bbkmobile.iqoo.payment.util.ManagePamentReceiver"/>
|
||||
<!-- 老版本声明 end -->
|
||||
|
||||
<!-- 更老版本声明 start -->
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.LoginActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.GameInfoMoreListActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.ChangePassWordActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.BindQuestionActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.BindPhoneActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.AccountPersonalCenterActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.AccountAssistWebViewActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.FindpwdVerifyPhoneNumActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.LoginDialogActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.UserFeedBackActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.SetpwdActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.RegisterEmailActiviy"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.RegisterActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.PhoneRegisterCommitActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.RegisterOneKeyActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.VerifyPhoneNumActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.FindPasswordActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.SetPassWordActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.RegisterProtocolActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.CommitUserIdentifyActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.CommitUserContactActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.StrategyDetailActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.vivo.account.base.activity.SubAccountActivity"/>
|
||||
<activity android:include="false"
|
||||
android:name="com.bbk.payment.weixin.VivoWXPayEntryActivity"/>
|
||||
|
||||
<service android:include="false"
|
||||
android:name="com.vivo.account.base.accounts.LocalService"/>
|
||||
<service android:include="false"
|
||||
android:name="com.vivo.account.base.accounts.LogWatcherService"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.vivo.account.base.accounts.SendMsgReceiver"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.vivo.account.base.accounts.ManageAccountReceiver"/>
|
||||
<receiver android:include="false"
|
||||
android:name="com.vivo.account.base.accounts.VivoApkInstallRecevier"/>
|
||||
<!-- 更老版本声明 end -->
|
||||
|
||||
</tests>
|
@ -3,10 +3,100 @@ package com.hnjc.wjtx;
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
|
||||
import com.hnjc.wjtx.vivo.VivoUnionHelper;
|
||||
import com.vivo.unionsdk.open.MissOrderEventHandler;
|
||||
import com.vivo.unionsdk.open.OrderResultInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class JCApplication extends Application {
|
||||
private final String TAG = "JCApplication";
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
Log.i("JCApplication", "JCApplication onCreate");
|
||||
VivoUnionHelper.initSdk(this, false);
|
||||
|
||||
/**
|
||||
* 掉单注册接口 需要接入掉单补单处理的一定要加
|
||||
* !!!! 一定要加,否则无法通过上架审核 !!!
|
||||
* 作用:商品补发回调
|
||||
* 场景:支付完成后,游戏未正常发放商品,或发放后未成功通知到vivo侧,在异常订单查询后自动触发
|
||||
*/
|
||||
VivoUnionHelper.registerMissOrderEventHandler(this, mMissOrderEventHandler);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户主动触发或调用queryMissOrderResult查询回调会在此做处理
|
||||
*/
|
||||
private MissOrderEventHandler mMissOrderEventHandler = new MissOrderEventHandler() {
|
||||
@Override
|
||||
public void process(List orderResultInfos) {
|
||||
Log.i(TAG, "registerOrderResultEventHandler: orderResultInfos = " + orderResultInfos);
|
||||
/**
|
||||
* 注意这里是查到未核销的订单
|
||||
* 需要调用自己的逻辑完成道具核销后再调用我们的订单完成接口
|
||||
* 切记!!!一定要走自己逻辑发送完道具后再调用完成接口!!!切记!切记!
|
||||
* !!!游戏根据订单号检查、补发商品!!!
|
||||
* 自行完成补发逻辑 一定要完成道具补发后才能调用完成接口 此处一定要注意!!!
|
||||
* 如果不处理直接调用完成则掉单无法解决
|
||||
* 注意!!!注意!!!
|
||||
* 游戏侧用你们自己的订单号cpOrderNumber来校验是否完成发货 发货完成上报我们的订单号transNo
|
||||
*/
|
||||
checkOrder(orderResultInfos);
|
||||
}
|
||||
};
|
||||
/**
|
||||
* 校验订单是否已经完成发货(游戏自己逻辑)
|
||||
* 未完成的执行发货操作
|
||||
* @param list
|
||||
*/
|
||||
public void checkOrder(final List<OrderResultInfo> list) {
|
||||
if (list == null || list.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
List<String> orderList = new ArrayList<>();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
/**
|
||||
* 校验是否已经完成发货 如果已经完成发货则加入完成列表
|
||||
* 未完成则调用发货流程
|
||||
* 这里修改成自己的校验流程 调用游戏自己的服务器 注意!!!注意!!!
|
||||
*/
|
||||
boolean isSucc = true;
|
||||
if (isSucc) {
|
||||
/**
|
||||
* 校验已发货成功的 加入已完成列表 这里传的是transNo
|
||||
*/
|
||||
orderList.add(list.get(i).getTransNo());
|
||||
} else {
|
||||
/**
|
||||
* 未完成发货的执行发货流程
|
||||
*/
|
||||
sendProp(list.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* !!!批量订单补发完成后调用完成接口 !!!
|
||||
*/
|
||||
VivoUnionHelper.reportOrderComplete(orderList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用发货逻辑(游戏自己实现)
|
||||
* @param orderResultInfo
|
||||
*/
|
||||
private void sendProp(final OrderResultInfo orderResultInfo) {
|
||||
/**
|
||||
* 执行发货逻辑 发货成功单独通知
|
||||
*/
|
||||
boolean isSucc = true;
|
||||
if (isSucc) {
|
||||
/**
|
||||
* !!!单个订单补发完成后调用完成接口 !!!
|
||||
*/
|
||||
VivoUnionHelper.reportOrderComplete(orderResultInfo.getTransNo(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,17 @@
|
||||
package com.hnjc.wjtx;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.VibrationEffect;
|
||||
import android.os.Vibrator;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.widget.FrameLayout;
|
||||
@ -18,20 +21,82 @@ import android.widget.Toast;
|
||||
import com.hnjc.wjtx.util.AssetsUtil;
|
||||
import com.hnjc.wjtx.util.StorageUtil;
|
||||
import com.hnjc.wjtx.util.StringUtil;
|
||||
import com.hnjc.wjtx.vivo.VivoUnionHelper;
|
||||
import com.vivo.unionsdk.open.OrderResultInfo;
|
||||
import com.vivo.unionsdk.open.VivoAccountCallback;
|
||||
import com.vivo.unionsdk.open.VivoConstants;
|
||||
import com.vivo.unionsdk.open.VivoPayCallback;
|
||||
import com.vivo.unionsdk.open.VivoRoleInfo;
|
||||
import com.vivo.unionsdk.open.VivoUnionSDK;
|
||||
|
||||
import org.egret.egretnativeandroid.EgretNativeAndroid;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
//Android项目发布设置详见doc目录下的README_ANDROID.md
|
||||
|
||||
public class MainActivity extends Activity {
|
||||
private final String TAG = "MainActivity";
|
||||
private EgretNativeAndroid nativeAndroid;
|
||||
private ImageView launchScreenImageView = null;
|
||||
private FrameLayout rootLayout = null;
|
||||
private Vibrator vibrator;
|
||||
//用户uid
|
||||
private String mUid = "";
|
||||
//游戏订单号
|
||||
private String cpPayOrderNumber;
|
||||
//订单金额
|
||||
private String cpOrderAmount;
|
||||
|
||||
private VivoAccountCallback mAcccountCallback = new VivoAccountCallback() {
|
||||
@Override
|
||||
public void onVivoAccountLogin(String userName, String uid, String authToken) {
|
||||
// 1. 收到登录成功回调后,调用服务端接口校验登录有效性。arg2返回值为authtoken。服务端接口详见文档。校验登录代码略。
|
||||
mUid = uid;
|
||||
// 2. 登录成功后上报角色信息
|
||||
VivoUnionHelper.reportRoleInfo(new VivoRoleInfo("角色ID", "角色等级", "角色名称", "区服ID", "区服名称"));
|
||||
// 3. 处理自己的登录成功逻辑
|
||||
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
|
||||
|
||||
//登录成功
|
||||
VivoUnionHelper.queryMissOrderResult(uid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVivoAccountLogout(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVivoAccountLoginCancel() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
private VivoPayCallback mVivoPayCallback = new VivoPayCallback() {
|
||||
// 客户端返回的支付结果不可靠,请再查询服务器,以服务器端最终的支付结果为准;
|
||||
@Override
|
||||
public void onVivoPayResult(int i, OrderResultInfo orderResultInfo) {
|
||||
Log.i(TAG, "onVivoPayResult: " + orderResultInfo.getTransNo());
|
||||
Log.i(TAG, "CpOrderNumber: " + cpPayOrderNumber + " i = " + i);
|
||||
|
||||
if (i == VivoConstants.PAYMENT_RESULT_CODE_SUCCESS) {
|
||||
Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_SHORT).show();
|
||||
/**
|
||||
* !!!! 一定要加,否则无法通过上架审核 !!!
|
||||
* !!! 商品发放成功以后,通知vivo侧 !!!!
|
||||
* 这里取transNo不要取错了 注意!!!
|
||||
*/
|
||||
VivoUnionHelper.reportOrderComplete(orderResultInfo.getTransNo());
|
||||
Log.i(TAG, "sendCompleteOrderNotification: " + orderResultInfo.getTransNo());
|
||||
} else if (i == VivoConstants.PAYMENT_RESULT_CODE_CANCEL) {
|
||||
Toast.makeText(MainActivity.this, "取消支付", Toast.LENGTH_SHORT).show();
|
||||
} else if (i == VivoConstants.PAYMENT_RESULT_CODE_UNKNOWN) {
|
||||
Toast.makeText(MainActivity.this, "未知状态,请查询订单", Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
Toast.makeText(MainActivity.this, "支付失败", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -67,6 +132,33 @@ public class MainActivity extends Activity {
|
||||
rootLayout = nativeAndroid.getRootFrameLayout();
|
||||
showLoadingView();
|
||||
vibrator = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
|
||||
|
||||
//注册登录回调
|
||||
VivoUnionSDK.registerAccountCallback(this, mAcccountCallback);
|
||||
|
||||
/**
|
||||
* 动态获取访问手机标识符权限
|
||||
* 这个在游戏中移动要加,不然获取不到imei
|
||||
*/
|
||||
if(Build.VERSION.SDK_INT >= 23){
|
||||
int hasPermission = checkSelfPermission(Manifest.permission.READ_PHONE_STATE);
|
||||
if (hasPermission != PackageManager.PERMISSION_GRANTED) {
|
||||
//没有权限,向用户请求权限
|
||||
requestPermissions( new String[]{Manifest.permission.READ_PHONE_STATE}, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
if (requestCode == 0){
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
|
||||
//用户同意,执行操作
|
||||
|
||||
}else{
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -212,4 +304,64 @@ public class MainActivity extends Activity {
|
||||
launchScreenImageView = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录vivo帐号
|
||||
*/
|
||||
public void loginVivoAccount() {
|
||||
if (!TextUtils.isEmpty(mUid)) {
|
||||
Toast.makeText(this, "已登录成功,禁止重复登录", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* 接入掉单补单接口一定要掉单注册成功后再调用登录接口
|
||||
*/
|
||||
VivoUnionHelper.login(this);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录成功后,进行支付
|
||||
*/
|
||||
public void payAfterLogin() {
|
||||
if (TextUtils.isEmpty(mUid)) {
|
||||
Toast.makeText(this, "支付失败,请先登录", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
// VivoPayInfo vivoPayInfo = VivoSign.createPayInfo(mUid, getOrderBean());
|
||||
// VivoUnionHelper.payV2(this, vivoPayInfo, mVivoPayCallback);
|
||||
}
|
||||
|
||||
/**
|
||||
* //直接调起微信或支付宝支付
|
||||
*
|
||||
* @param code 1表示微信,2表示支付宝
|
||||
*/
|
||||
public void payAfterLogin(int code) {
|
||||
if (TextUtils.isEmpty(mUid)) {
|
||||
Toast.makeText(this, "支付失败,请先登录", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
// VivoPayInfo vivoPayInfo = VivoSign.createPayInfo(mUid, getOrderBean());
|
||||
// VivoUnionHelper.payNowV2(this, vivoPayInfo, mVivoPayCallback, code);
|
||||
}
|
||||
|
||||
/**
|
||||
* 未登录时,进行支付
|
||||
*/
|
||||
public void payWithoutLogin() {
|
||||
// VivoPayInfo vivoPayInfo = VivoSign.createPayInfo(mUid, getOrderBean());
|
||||
// VivoUnionHelper.payV2(this, vivoPayInfo, mVivoPayCallback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 未登录时,进行支付,直接调起微信或支付宝支付
|
||||
*
|
||||
* @param code 1表示微信,2表示支付宝
|
||||
*/
|
||||
public void payWithoutLogin(int code) {
|
||||
// VivoPayInfo vivoPayInfo = VivoSign.createPayInfo(mUid, getOrderBean());
|
||||
// VivoUnionHelper.payNowV2(this, vivoPayInfo, mVivoPayCallback, code);
|
||||
}
|
||||
|
||||
}
|
||||
|
117
app/src/main/java/com/hnjc/wjtx/vivo/VivoUnionHelper.java
Normal file
117
app/src/main/java/com/hnjc/wjtx/vivo/VivoUnionHelper.java
Normal file
@ -0,0 +1,117 @@
|
||||
package com.hnjc.wjtx.vivo;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.vivo.unionsdk.open.MissOrderEventHandler;
|
||||
import com.vivo.unionsdk.open.VivoPayCallback;
|
||||
import com.vivo.unionsdk.open.VivoPayInfo;
|
||||
import com.vivo.unionsdk.open.VivoRoleInfo;
|
||||
import com.vivo.unionsdk.open.VivoUnionSDK;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class VivoUnionHelper {
|
||||
private static final String TAG = "VivoUnionHelper";
|
||||
|
||||
/**
|
||||
* 初始化sdk
|
||||
*
|
||||
* @param context
|
||||
* @param debug
|
||||
*/
|
||||
public static void initSdk(Context context, boolean debug) {
|
||||
VivoUnionSDK.initSdk(context, "104485272", debug);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单状态
|
||||
*
|
||||
* @param openid 帐号唯一标识,登录后获取
|
||||
*/
|
||||
public static void queryMissOrderResult(String openid) {
|
||||
VivoUnionSDK.queryMissOrderResult(openid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录成功后上报角色信息
|
||||
*
|
||||
* @param vivoRoleInfo 角色信息
|
||||
*/
|
||||
public static void reportRoleInfo(VivoRoleInfo vivoRoleInfo) {
|
||||
VivoUnionSDK.reportRoleInfo(vivoRoleInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询是否有调单
|
||||
*
|
||||
* @param missOrderEventHandler
|
||||
*/
|
||||
public static void registerMissOrderEventHandler(final Context context, MissOrderEventHandler missOrderEventHandler) {
|
||||
VivoUnionSDK.registerMissOrderEventHandler(context, missOrderEventHandler);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 直接吊起微信与支付宝
|
||||
*
|
||||
* @param activity
|
||||
* @param mVivoPayCallback 支付结果回调
|
||||
* @param code 1表示微信,2表示支付宝
|
||||
*/
|
||||
public static void payNowV2(Activity activity, VivoPayInfo vivoPayInfo, VivoPayCallback mVivoPayCallback, int code) {
|
||||
VivoUnionSDK.payNowV2(activity, vivoPayInfo, mVivoPayCallback, code);
|
||||
}
|
||||
|
||||
/**
|
||||
* 吊起支付面板
|
||||
*
|
||||
* @param activity
|
||||
* @param mVivoPayCallback 支付结果回调
|
||||
*/
|
||||
public static void payV2(Activity activity, VivoPayInfo vivoPayInfo, VivoPayCallback mVivoPayCallback) {
|
||||
VivoUnionSDK.payV2(activity, vivoPayInfo, mVivoPayCallback);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*
|
||||
* @param activity
|
||||
*/
|
||||
public static void login(Activity activity) {
|
||||
VivoUnionSDK.login(activity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 游戏方发放商品成功主动通知联运
|
||||
*
|
||||
* @param list vivo订单号列表
|
||||
*/
|
||||
public static void reportOrderComplete(List<String> list) {
|
||||
if (list == null || list.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
VivoUnionSDK.reportOrderComplete(list, true);
|
||||
}
|
||||
|
||||
public static void reportOrderComplete(String transNo) {
|
||||
if (TextUtils.isEmpty(transNo)) {
|
||||
return;
|
||||
}
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(transNo);
|
||||
VivoUnionSDK.reportOrderComplete(list, false);
|
||||
}
|
||||
|
||||
public static void reportOrderComplete(String transNo, boolean b) {
|
||||
if (TextUtils.isEmpty(transNo)) {
|
||||
return;
|
||||
}
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(transNo);
|
||||
VivoUnionSDK.reportOrderComplete(list, b);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user