修改版本

This commit is contained in:
cyh 2025-03-18 14:52:10 +08:00
parent 9526c8cc7c
commit 4fe3ad4bfb
2 changed files with 1448 additions and 1392 deletions

View File

@ -100,11 +100,14 @@ class RechargeFragment : BaseFragment() {
private lateinit var actualPaymentAmount: String
private var selectedGradeID: Int = 0
companion object {
//记录心跳失败次数
const val REQUEST_CODE_PAY_WEB_VIEW_ACTIVITY = 1000
}
var baseLoading: RxDialogShapeLoading? = null
//stripePay 支付
private var paymentIntentClientSecret: String = ""
private val stripe: Stripe by lazy {
@ -113,6 +116,7 @@ class RechargeFragment : BaseFragment() {
PaymentConfiguration.getInstance(requireActivity()).publishableKey
)
}
override fun init(
titleBarRl: RelativeLayout,
backIv: ImageView,
@ -146,7 +150,8 @@ class RechargeFragment : BaseFragment() {
swipeLayout.setOnRefreshListener {
selectedGrade = null
payTv.text = resources.getString(R.string.PayNow)
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val username =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
// viewModel.getPointCardSurplus(username, phToken)
//获取充值列表
@ -175,7 +180,8 @@ class RechargeFragment : BaseFragment() {
tv_pay.text = resources.getString(R.string.PayNow) + "(¥0.00)"
}
} else {
tv_pay.text = resources.getString(R.string.PayNow)+"(${decimalFormat.format(amount)})"
tv_pay.text =
resources.getString(R.string.PayNow) + "(${decimalFormat.format(amount)})"
}
}
} else {
@ -279,7 +285,8 @@ class RechargeFragment : BaseFragment() {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProvider(this).get(RechargeViewModel::class.java)
//获取充值列表
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val username =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
// viewModel.getPointCardSurplus(username, phToken)
@ -331,9 +338,11 @@ class RechargeFragment : BaseFragment() {
HttpReqType.QRPAYSTATU -> {
showLoadingDialog(resources.getString(R.string.QueryingPaymentResult))
}
HttpReqType.WEBPAYQUERY -> {
showLoadingDialog(resources.getString(R.string.QueryingPaymentResult))
}
else -> {}
}
}
@ -373,15 +382,18 @@ class RechargeFragment : BaseFragment() {
pointCard = "0"
pointTv.setTextColor(resources.getColor(R.color.white_50))
pointTv.setOnClickListener {
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val username = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val phToken = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
viewModel.getPointCardSurplus(username, phToken)
}
} else {
pointCard = "${it.data}"
pointCardSurplusSwitch.isEnabled = pointCard.toInt() > 0
pointTv.setTextColor(resources.getColor(R.color.white))
pointTv.text = resources.getString(R.string.RemainingPoints)+": ${if (it.data.isNullOrEmpty()) "0.00" else it.data}"
pointTv.text =
resources.getString(R.string.RemainingPoints) + ": ${if (it.data.isNullOrEmpty()) "0.00" else it.data}"
}
}
}
@ -424,6 +436,7 @@ class RechargeFragment : BaseFragment() {
}
}
}
HttpReqType.unionPay -> {
(httpStatus.rsp as PayRsp).let { rsp ->
if (rsp.code != "1000") {
@ -438,7 +451,8 @@ class RechargeFragment : BaseFragment() {
HttpReqType.PURE_POINT_CARD_PAYMENT -> {
Logger.d("纯点卡支付请求成功")
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val username =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
viewModel.getPointCardSurplus(username, phToken)
hideLoadingDialog()
@ -462,7 +476,10 @@ class RechargeFragment : BaseFragment() {
val expired = checkLoginRsp.data?.expired
val mmkv = MMKV.defaultMMKV()
mmkv.encode(BZYConstants.MMKV_KEY_VPN_EXPIRED, expired ?: true)
mmkv.encode(BZYConstants.MMKV_KEY_VPN_VALID_PERIOD, checkLoginRsp.data?.vpnExpireTime ?: 0)
mmkv.encode(
BZYConstants.MMKV_KEY_VPN_VALID_PERIOD,
checkLoginRsp.data?.vpnExpireTime ?: 0
)
if (activity is NewMainActivity) {
val newMainAt = activity as NewMainActivity
newMainAt.setExpireDate()
@ -488,12 +505,19 @@ class RechargeFragment : BaseFragment() {
qrPayDialog = MaterialDialog(it).show {
this.cancelable(false)
cornerRadius(res = R.dimen.dp_10)
customView(R.layout.qrpay_dialog_layout, scrollable = false, noVerticalPadding = true, horizontalPadding = false)
customView(
R.layout.qrpay_dialog_layout,
scrollable = false,
noVerticalPadding = true,
horizontalPadding = false
)
if (mPayType == PayType.PAY_TYPE_ALI) {
getCustomView().findViewById<TextView>(R.id.tv_qr_pay_note).setText(R.string.qr_pay_note_zfb)
getCustomView().findViewById<TextView>(R.id.tv_qr_pay_note)
.setText(R.string.qr_pay_note_zfb)
} else {
getCustomView().findViewById<TextView>(R.id.tv_qr_pay_note).setText(R.string.qr_pay_note_wx)
getCustomView().findViewById<TextView>(R.id.tv_qr_pay_note)
.setText(R.string.qr_pay_note_wx)
}
val ivQr = getCustomView().findViewById<ImageView>(R.id.iv_qr)
@ -504,7 +528,8 @@ class RechargeFragment : BaseFragment() {
// val bitmap = encoder.createBitmap(matrix)
// ivQr.setImageBitmap(bitmap)
getCustomView().findViewById<TextView>(R.id.tv_pay_finish).setOnClickListener {
getCustomView().findViewById<TextView>(R.id.tv_pay_finish)
.setOnClickListener {
showLoadingDialog(resources.getString(R.string.QueryingPaymentResult))
viewModel.codePayStatus(outTradeNo)
}
@ -535,6 +560,7 @@ class RechargeFragment : BaseFragment() {
}
}
}
HttpReqType.WEBPAYQUERY -> {
hideLoadingDialog()
(httpStatus.rsp as NormalMessageRsp).let {
@ -573,6 +599,7 @@ class RechargeFragment : BaseFragment() {
// goWebViewStartPayClient(httpStatus.rsp, false)
// }
}
HttpReqType.StripeType -> {
(httpStatus.rsp as PayUploadParamData).let {
if (it.data != null) {
@ -603,7 +630,8 @@ class RechargeFragment : BaseFragment() {
)
for (index in data.payType!!) {
if (index.payModel == 10) {
findViewById<LinearLayout>(R.id.llAggregatePayment).visibility=View.VISIBLE
findViewById<LinearLayout>(R.id.llAggregatePayment).visibility =
View.VISIBLE
val JUhePay = findViewById<TextView>(R.id.JUhePay)
JUhePay.visibility = View.VISIBLE
JUhePay.text = index.payChannel
@ -636,12 +664,14 @@ class RechargeFragment : BaseFragment() {
}
}
} else if (index.payModel == 11) {
findViewById<LinearLayout>(R.id.llQuickPayment).visibility=View.VISIBLE
findViewById<LinearLayout>(R.id.llQuickPayment).visibility =
View.VISIBLE
val KJPay = findViewById<TextView>(R.id.KJPay)
KJPay.visibility = View.VISIBLE
KJPay.text = index.payChannel
if (index.payType == 1) {
val ivQuickPayment=findViewById<AppCompatImageView>(R.id.ivQuickPayment)
val ivQuickPayment =
findViewById<AppCompatImageView>(R.id.ivQuickPayment)
ivQuickPayment.visibility = View.VISIBLE
ivQuickPayment.setOnClickListener {
val payModel = index.payModel
@ -654,7 +684,8 @@ class RechargeFragment : BaseFragment() {
}
}
} else if (index.payType == 2) {
val ivQPWechatPay=findViewById<AppCompatImageView>(R.id.ivQPWechatPay)
val ivQPWechatPay =
findViewById<AppCompatImageView>(R.id.ivQPWechatPay)
ivQPWechatPay.visibility = View.VISIBLE
ivQPWechatPay.setOnClickListener {
val payModel = index.payModel
@ -674,7 +705,8 @@ class RechargeFragment : BaseFragment() {
payinfo.visibility = View.VISIBLE
payinfo.text = index.payChannel
findViewById<AppCompatImageView>(R.id.ivStripeAlipay).visibility=View.VISIBLE
findViewById<AppCompatImageView>(R.id.ivStripeAlipay).visibility =
View.VISIBLE
findViewById<AppCompatImageView>(R.id.ivStripeAlipay).setOnClickListener {
if (selectedGradeID != 0) {
if (!PayUtils.isAlipayInstalled(requireActivity())) {
@ -682,7 +714,10 @@ class RechargeFragment : BaseFragment() {
return@setOnClickListener
}
dismiss()
showLoading(resources.getString(R.string.PaymentIn),requireActivity())
showLoading(
resources.getString(R.string.PaymentIn),
requireActivity()
)
Log.i("PayGradeID:", "PayGradeID:${selectedGradeID}")
viewModel.getPayClientSecret(selectedGradeID)
} else {
@ -691,7 +726,8 @@ class RechargeFragment : BaseFragment() {
}
}
}
getCustomView().findViewById<AppCompatImageView>(R.id.ivBack).setOnClickListener {
getCustomView().findViewById<AppCompatImageView>(R.id.ivBack)
.setOnClickListener {
dismiss()
}
}
@ -780,7 +816,12 @@ class RechargeFragment : BaseFragment() {
qrPayDialog = MaterialDialog(it).show {
this.cancelable(false)
cornerRadius(res = R.dimen.dp_10)
customView(R.layout.payconfirm_dialog_layout, scrollable = false, noVerticalPadding = true, horizontalPadding = false)
customView(
R.layout.payconfirm_dialog_layout,
scrollable = false,
noVerticalPadding = true,
horizontalPadding = false
)
getCustomView().findViewById<TextView>(R.id.tv_pay_finish).setOnClickListener {
showLoadingDialog(resources.getString(R.string.QueryingPaymentResult))
// viewModel.biLaiPayStatus(outTradeNo)
@ -791,6 +832,7 @@ class RechargeFragment : BaseFragment() {
}
}
}
var dialogDoMainChoose: DialogDoMainChoose? = null
private fun showDomainList() {
try {
@ -804,11 +846,14 @@ class RechargeFragment : BaseFragment() {
dialogDoMainChoose?.setOnTryButtonListener(object :
DialogDoMainChoose.OnTryButtonListener {
override fun tryButton() {
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val username = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val phToken = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
// viewModel.getPointCardSurplus(username, phToken)
val userId = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_USER_ID)!!
val userId = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_USER_ID)!!
viewModel.getPhRechargeInfo(username, phToken, userId)
}
@ -827,6 +872,7 @@ class RechargeFragment : BaseFragment() {
e.printStackTrace()
}
}
override fun httpFailure(httpStatus: HttpStatus.Failure) {
if (::rxDialogShapeLoading.isInitialized && rxDialogShapeLoading.isShowing) {
rxDialogShapeLoading.cancel()
@ -844,8 +890,10 @@ class RechargeFragment : BaseFragment() {
pointTv.visibility = View.VISIBLE
pointTv.text = resources.getString(R.string.retry)
pointTv.setOnClickListener {
val username = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val username = MMKV.defaultMMKV()
.decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val phToken =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
viewModel.getPointCardSurplus(username, phToken)
}
resources.getString(R.string.AbnormalPointCard)
@ -885,6 +933,7 @@ class RechargeFragment : BaseFragment() {
HttpReqType.BILAIPAYSTATUS -> {
resources.getString(R.string.paymentResultsFailed)
}
HttpReqType.WEBPAYQUERY -> {
resources.getString(R.string.paymentResultsFailed)
}
@ -892,10 +941,12 @@ class RechargeFragment : BaseFragment() {
HttpReqType.BILAIPAY -> {
resources.getString(R.string.paymentResultsFailed)
}
HttpReqType.StripeType -> {
hideLoading()
resources.getString(R.string.NoPaymentReceipt)
}
else -> {
hideLoading()
Logger.d("${httpStatus.reqType}${resources.getString(R.string.RequestException)}${httpStatus.msg}")
@ -936,7 +987,8 @@ class RechargeFragment : BaseFragment() {
selectedGradeID = selectedGrade!!.id!!
}
val decimalFormat = DecimalFormat("¥#0.00")
tv_pay.text = resources.getString(R.string.PayNow)+"(${decimalFormat.format(amount)})"
tv_pay.text =
resources.getString(R.string.PayNow) + "(${decimalFormat.format(amount)})"
// if (pointCardSurplusSwitch.isChecked) {
// val point = pointCard.toFloat()
// if (amount > point) {
@ -988,6 +1040,7 @@ class RechargeFragment : BaseFragment() {
}
super.onActivityResult(requestCode, resultCode, data)
}
@OptIn(DelicateCoroutinesApi::class)
private fun startCheckout() {
GlobalScope.launch {
@ -1007,12 +1060,14 @@ class RechargeFragment : BaseFragment() {
RxToast.info(getString(R.string.PaymentCompleted))
}
}
StripeIntent.Status.RequiresAction -> {
Log.i("startCheckout", "RequiresAction")
runOnUiThread {
RxToast.info(getString(R.string.PaymentCancellation))
}
}
else -> {
Log.i("startCheckout", "status::${paymentIntent.status}")
}
@ -1028,6 +1083,7 @@ class RechargeFragment : BaseFragment() {
)
}
}
private fun showLoading(str: String, context: Context) {
val message = if (TextUtils.isEmpty(str)) "进行中..." else str
if (baseLoading == null) {

File diff suppressed because it is too large Load Diff