取消订单返回余额

This commit is contained in:
fengjignqi
2026-08-12 11:05:55 +08:00
parent 499673782c
commit c2dfa9145a
11 changed files with 83 additions and 3 deletions

Binary file not shown.

View File

@@ -3,6 +3,7 @@ package com.ck.ckcollar.app.model
import com.google.gson.JsonElement
class OrderPaymentModel {
var orderId: Int = 0
var orderStr: JsonElement? = null
var wxMap: JsonElement? = null
var pointsAmount: Double = 0.0

View File

@@ -69,6 +69,9 @@ class PayOrderActivity : CKBaseActivity() {
var selectPoints = false
var confirmOrderModel : ConfirmOrderModel? = null
lateinit var orderSource: String
private var isCancellingOrder = false
override fun onCreate(savedInstanceState: Bundle?) {
binding = ActivityPayOrderBinding.inflate(layoutInflater)
setContentView(binding.root)
@@ -388,7 +391,33 @@ class PayOrderActivity : CKBaseActivity() {
}
private fun handleWeChatPaymentFailed(cancelled: Boolean) {
toast(if (cancelled) "已取消微信支付" else getString(R.string.payment_faild))
if (cancelled) {
cancelPendingOrder()
} else {
toast(getString(R.string.payment_faild))
}
}
private fun cancelPendingOrder() {
if (isCancellingOrder) return
isCancellingOrder = true
showProgeassDialog(getString(R.string.cancel))
TTHttpClient.post(this, "取消待支付订单", TTRequestParam().apply {
add(TTRequestData("orderId", model.id))
}, object : ICallback {
override fun onSuccess(data: String) {
hiddenProgeassDialog()
toast(getString(R.string.cancel_pay_cussess))
finish(DataCollection(), 1002)
}
override fun onFailed(code: String, msg: String) {
isCancellingOrder = false
hiddenProgeassDialog()
toast(msg)
}
})
}
private fun canPointsCoverPayAmount(): Boolean {
@@ -425,6 +454,8 @@ class PayOrderActivity : CKBaseActivity() {
// 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
toast(getString(R.string.payment_success))
finish(DataCollection(),1002)
} else if (TextUtils.equals(resultStatus, "6001")) {
cancelPendingOrder()
} else {
toast(getString(R.string.payment_faild))
}

View File

@@ -79,6 +79,10 @@ class OrderActivity : CKBaseActivity() {
lateinit var orderSource: String
var flag = 0
private var currentOrderId = 0
private var isCancellingOrder = false
override fun onCreate(savedInstanceState: Bundle?) {
binding = ActivityOrderBinding.inflate(layoutInflater)
setContentView(binding.root)
@@ -87,6 +91,11 @@ class OrderActivity : CKBaseActivity() {
setTitleText(getString(R.string.confirm_order))
}
override fun onResume() {
super.onResume()
var abc = 0;
}
override fun initView() {
LiveDataBus.get().with(RechargeActivity.WX_PAY_RESULT, Int::class.java).observe(this) { result ->
if (result == 0) {
@@ -314,6 +323,7 @@ class OrderActivity : CKBaseActivity() {
TTHttpClient.postJson(this, "下单", param.toString(), object : ICallback {
override fun onSuccess(data: String) {
val paymentModel = Gson().fromJson(data, OrderPaymentModel::class.java)
currentOrderId = paymentModel.orderId
if ("0".equals(this@OrderActivity.payType)) {
val weChatPayParams = paymentModel.wxMap
if (weChatPayParams == null || !weChatPayParams.isJsonObject) {
@@ -376,7 +386,7 @@ class OrderActivity : CKBaseActivity() {
// 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
handlePaymentSuccess()
} else {
handlePaymentFailed(false)
handlePaymentFailed(TextUtils.equals(resultStatus, "6001"))
}
}
}
@@ -434,7 +444,44 @@ class OrderActivity : CKBaseActivity() {
}
private fun handlePaymentFailed(cancelled: Boolean) {
toast(if (cancelled) "已取消微信支付" else getString(R.string.payment_faild))
if (cancelled) {
cancelPendingOrder()
return
}
toast(getString(R.string.payment_faild))
openPendingOrderList()
}
private fun cancelPendingOrder() {
if (isCancellingOrder) return
if (currentOrderId <= 0) {
toast(getString(R.string.payment_faild))
openPendingOrderList()
return
}
isCancellingOrder = true
showProgeassDialog(getString(R.string.cancel))
TTHttpClient.post(this, "取消待支付订单", TTRequestParam().apply {
add(TTRequestData("orderId", currentOrderId))
}, object : ICallback {
override fun onSuccess(data: String) {
hiddenProgeassDialog()
toast(getString(R.string.cancel_pay_cussess))
openPendingOrderList()
}
override fun onFailed(code: String, msg: String) {
hiddenProgeassDialog()
toast(msg)
openPendingOrderList()
}
})
}
private fun openPendingOrderList() {
toActivity(
MyOrderActivity::class.java,
DataCollection().apply { add(Data("pos", "1")) }

View File

@@ -22,6 +22,7 @@
<string name="see">识别</string>
<string name="check">检查</string>
<string name="cancel_cussess">取消成功</string>
<string name="cancel_pay_cussess">取消支付</string>
<string name="receive_cussess">收货成功</string>
<string name="bound_success">绑定成功</string>
<string name="modify_phone_number">修改手机号</string>