From 718f31c92e2029d05260810435a2c70cef6e6ce5 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 24 四月 2025 10:45:55 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt | 91 ++++++++++++++++++++++++++++++++------------- 1 files changed, 65 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt index b639f61..074deff 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt @@ -2,52 +2,56 @@ import android.app.Activity import android.content.Intent -import androidx.recyclerview.widget.GridLayoutManager -import cn.sinata.xldutils.utils.LengthFilter -import cn.sinata.xldutils.utils.SpanBuilder +import android.text.Editable +import android.text.TextWatcher import cn.sinata.xldutils.utils.myToast import com.sinata.xqmuse.R import com.sinata.xqmuse.dialog.PayDialog import com.sinata.xqmuse.network.HttpManager -import com.sinata.xqmuse.network.entity.RechargeItem import com.sinata.xqmuse.network.request -import com.sinata.xqmuse.ui.H5Activity import com.sinata.xqmuse.ui.TransparentStatusBarActivity -import com.sinata.xqmuse.ui.home.PayResultActivity -import com.sinata.xqmuse.ui.mine.adapter.RechargeAdapter import com.sinata.xqmuse.utils.Const import com.sinata.xqmuse.utils.NumberInputFilter import com.sinata.xqmuse.utils.event.EmptyEvent -import com.sinata.xqmuse.utils.extention.clickDelay import com.sinata.xqmuse.utils.interfaces.StringCallback import com.sinata.xqmuse.utils.pay.PayListener import com.sinata.xqmuse.utils.pay.PayUtil import kotlinx.android.synthetic.main.activity_recharge.* import org.greenrobot.eventbus.EventBus +import org.jetbrains.anko.browse import org.jetbrains.anko.sdk27.coroutines.onClick import org.jetbrains.anko.startActivity -import org.jetbrains.anko.startActivityForResult +import org.jetbrains.anko.toast import java.lang.Exception class RechargeActivity : TransparentStatusBarActivity(),PayListener { override fun setContentView() = R.layout.activity_recharge + private var way = 2 + private var money = 0.0 + private var orderId = "" + override fun initClick() { + tv_way.setOnClickListener { + PayDialog.show(supportFragmentManager,object : StringCallback { + override fun onResult(rst: String) { + way = rst.toInt() + tv_way.text = if (rst == "1") "微信" else "支付宝" + } + },0.0,false) + } + tv_action.onClick { val moneyS = et_money.text.toString() if (moneyS.isEmpty()) myToast("请填写充值金额") else{ try { - val money = moneyS.toDouble() + money = moneyS.toDouble() if (money == 0.0) myToast("充值金额不能为0") else{ - PayDialog.show(supportFragmentManager,object : StringCallback { - override fun onResult(rst: String) { - pay(rst.toInt(),money) - } - },money,false) + pay(way,money) } }catch (e:Exception){ myToast("充值金额有误") @@ -59,26 +63,57 @@ override fun initView() { PayUtil.addPayListener(this) et_money.filters = arrayOf(NumberInputFilter(Int.MAX_VALUE.toDouble())) + tv_action.alpha = 0.5f + et_money.addTextChangedListener(object :TextWatcher{ + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { + } + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { + } + + override fun afterTextChanged(s: Editable?) { + tv_action.alpha = if (s.isNullOrEmpty()) 0.5f else 1f + } + }) } private fun pay(payType:Int,money:Double){ - HttpManager.payCourse(null,payType,3,null,money).request(this){ _, data-> - HttpManager.pay(data?.id?:"",payType,3).request(this,false,success = {_,data-> - if (payType == 2){ - PayUtil.aliPay(this,data?.orderInfo?:"") - }else{ - PayUtil.initWeChatPay(this,Const.WX_APP_ID) - PayUtil.weChatPay(data!!) + toast("%s充值%.2f".format(if (payType == 1) "微信" else "支付宝",money)) + HttpManager.placeOrder(4,payType,2,money,null,null,null ) + .request(this){_,data-> + orderId = data?.orderId?:"" + if (payType == 1) + data?.jumpToWx(this) + else + browse(data?.qrcodeUrl?:"") + } + } + + private fun checkPayStatus(){ + if (!orderId.isNullOrEmpty()){ + if (!orderId.isNullOrEmpty()){ + HttpManager.queryPayment(orderId).request(this){_,data-> + when(data){ + "pending"->{ + toast("未查询到支付结果,如已付款请忽略") + } + "succeeded"->{ + toast("支付成功") + onPaySuccess() + } + "failed"->{ + toast("支付失败") + } + } } - }){_,msg-> - startActivityForResult<PayResultActivity>(1,"type" to PayResultActivity.TYPE_RECHARGE_FAILED,"msg" to msg) + orderId = "" } } } override fun onPaySuccess() { EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_WALLET)) //充值成功,刷新钱包 - startActivity<PayResultActivity>("type" to PayResultActivity.TYPE_RECHARGE_SUC) + startActivity<RechargeSucActivity>("money" to money,"way" to way) setResult(Activity.RESULT_OK) finish() } @@ -87,7 +122,11 @@ } override fun onPayError(msg: String) { - startActivityForResult<PayResultActivity>(1,"type" to PayResultActivity.TYPE_RECHARGE_FAILED) + } + + override fun onResume() { + super.onResume() + checkPayStatus() } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { -- Gitblit v1.7.1