Parcourir la source

1.添加获取支付状态接口

王鹏鹏 il y a 2 ans
Parent
commit
fc087872e6

+ 0 - 3
baselib/src/main/java/com/yingyangfly/baselib/utils/RxBusCodes.kt

@@ -14,8 +14,5 @@ object RxBusCodes {
     //获取训练内容
     const val GetTrainContent = 9002
 
-    //支付套餐包
-    const val ORDERPAY = 9003
-
 
 }

+ 12 - 10
workbenches/src/main/java/com/yingyang/workbenches/dialog/PurchaseServicesDialog.kt

@@ -1,25 +1,22 @@
 package com.yingyang.workbenches.dialog
 
 import android.annotation.SuppressLint
-import android.graphics.Bitmap
-import android.os.Binder
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.Button
-import android.widget.ImageView
 import android.widget.TextView
 import androidx.appcompat.widget.AppCompatImageView
-import androidx.appcompat.widget.AppCompatTextView
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.fragment.app.DialogFragment
 import com.bumptech.glide.Glide
+import com.google.zxing.common.BitmapUtils
 import com.yingyang.workbenches.R
 import com.yingyang.workbenches.entity.GetPayImageEvent
+import com.yingyang.workbenches.entity.GetQrCodeEvent
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.baselib.ext.show
-import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.ViewTool
 import gorden.rxbus2.RxBus
 import gorden.rxbus2.Subscribe
@@ -30,6 +27,7 @@ import gorden.rxbus2.ThreadMode
  */
 class PurchaseServicesDialog : DialogFragment() {
 
+    private var orderNo = ""
     private var packageId = ""
     private var payMoney = ""
     private var packageName = ""
@@ -86,10 +84,12 @@ class PurchaseServicesDialog : DialogFragment() {
         paySuccessBtn = rootView.findViewById(R.id.paySuccessBtn)
         payImage?.show(false)
         paySuccessBtn?.show(false)
-        tvPackageMoney?.text = "您购买的是" + payMoney + "元" + packageName
+        tvPackageMoney?.text = "您购买的是$payMoney$packageName"
+        //微信支付
         weChatLayout?.setOnSingleClickListener {
             RxBus.get().send(GetPayImageEvent(packageId, "1", payMoney, packageName))
         }
+        //支付宝支付
         alipayLayout?.setOnSingleClickListener {
             RxBus.get().send(GetPayImageEvent(packageId, "2", payMoney, packageName))
         }
@@ -108,9 +108,11 @@ class PurchaseServicesDialog : DialogFragment() {
         RxBus.get().unRegister(this)
     }
 
-    @Subscribe(code = RxBusCodes.ORDERPAY, threadMode = ThreadMode.MAIN)
-    fun getPayImage(image: Bitmap) {
-        if (image != null) {
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun getPayImage(event: GetQrCodeEvent) {
+        orderNo = event.orderNo
+        val bitmap = BitmapUtils.create2DCode(event.qrCode)
+        if (bitmap != null) {
             tvPackageMoney?.show(false)
             tvPay?.show(false)
             weChatLayout?.show(false)
@@ -118,7 +120,7 @@ class PurchaseServicesDialog : DialogFragment() {
             payImage?.show(false)
             payImage?.show(true)
             paySuccessBtn?.show(true)
-            Glide.with(this).load(image).into(payImage!!)
+            Glide.with(this).load(bitmap).into(payImage!!)
         }
     }
 }

+ 24 - 0
workbenches/src/main/java/com/yingyang/workbenches/entity/GetQrCodeEvent.java

@@ -0,0 +1,24 @@
+package com.yingyang.workbenches.entity;
+
+/**
+ * 生成支付二维码
+ * @author 王鹏鹏
+ */
+public class GetQrCodeEvent {
+
+    private String orderNo;
+    private String qrCode;
+
+    public GetQrCodeEvent(String orderNo, String qrCode) {
+        this.orderNo = orderNo;
+        this.qrCode = qrCode;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public String getQrCode() {
+        return qrCode;
+    }
+}

+ 8 - 0
workbenches/src/main/java/com/yingyang/workbenches/net/WorkbenchesApiService.kt

@@ -91,4 +91,12 @@ interface WorkbenchesApiService {
         @Body requestBody: RequestBody
     ): BaseResp<PayImageBean>
 
+    /**
+     * 获取支付状态
+     */
+    @POST("app/pay/selectPayResult")
+    suspend fun getSelectPayResult(
+        @Query("orderNo") orderNo: String
+    ): BaseResp<PayImageBean>
+
 }

+ 2 - 7
workbenches/src/main/java/com/yingyang/workbenches/servicepackage/ServicePackageActivity.kt

@@ -2,12 +2,12 @@ package com.yingyang.workbenches.servicepackage
 
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
-import com.google.zxing.common.BitmapUtils
 import com.yingyang.workbenches.adapter.ServicePackageListAdapter
 import com.yingyang.workbenches.adapter.ServicePackageTypeAdapter
 import com.yingyang.workbenches.databinding.ActivityServicePackageBinding
 import com.yingyang.workbenches.dialog.PurchaseServicesDialog
 import com.yingyang.workbenches.entity.GetPayImageEvent
+import com.yingyang.workbenches.entity.GetQrCodeEvent
 import com.yingyang.workbenches.entity.PackageInfoBean
 import com.yingyang.workbenches.entity.TrainTypeBean
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
@@ -15,8 +15,6 @@ import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
-import com.yingyangfly.baselib.utils.LiveEventBusUtil
-import com.yingyangfly.baselib.utils.RxBusCodes
 import gorden.rxbus2.RxBus
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
@@ -41,7 +39,6 @@ class ServicePackageActivity :
     private var servicePackageList = mutableListOf<PackageInfoBean>()
     private val servicePackageListAdapter by lazy { ServicePackageListAdapter() }
 
-
     override fun initViews() {
         binding {
             rvTrainingPackage.layoutManager = GridLayoutManager(this@ServicePackageActivity, 3)
@@ -71,15 +68,13 @@ class ServicePackageActivity :
         getSelectByDictType()
     }
 
-
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun getPayImage(bean: GetPayImageEvent) {
         viewModel.getPayImage(bean, fail = {
             it.toast()
         }, success = {
             if (it != null) {
-                val bitmap = BitmapUtils.create2DCode(it.qrCode)
-                RxBus.get().send(RxBusCodes.ORDERPAY, bitmap)
+                RxBus.get().send(GetQrCodeEvent(it.orderNo, it.qrCode))
             }
         })
     }

+ 15 - 0
workbenches/src/main/java/com/yingyang/workbenches/servicepackage/ServicePackageViewModel.kt

@@ -56,4 +56,19 @@ class ServicePackageViewModel : BaseViewModel() {
         success,
         fail
     )
+
+    /**
+     * 获取支付状态
+     */
+    fun getSelectPayResult(
+        orderNo: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: PayImageBean) -> Unit)? = null,
+    ) = launchFlow(false) {
+        WORKBENCHES_API.getSelectPayResult(orderNo)
+    }.runUI(
+        success,
+        fail
+    )
+
 }