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 +++++++
 app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt         |    2 
 app/src/main/java/com/sinata/xqmuse/network/entity/ThirdPayInfo.kt      |   27 +++++
 app/src/main/res/layout/activity_recharge.xml                           |    2 
 app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt              |   26 ++---
 app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt         |   44 +++++++-
 app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt             |    2 
 app/src/main/java/com/sinata/xqmuse/network/Apis.kt                     |    3 
 app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt              |   42 ++++++--
 app/src/main/res/mipmap-xxhdpi/bg_guide.jpg                             |    0 
 app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt  |   17 ++-
 app/src/main/java/com/sinata/xqmuse/ui/discovery/PlaceDetailActivity.kt |    2 
 /dev/null                                                               |    0 
 app/src/main/java/com/sinata/xqmuse/network/entity/BankInfo.kt          |    1 
 app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt          |   20 ++--
 app/src/main/res/layout/activity_buy_course.xml                         |    1 
 app/src/main/res/layout/activity_offline_course.xml                     |    5 
 app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt           |    5 +
 app/src/main/java/com/sinata/xqmuse/MainActivity.kt                     |    3 
 app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt      |   37 +++++++
 app/src/main/java/com/sinata/xqmuse/utils/extention/WeparkEx.kt         |    2 
 app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java          |    2 
 app/src/main/java/com/sinata/xqmuse/network/ApiService.kt               |   18 +--
 23 files changed, 224 insertions(+), 75 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
index 7cf6d92..f9365a9 100644
--- a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
@@ -361,7 +361,8 @@
             tab_bar.currentTab = 3
             onTabSelect(3)
         }else if(e.code == Const.EventCode.APP_FOREGROUND){
-            bgPlayer?.resume()
+            if (voice==null)
+                bgPlayer?.resume()
         }else if(e.code == Const.EventCode.APP_BACKGROUND){
             bgPlayer?.pause()
         }else if(e.code == Const.EventCode.CHANGE_BGM){
diff --git a/app/src/main/java/com/sinata/xqmuse/network/ApiService.kt b/app/src/main/java/com/sinata/xqmuse/network/ApiService.kt
index 4e3001c..d3edf10 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/ApiService.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/ApiService.kt
@@ -58,14 +58,6 @@
     ): Flowable<ResultData<Coupon>>
 
     @FormUrlEncoded
-    @POST(Apis.pay)
-    fun pay(
-        @Field("id") id: String,
-        @Field("payType") payType : Int,
-        @Field("buyType") buyType: Int
-    ): Flowable<ResultData<PayInfo>>
-
-    @FormUrlEncoded
     @POST(Apis.myFind)
     fun myFind(
         @Field("pageNum") pageNum: Int,
@@ -435,6 +427,11 @@
         @Query("minuteLook") minuteLook: Int = 0 //用不到分
     ): Flowable<ResultData<Any>>
 
+    @POST(Apis.queryPayment)
+    fun queryPayment(
+        @Query("orderId") orderId: String
+    ): Flowable<ResultData<String>>
+
     @POST(Apis.isFirst)
     fun isFirst(): Flowable<ResultData<Boolean>>
 
@@ -463,8 +460,9 @@
         @Query("amount") amount: Double?,
         @Query("receiverId") receiverId: String?,
         @Query("targetId") targetId: String?,
-        @Query("vipType") vipType: Int?
-    ): Flowable<ResultData<PayInfo>>
+        @Query("vipType") vipType: Int?,
+        @Query("orderId") orderId: String?
+    ): Flowable<ResultData<ThirdPayInfo>>
 
     @POST(Apis.updateUserAvatar)
     fun updateUserAvatar(
diff --git a/app/src/main/java/com/sinata/xqmuse/network/Apis.kt b/app/src/main/java/com/sinata/xqmuse/network/Apis.kt
index 0175c49..f1e6e1d 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/Apis.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/Apis.kt
@@ -59,7 +59,6 @@
     const val successOrderVoice = "meditation/client/meditation/meditation/successOrder"
     const val saveViewingHistory = "user/user/app-user-viewing-history/saveViewingHistory"
 
-
     /**
      * 我的
      */
@@ -110,7 +109,6 @@
     const val getCoursePageList = "course/client/course/tutor-special-column/getCoursePageList"
     const val getPayCourseInfoById = "course/client/course/course/getPayCourseInfoById"
     const val collectCourse = "course/client/course/course/collectCourse"
-    const val pay = "base/sports/pay"
     const val success = "base/sports/success"
     const val queryPhysical = "account/api/startCource/queryPhysical"
     const val exit = "base/sports/exit"
@@ -123,6 +121,7 @@
     const val successOrder = "course/client/course/course/successOrder"
     const val studyPageByChapterId = "course/client/course/course/studyPageByChapterId"
     const val saveCourseStudyHistory = "user/user/app-user-viewing-history/saveCourseStudyHistory"
+    const val queryPayment = "order/client/order/order/queryPayment"
 
 
     /**
diff --git a/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt b/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt
index c2a442c..4f9bb82 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt
@@ -28,17 +28,6 @@
     }
 
     /**
-     * 支付
-     */
-    fun pay(
-        id: String,
-        payType: Int,
-        buyType: Int
-    ): Flowable<ResultData<PayInfo>> {
-        return request().pay(id,payType, buyType)
-    }
-
-    /**
      * 支付结果
      */
     fun success(
@@ -183,8 +172,8 @@
         return request().bankList()
     }
 
-    fun addBank(bank: String,name: String,phone: String,idCard:String,num: String): Flowable<ResultData<Any>> {
-        return request().addBank(Gson().toJson(BankInfo(bank,num,name,phone,idCard)))
+    fun addBank(bank: String,name: String,phone: String,idCard:String,num: String,code: String): Flowable<ResultData<Any>> {
+        return request().addBank(Gson().toJson(BankInfo(bank,num,name,phone,idCard,code)))
     }
 
     fun deleteBank(id: String): Flowable<ResultData<Any>> {
@@ -504,6 +493,13 @@
         return request().saveCourseStudyHistory(id,isOver,secondLook)
     }
 
+    /**
+     * 查询支付状态
+     */
+    fun queryPayment(id: String): Flowable<ResultData<String>> {
+        return request().queryPayment(id)
+    }
+
     fun isFirst(): Flowable<ResultData<Boolean>> {
         return request().isFirst()
     }
@@ -593,8 +589,8 @@
     /**
      * 支付
      */
-    fun placeOrder(orderFrom:Int,payType:Int,balanceFlag:Int,amount:Double?,receiverId:String?,targetId:String?,vipType:Int?): Flowable<ResultData<PayInfo>> {
-        return request().placeOrder(orderFrom, payType, balanceFlag, amount, receiverId, targetId, vipType)
+    fun placeOrder(orderFrom:Int,payType:Int,balanceFlag:Int,amount:Double?,receiverId:String?,targetId:String?,vipType:Int?,orderId:String? = null): Flowable<ResultData<ThirdPayInfo>> {
+        return request().placeOrder(orderFrom, payType, balanceFlag, amount, receiverId, targetId, vipType,orderId)
     }
 
     /**
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/BankInfo.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/BankInfo.kt
index 68978ea..1ce812f 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/BankInfo.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/BankInfo.kt
@@ -6,5 +6,6 @@
     val cardholder: String,
     val cellPhone: String,
     val identityCard: String,
+    val code: String,
     val id: String?=null
 )
\ No newline at end of file
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/ThirdPayInfo.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/ThirdPayInfo.kt
new file mode 100644
index 0000000..aa73994
--- /dev/null
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/ThirdPayInfo.kt
@@ -0,0 +1,27 @@
+package com.sinata.xqmuse.network.entity
+
+import android.content.Context
+import com.sinata.xqmuse.utils.Const
+import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram
+import com.tencent.mm.opensdk.openapi.WXAPIFactory
+
+data class ThirdPayInfo(
+    val id: String,
+    val orderId: String,
+    val path: String,
+    val payAmt: String,
+    val payInfo: String,
+    val appId: String,
+    val orgId: String,
+    val qrcodeUrl: String,
+    val zeroFlag: Int
+){
+    fun jumpToWx(context: Context){
+        val api = WXAPIFactory.createWXAPI(context, Const.WX_APP_ID)
+        val req = WXLaunchMiniProgram.Req()
+        req.userName = orgId // 填小程序原始id
+        req.path = path
+        req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE// 可选打开 开发版,体验版和正式版
+        api.sendReq(req)
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt
index c2b95a3..cf150bc 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt
@@ -57,15 +57,15 @@
     }
 
     fun getLevelName() = when(treeLevelType){ //1=种子 2=发芽 3=幼苗 4=小树苗 5=中等树苗 6=小树 7=中树 8=大树 9=成熟的大树 10=参天大树
-        2-> "发芽"
-        3-> "幼苗"
-        4-> "小树苗"
-        5-> "中等树苗"
-        6-> "小树"
-        7-> "中树"
-        8-> "大树"
-        9-> "成熟的大树"
-        10->"参天大树"
-        else->"种子"
+        2-> "恭喜您,种子发芽了,爱的旅程已经开始,为你加油!"
+        3-> "幼苗拔地而起,智慧悄然萌发,前方的道路,更加的明亮,继续努力吧!"
+        4-> "树苗在成长,内心变得更加的柔软包容。未来正在向你招手。"
+        5-> "小树扎下了深深的根,离爱的梦想越来越近,继续坚持吧。"
+        6-> "大树已枝繁叶茂,自由的伸展,你的努力成就了这份美好,未来将更加的璀璨。"
+        7-> "智慧之花即将绽放,满载着希望与能量,前路无限的可能!"
+        8-> "恭喜你,智慧的花朵已经绽放,让我们走在充满芬芳的道路上吧!"
+        9-> "智慧之花开满枝头,满满的活力和美好,向你涌来了"
+        10->"真爱的果实已挂满枝头,丰盛而充实,人生如此美好,感谢您的浇灌!"
+        else->"亲爱的家人,生命之树的种子已植入这片沃土,请以农夫的心态用心浇灌,为你加油哦。"
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt
index 970f3d5..71300ed 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt
@@ -22,6 +22,7 @@
 import com.sinata.xqmuse.utils.pay.PayListener
 import com.umeng.socialize.bean.SHARE_MEDIA
 import kotlinx.android.synthetic.main.activity_buy_course.*
+import org.jetbrains.anko.browse
 import org.jetbrains.anko.startActivity
 import org.jetbrains.anko.toast
 
@@ -32,6 +33,7 @@
     private val fromDetail by lazy { intent.getBooleanExtra("fromDetail",true) }
     private val data by lazy { intent.getParcelableExtra<ConfirmOrder>("data") }
     private var receiveId:String? = null
+    private var orderId = ""
 
     override fun initClick() {
         tv_search.setOnClickListener {
@@ -112,8 +114,13 @@
     private fun pay(way:Int) {
         tv_action.isEnabled = false
         showDialog()
-        HttpManager.placeOrder(2,way,if (rb_balance.isChecked) 1 else 2,null,receiveId,data?.id?:"",null).request(this,success = {_,data->
-            onPaySuccess()
+        HttpManager.placeOrder(2,way,if (rb_balance.isChecked) 1 else 2,null,receiveId,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
         }
@@ -161,9 +168,35 @@
             tv_total.text = generalPrice
             val s = "余额抵扣 当前可用 ¥$balance"
             rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyCourseActivity,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)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt
index 0181b87..35d28d9 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt
@@ -1,5 +1,6 @@
 package com.sinata.xqmuse.ui.course
 
+import android.view.View
 import android.webkit.WebChromeClient
 import android.webkit.WebSettings
 import android.webkit.WebViewClient
@@ -31,6 +32,7 @@
     override fun setContentView() = R.layout.activity_offline_course
 
     private val data by lazy { intent.getParcelableExtra<CourseDetail>("data") }
+    private var first = true //第一次 加载视频封面
 
     override fun initClick() {
         iv_back.setOnClickListener { finish() }
@@ -90,7 +92,8 @@
                 controller.addDefaultControlComponent(courseTitle, false)
                 mVideoView.setVideoController(controller) //设置控制器
                 mVideoView.setUrl(detailUrl) //设置视频地址
-                GlideUtil.load(this@OfflineCourseActivity, coverUrl, iv_cover, 0)
+//                GlideUtil.load(this@OfflineCourseActivity, detailUrl, iv_cover, 0)
+                mVideoView.start()
             }else{
                 cl_title.gone()
                 iv_cover.gone()
@@ -122,12 +125,16 @@
     override fun onPlayStateChanged(playState: Int) {
         when(playState){
             STATE_PLAYING->{
-                iv_cover.gone()
-                ivPlay.gone()
+                if (first){
+                    mVideoView.pause()
+//                    iv_cover.gone()
+                    ivPlay.visible()
+                    first = false
+                }
             }
             STATE_PLAYBACK_COMPLETED->{
-                iv_cover.visible()
-                ivPlay.visible()
+//                iv_cover.visible()
+//                ivPlay.visible()
             }
         }
     }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/discovery/PlaceDetailActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/discovery/PlaceDetailActivity.kt
index 6d89f72..841da7c 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/discovery/PlaceDetailActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/discovery/PlaceDetailActivity.kt
@@ -100,7 +100,7 @@
                 banner.currentItem = 1
                 tv_name.text = hallName
                 tv_phone.text = contactNumber
-                tv_address.text = address
+                tv_address.text = addressDetail
                 tv_time.text = "营业时间:$businessHours"
                 val sHead =
                     "<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
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)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt
index a2f3332..829389c 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt
@@ -62,7 +62,7 @@
                 return@setOnClickListener
             }
             tv_action.isEnabled = false
-            HttpManager.addBank(bank, name, phone, idCard, num).request(this,success = {_,_->
+            HttpManager.addBank(bank, name, phone, idCard, num,code).request(this,success = {_,_->
                 setResult(RESULT_OK)
                 myToast("添加成功")
                 finish()
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
index a608652..074deff 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
@@ -18,6 +18,7 @@
 import com.sinata.xqmuse.utils.pay.PayUtil
 import kotlinx.android.synthetic.main.activity_recharge.*
 import org.greenrobot.eventbus.EventBus
+import org.jetbrains.anko.browse
 import org.jetbrains.anko.sdk27.coroutines.onClick
 import org.jetbrains.anko.startActivity
 import org.jetbrains.anko.toast
@@ -26,8 +27,9 @@
 class RechargeActivity : TransparentStatusBarActivity(),PayListener {
     override fun setContentView() = R.layout.activity_recharge
 
-    private var way = 1
+    private var way = 2
     private var money = 0.0
+    private var orderId = ""
 
     override fun initClick() {
         tv_way.setOnClickListener {
@@ -79,15 +81,34 @@
         toast("%s充值%.2f".format(if (payType == 1) "微信" else "支付宝",money))
         HttpManager.placeOrder(4,payType,2,money,null,null,null )
             .request(this){_,data->
-                if (payType == 1){
-                    PayUtil.initWeChatPay(this,Const.WX_APP_ID)
-                    PayUtil.weChatPay(data!!)
-                }else{
-                    PayUtil.aliPay(this,data?.orderInfo?:"")
-                }
-                onPaySuccess() //todo test
-
+                orderId = data?.orderId?:""
+                if (payType == 1)
+                    data?.jumpToWx(this)
+                else
+                    browse(data?.qrcodeUrl?:"")
             }
+    }
+
+    private fun checkPayStatus(){
+        if (!orderId.isNullOrEmpty()){
+            if (!orderId.isNullOrEmpty()){
+                HttpManager.queryPayment(orderId).request(this){_,data->
+                    when(data){
+                        "pending"->{
+                            toast("未查询到支付结果,如已付款请忽略")
+                        }
+                        "succeeded"->{
+                            toast("支付成功")
+                            onPaySuccess()
+                        }
+                        "failed"->{
+                            toast("支付失败")
+                        }
+                    }
+                }
+                orderId = ""
+            }
+        }
     }
 
     override fun onPaySuccess() {
@@ -103,6 +124,11 @@
     override fun onPayError(msg: String) {
     }
 
+    override fun onResume() {
+        super.onResume()
+        checkPayStatus()
+    }
+
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
         if (resultCode == RESULT_OK){
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt
index 3b6f8a9..b4f7307 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt
@@ -22,6 +22,7 @@
 import kotlinx.android.synthetic.main.activity_vip.*
 import org.greenrobot.eventbus.EventBus
 import org.jetbrains.anko.backgroundResource
+import org.jetbrains.anko.browse
 import org.jetbrains.anko.toast
 
 class VipActivity : TransparentStatusBarActivity(), PayListener {
@@ -29,6 +30,7 @@
 
     private val price = arrayListOf<Double>()
     private val adapter = VipPriceAdapter(price)
+    private var orderId = ""
 
     override fun initClick() {
         iv_back.setOnClickListener { finish() }
@@ -55,16 +57,11 @@
                     override fun onResult(rst: String) {
                         HttpManager.placeOrder(3,rst.toInt(),2,price[adapter.checked],null,null,adapter.checked+1 )
                             .request(this@VipActivity){_,data->
-                                if (rst == "1"){
-                                    PayUtil.initWeChatPay(this@VipActivity,Const.WX_APP_ID)
-                                    PayUtil.weChatPay(data!!)
-                                }else{
-                                    PayUtil.aliPay(this@VipActivity,data?.orderInfo?:"")
-                                    tv_action.postDelayed({ //TEST CALLBACK
-                                        onPaySuccess()
-                                    },3000)
-
-                                }
+                                orderId = data?.orderId?:""
+                                if (rst == "1")
+                                    data?.jumpToWx(this@VipActivity)
+                                else
+                                    browse(data?.qrcodeUrl?:"")
                             }
                     }
                 },enableBalance = false)
@@ -137,6 +134,26 @@
         }
     }
 
+    private fun checkPayStatus(){
+        if (!orderId.isNullOrEmpty()){
+            HttpManager.queryPayment(orderId).request(this){_,data->
+                when(data){
+                    "pending"->{
+                        toast("未查询到支付结果,如已付款请忽略")
+                    }
+                    "succeeded"->{
+                        toast("支付成功")
+                        onPaySuccess()
+                    }
+                    "failed"->{
+                        toast("支付失败")
+                    }
+                }
+            }
+            orderId = ""
+        }
+    }
+
     override fun onDestroy() {
         super.onDestroy()
         PayUtil.unregisterApp()
@@ -153,4 +170,9 @@
 
     override fun onPayError(msg: String) {
     }
+
+    override fun onResume() {
+        super.onResume()
+        checkPayStatus()
+    }
 }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt
index c20532f..7b9e93a 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt
@@ -19,6 +19,7 @@
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 import org.jetbrains.anko.startActivity
+import org.jetbrains.anko.toast
 
 class WalletActivity : BaseActivity() {
     private var balance = 0.0
@@ -35,10 +36,14 @@
         iv_back.setOnClickListener { finish() }
 
         tv_action.setOnClickListener {
+            toast("暂未开放")
+            return@setOnClickListener
             startActivity<RechargeActivity>()
         }
 
         tv_withdraw.clickDelay {
+            toast("暂未开放")
+            return@clickDelay
             startActivity<WithdrawActivity>("balance" to balance)
         }
 
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
index 6175656..1e234ac 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
@@ -107,7 +107,7 @@
                             tree!!.treeLevelType = data.treeLevelType
                             showTreeAnim(tree!!.getTreeApng(),true)
                             audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio())
-                            TreeTipDialog.show(childFragmentManager,"升级","恭喜!你的树苗已升级为${tree!!.getLevelName()}阶段!")
+                            TreeTipDialog.show(childFragmentManager,"生命之树",tree!!.getLevelName())
                         }else if (tree!!.status != 2){
                             tree!!.status = 2
                             showTreeAnim(tree!!.getTreeApng(),tree!!.treeLevelType != 1)
diff --git a/app/src/main/java/com/sinata/xqmuse/utils/extention/WeparkEx.kt b/app/src/main/java/com/sinata/xqmuse/utils/extention/WeparkEx.kt
index bc3278b..1bb6087 100644
--- a/app/src/main/java/com/sinata/xqmuse/utils/extention/WeparkEx.kt
+++ b/app/src/main/java/com/sinata/xqmuse/utils/extention/WeparkEx.kt
@@ -30,7 +30,6 @@
 import top.zibin.luban.Luban
 import top.zibin.luban.OnCompressListener
 import java.io.File
-import java.lang.Exception
 
 
 fun String.uploadWithCompress(act:BaseActivity,callback: StringCallback){
@@ -129,3 +128,4 @@
     } else
         true
 }
+
diff --git a/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java b/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java
index 6617046..b46a880 100644
--- a/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java
+++ b/app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java
@@ -72,7 +72,7 @@
         if (url.endsWith("mp4") || url.endsWith("AVI") || url.endsWith("MP4") || url.endsWith("avi")) {
             new Thread(() -> {
                 try {
-                    Bitmap myBitmap = Glide.with(context).asBitmap().load(url).submit(100, 100).get();
+                    Bitmap myBitmap = Glide.with(context).asBitmap().load(url).submit(390, 310).get();
                     new Handler(Looper.getMainLooper()).post(() -> {
                         loadBM(context,myBitmap,imageView,num);
                     });
diff --git a/app/src/main/res/layout/activity_buy_course.xml b/app/src/main/res/layout/activity_buy_course.xml
index 7d5db5c..3ae77f2 100644
--- a/app/src/main/res/layout/activity_buy_course.xml
+++ b/app/src/main/res/layout/activity_buy_course.xml
@@ -338,7 +338,6 @@
                     android:layout_marginTop="18dp"
                     android:drawableStart="@mipmap/pay_wallet"
                     android:drawableEnd="@drawable/selector_check_pay"
-                    android:checked="true"
                     android:drawablePadding="7dp"/>
                 <RadioButton
                     android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/activity_offline_course.xml b/app/src/main/res/layout/activity_offline_course.xml
index 5127906..0a59aeb 100644
--- a/app/src/main/res/layout/activity_offline_course.xml
+++ b/app/src/main/res/layout/activity_offline_course.xml
@@ -16,6 +16,7 @@
         android:layout_height="0dp"
         app:layout_constraintDimensionRatio="390:310"
         android:id="@+id/iv_cover"
+        android:visibility="gone"
         app:layout_constraintTop_toTopOf="parent"/>
     <ImageView
         android:layout_width="42dp"
@@ -24,8 +25,8 @@
         android:src="@mipmap/play_detail"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@id/iv_cover"
-        app:layout_constraintBottom_toBottomOf="@id/iv_cover"/>
+        app:layout_constraintTop_toTopOf="@id/mVideoView"
+        app:layout_constraintBottom_toBottomOf="@id/mVideoView"/>
     <androidx.constraintlayout.widget.Barrier
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/activity_recharge.xml b/app/src/main/res/layout/activity_recharge.xml
index 808c122..cb5f6b9 100644
--- a/app/src/main/res/layout/activity_recharge.xml
+++ b/app/src/main/res/layout/activity_recharge.xml
@@ -18,7 +18,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:id="@+id/tv_way"
-            android:text="微信"
+            android:text="支付宝"
             android:layout_marginHorizontal="10dp"
             android:drawableEnd="@mipmap/more_black"
             android:paddingVertical="13dp"
diff --git a/app/src/main/res/mipmap-xxhdpi/bg_guide.jpg b/app/src/main/res/mipmap-xxhdpi/bg_guide.jpg
new file mode 100644
index 0000000..3528026
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/bg_guide.jpg
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/bg_guide.png b/app/src/main/res/mipmap-xxhdpi/bg_guide.png
deleted file mode 100644
index 0ba4277..0000000
--- a/app/src/main/res/mipmap-xxhdpi/bg_guide.png
+++ /dev/null
Binary files differ

--
Gitblit v1.7.1