diff --git a/.gradle/8.13/executionHistory/executionHistory.bin b/.gradle/8.13/executionHistory/executionHistory.bin index eb4f153..90ce878 100644 Binary files a/.gradle/8.13/executionHistory/executionHistory.bin and b/.gradle/8.13/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.13/executionHistory/executionHistory.lock b/.gradle/8.13/executionHistory/executionHistory.lock index 96791ab..c190591 100644 Binary files a/.gradle/8.13/executionHistory/executionHistory.lock and b/.gradle/8.13/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.13/fileHashes/fileHashes.bin b/.gradle/8.13/fileHashes/fileHashes.bin index 3c9fc3d..1432124 100644 Binary files a/.gradle/8.13/fileHashes/fileHashes.bin and b/.gradle/8.13/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.13/fileHashes/fileHashes.lock b/.gradle/8.13/fileHashes/fileHashes.lock index ffa1c49..a3a33b7 100644 Binary files a/.gradle/8.13/fileHashes/fileHashes.lock and b/.gradle/8.13/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.13/fileHashes/resourceHashesCache.bin b/.gradle/8.13/fileHashes/resourceHashesCache.bin index e0a32d9..8b79a73 100644 Binary files a/.gradle/8.13/fileHashes/resourceHashesCache.bin and b/.gradle/8.13/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index ee47643..2d19552 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 3795851..0e4dd89 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/app/src/main/java/com/ck/ckcollar/app/model/OrderPaymentModel.kt b/app/src/main/java/com/ck/ckcollar/app/model/OrderPaymentModel.kt index 86d96f5..5d63780 100644 --- a/app/src/main/java/com/ck/ckcollar/app/model/OrderPaymentModel.kt +++ b/app/src/main/java/com/ck/ckcollar/app/model/OrderPaymentModel.kt @@ -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 diff --git a/app/src/main/java/com/ck/ckcollar/app/ui/act/order/PayOrderActivity.kt b/app/src/main/java/com/ck/ckcollar/app/ui/act/order/PayOrderActivity.kt index fe47b80..a66d278 100644 --- a/app/src/main/java/com/ck/ckcollar/app/ui/act/order/PayOrderActivity.kt +++ b/app/src/main/java/com/ck/ckcollar/app/ui/act/order/PayOrderActivity.kt @@ -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)) } diff --git a/app/src/main/java/com/ck/ckcollar/app/ui/act/shop/OrderActivity.kt b/app/src/main/java/com/ck/ckcollar/app/ui/act/shop/OrderActivity.kt index 0b5904b..698daf1 100644 --- a/app/src/main/java/com/ck/ckcollar/app/ui/act/shop/OrderActivity.kt +++ b/app/src/main/java/com/ck/ckcollar/app/ui/act/shop/OrderActivity.kt @@ -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")) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c9ae90e..6f99f35 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -22,6 +22,7 @@ 识别 检查 取消成功 + 取消支付 收货成功 绑定成功 修改手机号