/**
* 钱包充值页面
* @邠心vbe on 2021/05/08
*/
import React, { Component } from 'react';
import { View, Text, ScrollView, StyleSheet, Switch } from 'react-native';
import apiWallet from '../../api/apiWallet';
import Button from '../../components/Button';
import Dialog from '../../components/Dialog';
import { PageList } from '../Router';
import { Balance } from './Payment';
import PaythodList from './PaythodList';
export default class Topup extends Component {
constructor(props) {
super(props);
this.state = {
isAuto: false,
topupList: [],
selectIndex: 0,
payType: {},
balance: 0,
};
}
componentDidMount() {
this.props.navigation.addListener('focus', () => {
getUserInfo(info => {
this.setState({
balance: info.credit
})
}, true);
});
this.getTopupList();
}
getTopupList() {
Dialog.showProgressDialog();
apiWallet.getTopUpAmountList().then(res => {
Dialog.dismissLoading();
if (res.data.length > 0) {
this.setState({
topupList: res.data
});
}
}).catch(err => {
Dialog.dismissLoading();
})
}
topup2() {
const params = {
payAmount: this.state.topupList[this.state.selectIndex]?.key,
}
apiWallet.doPaymentV2(params).then(res => {
Dialog.dismissLoading();
if (res.data.webPaymentUrl) {
startPage(PageList.paymentWeb, { amount: params.payAmount, url: res.data.webPaymentUrl, type: 'Topup' });
} else {
toastShort('Error 0')
}
}).catch(err => {
Dialog.dismissLoading();
toastShort(err);
});
}
topup() {
const params = {
payAmount: this.state.topupList[this.state.selectIndex]?.key,
fomoPayType: this.state.payType.fomoPayType
}
console.log('params',params);
if (params.payAmount) {
if (params.fomoPayType == 'PAYNOW' || params.fomoPayType == 'GRABPAY') {
//PAYNOW支付
Dialog.showProgressDialog();
apiWallet.doPayment(params).then(res => {
Dialog.dismissLoading();
if (res.data.fomoId && res.data.qrCodeInBase64) {
startPage(PageList.paynow, { amount: params.payAmount, base64: res.data.qrCodeInBase64 });
} else if (res.data.url) {
startPage(PageList.paymentWeb, { amount: params.payAmount, url: res.data.url, type: 'Topup' });
} else {
toastShort('Error 0')
}
}).catch(err => {
Dialog.dismissLoading();
toastShort(err);
});
} else {
//信用卡支付
startPage(PageList.formCard, { amount: params.payAmount, payType: params.fomoPayType });
}
} else {
toastShort('Error 1')
}
}
render() {
return (
Top Up
Choose Top Up Value:
{ this.state.topupList.map((item, index) => {
return (
0 && styles.right,
index == this.state.selectIndex && styles.selected]}
onPress={() => {
this.setState({
selectIndex: index
})
}}
>{currency}{item.key}
);
})
}
Payment
Pay with:
{
this.setState({
payType: type
});
}}/>
{/*
{
this.setState({
isAuto: !this.state.isAuto
});
}}>Automatically top up S$20 when wallet balance is below S$5
{
this.setState({
isAuto: v
});
}}/>
*/}
);
}
}
export const WalletTitle = ({children}) => {
return (
{children}
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#F5F5F5'
},
headerView: {
paddingBottom: 76,
//backgroundColor: colorAccent
},
contentView: {
padding: 16,
marginTop: -88
},
topupView: {
padding: 16,
borderRadius: 10,
marginBottom: 16,
backgroundColor: colorLight
},
topupTitle: {
alignItems: 'center',
flexDirection: 'row'
},
titleLeft: {
width: 4,
height: 15,
borderRadius: 16,
backgroundColor: colorPrimary
},
titleText: {
color: textPrimary,
fontSize: 16,
paddingLeft: 10
},
subTitle: {
color: textPrimary,
fontSize: 14,
marginTop: 16,
marginBottom: 16
},
topupItems: {
paddingBottom: 16,
alignItems: 'center',
flexDirection: 'row'
},
topupItem: {
flex: 1,
height: 60,
lineHeight: 60,
color: '#666',
fontSize: 24,
borderWidth: 1,
borderRadius: 4,
borderColor: '#999',
textAlign: 'center'
},
right: {
marginLeft: 20
},
selected: {
color: textLight,
borderColor: colorDark,
backgroundColor: colorPrimary
},
autoView: {
flex: 1,
color: textPrimary,
fontSize: 14,
paddingRight: 32
},
buttonView: {
padding: 16,
marginTop: 0,
marginBottom: 16
}
})
export const TopupStyle = styles;