From b8d8f9b855fdd453d06d78d2565f091db208ec8e Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期二, 26 十一月 2024 19:30:59 +0800 Subject: [PATCH] 支付 --- app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt | 38 ++++++++++++++++++++++++++++++++++++-- 1 files changed, 36 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt index 8fa6ec7..199d538 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt @@ -16,6 +16,7 @@ import com.sinata.xqmuse.utils.interfaces.StringCallback import com.sinata.xqmuse.utils.pay.PayListener import kotlinx.android.synthetic.main.activity_buy_course.* +import org.jetbrains.anko.browse import org.jetbrains.anko.startActivity import org.jetbrains.anko.toast @@ -25,6 +26,7 @@ private val fromDetail by lazy { intent.getBooleanExtra("fromDetail",true) } private val id by lazy { intent.getStringExtra("id") } private var data:ConfirmOrder? = null + private var orderId = "" override fun initClick() { tv_buy_rule.clickDelay { @@ -62,8 +64,13 @@ private fun pay(way:Int) { tv_action.isEnabled = false showDialog() - HttpManager.placeOrder(1,way,if (rb_balance.isChecked) 1 else 2,null,null,data?.id?:"",null).request(this,success = {_,data-> - onPaySuccess() + HttpManager.placeOrder(1,way,if (rb_balance.isChecked) 1 else 2,null,null,data?.id?:"",null,data?.orderId).request(this,success = {_,data-> + tv_action.isEnabled = true + orderId = data?.orderId?:"" + if (way == 1) + data?.jumpToWx(this) + else + browse(data?.qrcodeUrl?:"") }){_,_-> tv_action.isEnabled = true } @@ -110,6 +117,7 @@ tv_total.text = generalPrice val s = "余额抵扣 当前可用 ¥$balance" rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyVoiceActivity,4,s.length,R.color.textColor99).build() + rb_balance.isChecked = !(balance.isNullOrEmpty()||balance.toDouble() == 0.0) } } } @@ -126,10 +134,36 @@ tv_total.text = generalPrice val s = "余额抵扣 当前可用 ¥$balance" rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyVoiceActivity,4,s.length,R.color.textColor99).build() + rb_balance.isChecked = !(balance.isNullOrEmpty()||balance.toDouble() == 0.0) } } } + private fun checkPayStatus(){ + if (!orderId.isNullOrEmpty()){ + HttpManager.queryPayment(orderId).request(this){_,data-> + when(data){ + "pending"->{ + toast("未查询到支付结果,如已付款请忽略") + } + "succeeded"->{ + toast("支付成功") + onPaySuccess() + } + "failed"->{ + toast("支付失败") + } + } + } + orderId = "" + } + } + + override fun onResume() { + super.onResume() + checkPayStatus() + } + override fun onPaySuccess() { setResult(RESULT_OK) startActivity<PaySuccessActivity>("data" to data,"fromDetail" to fromDetail,"isAudio" to true) -- Gitblit v1.7.1