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 @@
识别
检查
取消成功
+ 取消支付
收货成功
绑定成功
修改手机号