Commit 62f3504a authored by linfeng's avatar linfeng

钱包微信提现

parent c76859db
......@@ -8,8 +8,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
flavorDimensions "default"
versionCode 156
versionName "1.5.6"
versionCode 157
versionName "1.5.7"
multiDexEnabled true
......
......@@ -63,14 +63,14 @@ public class OrderListActivity extends BaseStatusActivity<PickerPresenter> {
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
menuPosition = intent.getIntExtra("position", 0);
titleView.setTitle(mActivity.getString(R.string.rv_my_order));
// titleView.setText(R.id.tv_title_right, "开发票");
// titleView.setChildClickListener(R.id.tv_title_right, new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// ARouter.getInstance().build(Constance.ACTIVITY_URL_INVOICINGACTIVITY)
// .navigation();
// }
// });
titleView.setText(R.id.tv_title_right, "开发票");
titleView.setChildClickListener(R.id.tv_title_right, new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance().build(Constance.ACTIVITY_URL_INVOICINGACTIVITY)
.navigation();
}
});
initRecyclerView();
initViewpager();
......
......@@ -7,6 +7,8 @@ import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import com.frame.base.bus.RxBus;
......@@ -86,6 +88,7 @@ public class SetPayPwdActivity2 extends BaseStatusActivity<CommonPresenter> {
edtPwd4.addTextChangedListener(watcher);
edtPwd5.addTextChangedListener(watcher);
edtPwd6.addTextChangedListener(watcher);
}
private TextWatcher watcher = new TextWatcher() {
......@@ -120,6 +123,25 @@ public class SetPayPwdActivity2 extends BaseStatusActivity<CommonPresenter> {
} else if (edtPwd6.isFocused()) {
edtPwd6.requestFocus();
}
}else {
if (edtPwd6.isFocused()) {
edtPwd6.clearFocus();
edtPwd5.requestFocus();
} else if (edtPwd5.isFocused()) {
edtPwd5.clearFocus();
edtPwd4.requestFocus();
} else if (edtPwd4.isFocused()) {
edtPwd4.clearFocus();
edtPwd3.requestFocus();
} else if (edtPwd3.isFocused()) {
edtPwd3.clearFocus();
edtPwd2.requestFocus();
} else if (edtPwd2.isFocused()) {
edtPwd2.clearFocus();
edtPwd1.requestFocus();
} else if (edtPwd1.isFocused()) {
edtPwd1.requestFocus();
}
}
}
};
......
package com.xxrv.wallet.activity;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
......@@ -27,6 +28,10 @@ import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.dialog.VerifiedTipsDialog;
import com.rv.component.dialog.WalletTipsDialog;
import com.rv.home.rv.module.ApiConfig;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.utils.SocializeUtils;
import com.xxrv.wallet.R;
import com.xxrv.wallet.R2;
import com.xxrv.wallet.api.WalletApi;
......@@ -40,6 +45,7 @@ import com.xxrv.wallet.event.SetPasswordSuccessEvent;
import com.xxrv.wallet.presenter.WalletPresenter;
import com.yuyife.okgo.OkGoUtil;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
......@@ -51,7 +57,7 @@ import io.reactivex.schedulers.Schedulers;
* 钱包
*/
@Route(path = Constance.ACTIVITY_URL_WALLET)
public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
public class WalletActivity extends BaseStatusActivity<WalletPresenter> implements UMAuthListener {
@BindView(R2.id.tv_wallet_balance)
TextView tvWalletBalance;
......@@ -67,7 +73,7 @@ public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
private BeanUserInfo.UserInfo userInfo;
private static final int SDK_AUTH_FLAG = 2;
private String isFrozen;
public ProgressDialog dialog;
@Override
protected int setLayout() {
......@@ -85,6 +91,7 @@ public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
showTitle(false);
initRxbus();
userInfo = getUserInfo();
dialog = new ProgressDialog(this);
}
private void initRxbus() {
......@@ -136,18 +143,7 @@ public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
private void isAccountNumber(AccountNumberListBean result) {
if (result != null && result.getData() != null && result.getData().size() > 0) { ////1支付宝 2微信
int num = 0;
for (int i = 0; i < result.getData().size(); i++) {
if (1 == result.getData().get(i).getType()) {
num++;
}
}
if (num > 0) {
getCheckSetPwd();
} else {
showBindingDialog();
}
getCheckSetPwd();
} else {
showBindingDialog();
}
......@@ -168,6 +164,7 @@ public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
dismiss();
} else if (id == R.id.ll_item_wechat) {
//微信绑定
bindThirdParty(SHARE_MEDIA.WEIXIN);
dismiss();
}
}
......@@ -312,6 +309,9 @@ public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
mPresenter.getData(RvFrameConfig.HOST, 2, WalletApi.HTTP_URL_WALLET_UNAUTH_GETPARAM, WalletAuthInfoBean.class, map, false);
}
/**
* 获取帐号信息
*/
private void getAccountNumber() {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
......@@ -373,6 +373,7 @@ public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
}
};
private void putAlipayCode(String code) {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
......@@ -382,4 +383,106 @@ public class WalletActivity extends BaseStatusActivity<WalletPresenter> {
mPresenter.getData(RvFrameConfig.HOST, 3, WalletApi.HTTP_URL_WALLET_ALIPAY_GETUSERINFO, BaseBean.class, map, headMap, false);
}
private void bindThirdParty(SHARE_MEDIA share_media) {
UMShareAPI.get(mActivity).getPlatformInfo(mActivity, share_media, this);
}
@Override
public void onStart(SHARE_MEDIA share_media) {
SocializeUtils.safeShowDialog(dialog);
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
if (dialog != null) {
SocializeUtils.safeCloseDialog(dialog);
}
String type = share_media.getName();
if (share_media != null && "wxsession".equals(type)) { // 微信
String openid = map.get("openid");
String unionid = map.get("unionid");
String nickName = map.get("name");
authorize(openid, unionid, nickName, "wx");
}
}
/**
* 微信绑定
*
* @param openid
* @param unionid
* @param nickName
* @param type
*/
private void authorize(String openid, String unionid, String nickName, String type) {
if (!TextUtils.isEmpty(OkGoUtil.getToken())) {
Map<String, String> heads = new HashMap<>();
heads.put("Authorization", OkGoUtil.getToken());
mPresenter.postBodyData(10, ApiConfig.HTTP_URL_USER_BIND, BaseBean.class, new AccountBindDto(openid, unionid, nickName, type), heads, false);
}
}
@Override
public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
SocializeUtils.safeCloseDialog(dialog);
showToast(mActivity.getString(com.rv.home.R.string.rv_login_authorization_failure) + throwable.getMessage());
}
@Override
public void onCancel(SHARE_MEDIA share_media, int i) {
SocializeUtils.safeCloseDialog(dialog);
}
private class AccountBindDto {
private String openId;
private String unionId;
private String nickName;
private String type;
public AccountBindDto(String openId, String unionId, String nickName, String type) {
this.openId = openId;
this.unionId = unionId;
this.nickName = nickName;
this.type = type;
}
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
}
......@@ -47,6 +47,7 @@ import com.xxrv.wallet.presenter.WalletPresenter;
import com.xxrv.wallet.view.PayPassView;
import com.yuyife.okgo.OkGoUtil;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
......@@ -81,6 +82,8 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
private static final int SDK_AUTH_FLAG = 2;
public ProgressDialog dialog;
private AccountTypeSelectionDialog accountTypeSelectionDialog;
private boolean selectType;
AccountNumberListBean.DataBean selectDataBean = null;
public static Intent getIntent(Context context, String balance) {
return new Intent(context, WithdrawActivity.class)
......@@ -140,16 +143,15 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
getAccountNumber();
// getAliPayList();
getAccountNumber(5);
getWithdrawalRules();
}
private void getAccountNumber() {
private void getAccountNumber(int type) {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken());
mPresenter.getDataHead(RvFrameConfig.HOST, 5, WalletApi.HTTP_URL_WALLET_ACCOUNT_NUMBER, AccountNumberListBean.class, headMap, false);
mPresenter.getDataHead(RvFrameConfig.HOST, type, WalletApi.HTTP_URL_WALLET_ACCOUNT_NUMBER, AccountNumberListBean.class, headMap, false);
}
......@@ -196,10 +198,15 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
alipayAuthV2((WalletAuthInfoBean) result);
break;
case 7:
getAccountNumber();
if (accountTypeSelectionDialog != null) {
accountTypeSelectionDialog.dismiss();
}
getAccountNumber(10);
break;
case 10:
AccountNumberListBean bean5 = (AccountNumberListBean) result;
accountNumberList = bean5.getData();
setAccountNumber(bean5);
selectShow();
break;
}
......@@ -212,20 +219,14 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
*/
private void setAccountNumber(AccountNumberListBean result) {
if (result != null && result.getData() != null && result.getData().size() > 0) {
for (int i = 0; i < result.getData().size(); i++) {
if (1 == result.getData().get(i).getType()) {
AccountNumberListBean.DataBean dataBean = result.getData().get(0);
selectAccountNumber = dataBean;
dataBean.setCheck(true);
if (dataBean.getType() == 1) { //1支付宝 2微信
ivAccountNumberIcon.setImageResource(R.drawable.common_icon_wallet_alipay_small);
tvAccountNumber.setText("支付宝余额(" + dataBean.getNickname() + ")");
} else if (dataBean.getType() == 2) {
ivAccountNumberIcon.setImageResource(R.drawable.common_icon_wallet_weiwx_small);
tvAccountNumber.setText("微信零钱(" + dataBean.getNickname() + ")");
}
break;
}
AccountNumberListBean.DataBean dataBean = result.getData().get(0);
selectAccountNumber = dataBean;
if (dataBean.getType() == 1) { //1支付宝 2微信
ivAccountNumberIcon.setImageResource(R.drawable.common_icon_wallet_alipay_small);
tvAccountNumber.setText("支付宝余额(" + dataBean.getNickname() + ")");
} else if (dataBean.getType() == 0) {
ivAccountNumberIcon.setImageResource(R.drawable.common_icon_wallet_weiwx_small);
tvAccountNumber.setText("微信零钱(" + dataBean.getNickname() + ")");
}
}
}
......@@ -288,7 +289,7 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
.withInt("type", 20)
.navigation();
} else if (id == R.id.ll_item_select_account_number) {
// selectShow();
selectShow();
}
}
......@@ -307,20 +308,13 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
helper.setText(R.id.tv_name1, "支付宝余额(" + dataBean1.getNickname() + ")");
helper.setImageResource(R.id.iv_icon1, R.drawable.common_icon_wallet_alipay);
helper.setText(R.id.tv_name3, "添加微信提现,绑定微信");
} else if (dataBean1.getType() == 2) {
} else if (dataBean1.getType() == 0) {
helper.setText(R.id.tv_name1, "微信零钱(" + dataBean1.getNickname() + ")");
helper.setImageResource(R.id.iv_icon1, R.drawable.common_icon_wallet_weiwx);
helper.setText(R.id.tv_name3, "添加支付宝提现,绑定支付宝");
isType = true;
}
ImageView select1 = (ImageView) helper.getView(R.id.iv_select1);
if (dataBean1.getCheck()) {
select1.setSelected(true);
} else {
select1.setSelected(false);
}
helper.setVisible(R.id.ll_item_select2, false);
helper.setVisible(R.id.ll_item_select3, true);
......@@ -331,61 +325,62 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
if (dataBean2.getType() == 1) {
helper.setText(R.id.tv_name2, "支付宝余额(" + dataBean2.getNickname() + ")");
helper.setImageResource(R.id.iv_icon2, R.drawable.common_icon_wallet_alipay);
} else if (dataBean2.getType() == 2) {
} else if (dataBean2.getType() == 0) {
helper.setText(R.id.tv_name2, "微信零钱(" + dataBean2.getNickname() + ")");
helper.setImageResource(R.id.iv_icon2, R.drawable.common_icon_wallet_weiwx);
}
ImageView select2 = (ImageView) helper.getView(R.id.iv_select2);
if (dataBean2.getCheck()) {
select2.setSelected(true);
} else {
select2.setSelected(false);
}
}
}
final ImageView select1 = (ImageView) helper.getView(R.id.iv_select1);
final ImageView select2 = (ImageView) helper.getView(R.id.iv_select2);
if (selectType) {
select2.setSelected(true);
} else {
select1.setSelected(true);
}
helper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = v.getId();
AccountNumberListBean.DataBean dataBean = null;
if (id == R.id.iv_close) {
dismiss();
} else if (id == R.id.ll_item_select1) {
dataBean = accountNumberList.get(0);
ImageView select = (ImageView) helper.getView(R.id.iv_select1);
if (dataBean.getCheck()) {
select.setSelected(true);
} else {
select.setSelected(false);
}
selectDataBean = accountNumberList.get(0);
select2.setSelected(false);
select1.setSelected(true);
selectType = false;
} else if (id == R.id.ll_item_select2) {
dataBean = accountNumberList.get(1);
ImageView select = (ImageView) helper.getView(R.id.iv_select2);
if (dataBean.getCheck()) {
select.setSelected(true);
} else {
select.setSelected(false);
}
selectDataBean = accountNumberList.get(1);
select1.setSelected(false);
select2.setSelected(true);
selectType = true;
} else if (id == R.id.ll_item_select3) {
if (isType) {
//绑定支付宝
getAuthInfo();
} else {
//绑定微信
if (!IsAppInstall.isWeixinAvilible(mActivity)) {
showToast("亲,您微信还没有安装呢");
return;
}
bindThirdParty(SHARE_MEDIA.WEIXIN);
}
dismiss();
} else if (id == R.id.tv_ok) {
selectAccountNumber = dataBean;
selectAccountNumber = selectDataBean;
if (selectAccountNumber.getType() == 1) { //1支付宝 2微信
ivAccountNumberIcon.setImageResource(R.drawable.common_icon_wallet_alipay_small);
tvAccountNumber.setText("支付宝余额(" + selectAccountNumber.getNickname() + ")");
} else if (selectAccountNumber.getType() == 0) {
ivAccountNumberIcon.setImageResource(R.drawable.common_icon_wallet_weiwx_small);
tvAccountNumber.setText("微信零钱(" + selectAccountNumber.getNickname() + ")");
}
dismiss();
}
}
......@@ -418,7 +413,6 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
showToast("提现金额不能为空!");
return;
}
checkWithdraw();
}
......@@ -473,7 +467,7 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken());
mPresenter.postBodyData(RvFrameConfig.VEHICLE_ORDER, 4, WalletApi.HTTP_URL_WALLET_APPLYCATH, WithdrawBean.class, new Withdraw(withdrawalAmount, passContent, selectAccountNumber.getTxAlipay(), selectAccountNumber.getNickname(), "1"), headMap, true);
mPresenter.postBodyData(RvFrameConfig.VEHICLE_ORDER, 4, WalletApi.HTTP_URL_WALLET_APPLYCATH, WithdrawBean.class, new Withdraw(withdrawalAmount, passContent, selectAccountNumber.getTxAlipay(), selectAccountNumber.getNickname(), selectAccountNumber.getType()), headMap, true);
}
......@@ -536,7 +530,22 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
Map<String, Object> map = new LinkedHashMap<>();
map.put("code", code);
mPresenter.getData(RvFrameConfig.HOST, 7, WalletApi.HTTP_URL_WALLET_ALIPAY_GETUSERINFO, BaseBean.class, map, headMap, false);
}
/**
* 微信绑定
*
* @param openid
* @param unionid
* @param nickName
* @param type
*/
private void authorize(String openid, String unionid, String nickName, String type) {
if (!TextUtils.isEmpty(OkGoUtil.getToken())) {
Map<String, String> heads = new HashMap<>();
heads.put("Authorization", OkGoUtil.getToken());
mPresenter.postBodyData(7, ApiConfig.HTTP_URL_USER_BIND, BaseBean.class, new AccountBindDto(openid, unionid, nickName, type), heads, false);
}
}
......@@ -552,14 +561,17 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> data) {
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
if (dialog != null) {
SocializeUtils.safeCloseDialog(dialog);
}
data.get("iconurl");
// mUnionid = data.get("unionid");
// mWXOpenid = data.get("openid");
// mName = data.get("name");
String type = share_media.getName();
if (share_media != null && "wxsession".equals(type)) { // 微信
String openid = map.get("openid");
String unionid = map.get("unionid");
String nickName = map.get("name");
authorize(openid, unionid, nickName, "wx");
}
}
......@@ -590,10 +602,10 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
private String amount;
private String password;
private String accountNumber;
private String cathType;
private int cathType;
private String accountName;
public Withdraw(String amount, String password, String accountNumber, String accountName, String cathType) {
public Withdraw(String amount, String password, String accountNumber, String accountName, int cathType) {
this.amount = amount;
this.password = password;
this.accountNumber = accountNumber;
......@@ -625,11 +637,11 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
this.accountNumber = accountNumber;
}
public String getCathType() {
public int getCathType() {
return cathType;
}
public void setCathType(String cathType) {
public void setCathType(int cathType) {
this.cathType = cathType;
}
......@@ -641,4 +653,52 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> implem
this.accountName = accountName;
}
}
private class AccountBindDto {
private String openId;
private String unionId;
private String nickName;
private String type;
public AccountBindDto(String openId, String unionId, String nickName, String type) {
this.openId = openId;
this.unionId = unionId;
this.nickName = nickName;
this.type = type;
}
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
}
......@@ -40,15 +40,6 @@ public class AccountNumberListBean extends BaseBean {
private int isDel;//":0,
private String nickname;//":"PeakLin",
private int type;//":1
private boolean check;
public boolean getCheck() {
return check;
}
public void setCheck(boolean check) {
this.check = check;
}
public String getId() {
return id;
......
......@@ -35,21 +35,10 @@
android:layout_marginLeft="@dimen/size_15"
android:layout_marginRight="@dimen/size_15"
android:layout_marginBottom="@dimen/size_26"
android:text="支持提现到支付余额,请绑定支付宝。"
android:text="提现有2种方式,提现到微信零钱或支付宝余额。需至少绑定一种方式:"
android:textColor="@color/textGray"
android:textSize="@dimen/size_16" />
<!--<TextView-->
<!--android:id="@+id/tv_content"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginLeft="@dimen/size_15"-->
<!--android:layout_marginRight="@dimen/size_15"-->
<!--android:layout_marginBottom="@dimen/size_26"-->
<!--android:text="提现有2种方式,提现到微信零钱或支付宝余额。需至少绑定一种方式:"-->
<!--android:textColor="@color/textGray"-->
<!--android:textSize="@dimen/size_16" />-->
<LinearLayout
android:layout_width="match_parent"
......@@ -95,8 +84,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:visibility="gone">
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment