Commit 3987a6c4 authored by maxiaoliang's avatar maxiaoliang

修改

parent 35b57132
...@@ -162,4 +162,12 @@ public interface IUserInfoApi { ...@@ -162,4 +162,12 @@ public interface IUserInfoApi {
@POST(NetConfig.User.URL_PAY_RIGHTS_ORDER) @POST(NetConfig.User.URL_PAY_RIGHTS_ORDER)
Observable<Response<AliPayEntity>> aliPayRights(@Query("goodsId") String goodsId, @Query("payType") String payType, @Query("phone") String phone,@Query("rechargeType") String rechargeType,@Query("skill") Boolean skill,@Query("outTradeNo") String outTradeNo); Observable<Response<AliPayEntity>> aliPayRights(@Query("goodsId") String goodsId, @Query("payType") String payType, @Query("phone") String phone,@Query("rechargeType") String rechargeType,@Query("skill") Boolean skill,@Query("outTradeNo") String outTradeNo);
/**
* 权益支付宝支付
*
* @return
*/
@POST(NetConfig.User.URL_PAY_RIGHTS_ORDER)
Observable<Response<AliPayEntity>> aliPayRights(@Query("goodsId") String goodsId, @Query("payType") String payType, @Query("phone") String phone,@Query("rechargeType") String rechargeType,@Query("skill") Boolean skill,@Query("outTradeNo") String outTradeNo,@Query("couponId") String couponId,@Query("mobileOp") String mobileOp);
} }
...@@ -21,8 +21,13 @@ class AppInEntity { ...@@ -21,8 +21,13 @@ class AppInEntity {
var tabs: List<TabEntity>? = null//tab var tabs: List<TabEntity>? = null//tab
var pay_h5_url: String = ""//支付配置 var pay_h5_url: String = ""//支付配置
var mobileOpList:List<MobileOpEntity>?=null
}
class MobileOpEntity {
var name:String?=""
var value:String?=""
} }
class PayFun : Serializable { class PayFun : Serializable {
......
...@@ -36,5 +36,6 @@ ...@@ -36,5 +36,6 @@
<color name="color_e09a9a">#E09A9A</color> <color name="color_e09a9a">#E09A9A</color>
<color name="color_b28a17">#B28A17</color> <color name="color_b28a17">#B28A17</color>
<color name="color_ddcb97">#DDCB97</color> <color name="color_ddcb97">#DDCB97</color>
<color name="color_ba7e36">#BA7E36</color>
</resources> </resources>
\ No newline at end of file
package com.zxbw.modulemain.activity package com.zxbw.modulemain.activity
import android.graphics.Paint
import android.os.Handler
import android.util.Log
import android.view.View import android.view.View
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.zxbw.modulemain.R import com.zxbw.modulemain.R
...@@ -8,18 +11,37 @@ import com.zxbw.modulemain.contract.RechargeContract ...@@ -8,18 +11,37 @@ import com.zxbw.modulemain.contract.RechargeContract
import com.zxbw.modulemain.presenter.RechargePresenter import com.zxbw.modulemain.presenter.RechargePresenter
import com.zxbw.modulemain.view.DialogUtils import com.zxbw.modulemain.view.DialogUtils
import com.zxhl.cms.AppContext import com.zxhl.cms.AppContext
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.base.BaseActivity import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.SettingPreference import com.zxhl.cms.net.SettingPreference
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.net.model.qy.CouponsEntity import com.zxhl.cms.net.model.qy.CouponsEntity
import com.zxhl.cms.net.model.qy.RightsDetailEntity import com.zxhl.cms.net.model.uc.AliPayEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener import com.zxhl.cms.net.model.uc.PayResultEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.pay.H5PayUtil
import com.zxhl.cms.pay.PayActivity
import com.zxhl.cms.pay.alipay.AlipayServer
import com.zxhl.cms.utils.*
import com.zxhl.cms.widget.LoadingDialog
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Consumer
import kotlinx.android.synthetic.main.activity_layout_recharge.* import kotlinx.android.synthetic.main.activity_layout_recharge.*
import kotlinx.android.synthetic.main.activity_layout_recharge.id_rights_pay_web_view
import kotlinx.android.synthetic.main.activity_layout_recharge.id_rl_h5_pay_view
//话费充值页面 //话费充值页面
class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetailEntity>, class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<MemberEntity.ProductDetail>,
RechargeContract.View { RechargeContract.View {
private var mAdapter: RechargeAdapter? = null private var mAdapter: RechargeAdapter? = null
private var mPresenter: RechargePresenter? = null private var mPresenter: RechargePresenter? = null
private var couponsentity: CouponsEntity? = null
private var mLoading: LoadingDialog? = null
private var pay_type: Int? = RightsDetailActivity.H5_PAY
private var payResultObservable: Observable<PayResultEntity>? = null
var goodsID: String? = ""
var couponId:String?=""
override fun onClick(v: View?) { override fun onClick(v: View?) {
when (v) { when (v) {
id_tv_select_coupons -> { id_tv_select_coupons -> {
...@@ -31,6 +53,8 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail ...@@ -31,6 +53,8 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
object : DialogUtils.OnFetchCardListener { object : DialogUtils.OnFetchCardListener {
override fun onSelectCoupons(coupons: CouponsEntity?) { override fun onSelectCoupons(coupons: CouponsEntity?) {
//coupons==null 没有选择优惠券 !=null 选中的优惠券信息 //coupons==null 没有选择优惠券 !=null 选中的优惠券信息
couponsentity = coupons
setCouponInfo(couponsentity)
} }
}) })
} }
...@@ -48,25 +72,266 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail ...@@ -48,25 +72,266 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
override fun init() { override fun init() {
val user = SettingPreference.getUserInfoData() val user = SettingPreference.getUserInfoData()
initPay()
mPresenter = RechargePresenter(this) mPresenter = RechargePresenter(this)
mAdapter = RechargeAdapter(this, this) mAdapter = RechargeAdapter(this, this)
id_rl_recharge?.layoutManager = GridLayoutManager(this, 3) id_rl_recharge?.layoutManager = GridLayoutManager(this, 3)
id_rl_recharge?.adapter = mAdapter id_rl_recharge?.adapter = mAdapter
mPresenter?.getFetchCard(user.nickname) mPresenter?.getFetchCard(user.nickname)
mPresenter?.getPayList("mobileFee")
id_edit_user_phone?.setText(user.nickname.toString())
id_tv_select_coupons?.setOnClickListener(this) id_tv_select_coupons?.setOnClickListener(this)
id_tv_chongzhi?.setOnClickListener {
topay()
}
} }
override fun onItemClick(view: View?, position: Int, data: RightsDetailEntity?) {
fun initPay() {
mLoading = LoadingDialog.getLoadingDialog(
this,
getString(com.zxhl.cms.R.string.wait_ing),
false,
false
)
payResultObservable = RxBus.get().register(Constant.PAY_RESULT, PayResultEntity::class.java)
payResultObservable?.observeOn(AndroidSchedulers.mainThread())
?.subscribe(Consumer<PayResultEntity> { obj ->
MainLooper?.get()?.postDelayed(Runnable {
mHandler?.removeCallbacksAndMessages(null)
}, 1000)
Log.d("qqbs", "verifyPay:${obj.txt}")
//println("verifyPay payResultObservable------------------------------- order:${obj.txt}")
if (obj.isPaySuc) {
EventUtils.onEvent("pay_page_pay_query_order", "付款成功")
mPresenter?.verifyPay(obj.txt, obj.payType)
} else {
//支付宝支付
if (obj.payType == 1) {
if (obj.payStatus == "6001") {
EventUtils.onEvent("zfb_pay_cancel")
} else {
EventUtils.onEvent("zfb_pay_error", obj.payStatus + " msg:" + obj.txt)
}
} else {
EventUtils.onEvent("wx_pay_error", obj.txt)
}
showResultLoading(false)
} }
}, Consumer<Throwable> { })
override fun setData() { var result = SettingPreference.getConfig()
if (result != null) {
if (result != null && !result.pay_config_v2.isNullOrEmpty()) {
for (i in result.pay_config_v2!!.indices) {
if (result?.pay_config_v2!![i].open == 1) {
pay_type = result?.pay_config_v2!![i].type
break
}
}
}
}
}
private var mHandler: Handler = Handler {
when (it.what) {
0 -> {
if (mLoading != null) {
mLoading?.setResult(false, "取消支付", 1000)
}
}
1 -> {
if (mLoading != null) {
mLoading?.setResult(false, "支付异常", 0)
}
id_rl_h5_pay_view.visibility = View.VISIBLE
EventUtils.onEvent("h5_pay_end")
}
2 -> {
if (mLoading != null) {
mLoading?.setResult(false, "支付异常", 0)
}
id_rl_h5_pay_view.visibility = View.VISIBLE
}
}
false
}
fun topay() {
val phoneNumber = id_edit_user_phone.text.toString().trim { it <= ' ' }
if (phoneNumber.isEmpty()) {
showToast("请输入要兑换的手机号")
return
}
if (phoneNumber.length < 11) {
showToast("请检查要兑换的手机号")
return
}
isClickPayBtn = true
mLoading?.setLoading("请稍后...")
mLoading?.show()
mPresenter?.requestRightsAliPay(
goodsID.toString(),
pay_type.toString(),
phoneNumber,
"8080",
false,
"",
couponsentity?.id,
"SHKC_CT"
)
} }
private var mCouponsResult: List<CouponsEntity>? = null; private var mCouponsResult: List<CouponsEntity>? = null;
override fun setCouponsList(result: List<CouponsEntity>?) { override fun setCouponsList(result: List<CouponsEntity>?) {
mCouponsResult = result mCouponsResult = result
if (!result.isNullOrEmpty()) {
couponsentity = result.get(0)
setCouponInfo(couponsentity)
}
}
override fun requestOrderSuc(result: AliPayEntity) {
if (pay_type == RightsDetailActivity.MIN_PAY_PROGRAM) {
SettingPreference.setOutTradeNo(result?.outTradeNo)
JumpUtils.h5Jump("https://api.minpayment.com/pay.do?sendMsg=" + result.wakeup)
} else if (pay_type == RightsDetailActivity.H5_PAY) {
SettingPreference.setOutTradeNo(result?.outTradeNo)
if (result.outTradeNo.isNullOrEmpty()) {
EventUtils.onEvent("h5_pay_error")
showResultLoading(false)
} else {
mHandler.sendEmptyMessageDelayed(1, 8000)
H5PayUtil().loadH5PayWeb(
this,
id_rights_pay_web_view,
result.outTradeNo ?: "",
object : H5PayUtil.H5PayCallBack {
override fun jumpZfbAppSuc() {
id_rl_h5_pay_view.visibility = View.GONE
EventUtils.onEvent("h5_open_zfb_suc")
mHandler.removeMessages(1)
}
override fun jumpZfbAppException(e: Exception) {
EventUtils.onEvent("h5_open_zfb_error", e.toString())
mHandler.removeMessages(1)
mHandler.sendEmptyMessage(2)
}
override fun loadH5Error1(errorStr: String) {
EventUtils.onEvent("h5_pay_error1", errorStr)
}
override fun loadH5Error2(errorStr: String) {
EventUtils.onEvent("h5_pay_error2", errorStr)
}
})
}
} else if (pay_type == RightsDetailActivity.ALI_PAY) {
AlipayServer.payV2(this, result.wakeup!!)
} else {
showToast("暂不支持")
EventUtils.onEvent("payment_error", "$pay_type")
}
}
override fun requestOrderFail(errorMsg: String) {
showResultLoading(false)
}
override fun verifyOrderSuc(order: String) {
isClickPayBtn = false
SettingPreference.setOutTradeNo("")
showResultLoading(true)
finish()
JumpUtils.PaySuceessJump()
}
override fun verifyOrderFail(errorMsg: String) {
isClickPayBtn = false
showResultLoading(false)
}
override fun setAppInfo(result: AppInEntity?) {
}
override fun setPayList(result: MemberEntity) {
mAdapter?.clear()
mAdapter?.appendToList(result?.goodsList)
mAdapter?.notifyDataSetChanged()
if (!result.goodsList.isNullOrEmpty()) {
if (result.goodsList!!.size >= 3) {
mAdapter?.setPosition(2)
goodsID = result.goodsList?.get(2)?.goodsId
}
}
}
var memberentity: MemberEntity.ProductDetail? = null
override fun onItemClick(view: View?, position: Int, data: MemberEntity.ProductDetail?) {
memberentity = data
goodsID = data?.goodsId
setBootomPrice(data)
}
fun setBootomPrice(data: MemberEntity.ProductDetail?) {
if (couponsentity == null) {
id_tv_cash?.text = "${data?.cash}"
} else {
val oldPrice = data?.cash?.toDouble()
val disCountPrice = couponsentity?.amount?.toDouble()
id_tv_cash?.text = (oldPrice?.minus(disCountPrice!!)).toString()
}
id_tv_orgin_price?.text = "原价 ¥${data?.originalPrice}"
id_tv_orgin_price?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG)
}
fun setCouponInfo(entity: CouponsEntity?) {
setBootomPrice(memberentity)
if (entity != null) {
Log.e("MXL", "选择这个优惠券")
id_tv_select_coupons?.text = "您已选择${entity?.amount}元优惠券"
} else {
Log.e("MXL", "无优惠券可选")
id_tv_select_coupons?.text = "未选择优惠券"
}
}
override fun onPause() {
super.onPause()
isPause = true
}
private fun showResultLoading(isPaySuc: Boolean) {
if (isPaySuc) {
mLoading?.setResult(true, "支付成功", 1000)
} else {
mLoading?.setResult(false, "支付失败", 1000)
}
}
private var isPause = false
private var isClickPayBtn = false
override fun onResume() {
super.onResume()
if (isPause && isClickPayBtn) {
if (pay_type == PayActivity.MIN_PAY_PROGRAM || pay_type == PayActivity.H5_PAY) {
//如果是敏支付或者H5支付
mPresenter?.verifyPay(SettingPreference.getOutTradeNo(), pay_type!!)
} else {
mHandler?.sendEmptyMessageDelayed(0, 2000)
}
}
}
override fun onDestroy() {
super.onDestroy()
if (payResultObservable != null)
RxBus.get().unregister(Constant.PAY_RESULT, payResultObservable!!)
} }
} }
\ No newline at end of file
package com.zxbw.modulemain.adapter package com.zxbw.modulemain.adapter
import android.app.Activity import android.app.Activity
import android.graphics.Color
import android.graphics.Paint import android.graphics.Paint
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
...@@ -11,39 +12,60 @@ import androidx.recyclerview.widget.RecyclerView ...@@ -11,39 +12,60 @@ import androidx.recyclerview.widget.RecyclerView
import com.zxbw.modulemain.R import com.zxbw.modulemain.R
import com.zxhl.cms.AppContext import com.zxhl.cms.AppContext
import com.zxhl.cms.common.base.BaseRecyclerAdapter import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.qy.RightsDetailEntity import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener import com.zxhl.cms.utils.OnRecycleItemClickListener
class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.ViewHolder> { class RechargeAdapter : BaseRecyclerAdapter<MemberEntity.ProductDetail, RechargeAdapter.ViewHolder> {
private var mContext: Activity? = null private var mContext: Activity? = null
private val listener: OnRecycleItemClickListener<RightsDetailEntity> private val listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
private val mSelectColor: Int
private val mUnSelectColor: Int
private var position = -1
constructor( constructor(
content: Activity?, content: Activity?,
listener: OnRecycleItemClickListener<RightsDetailEntity> listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
) : super() { ) : super() {
mContext = content mContext = content
this.listener = listener this.listener = listener
mSelectColor = AppContext.get().resources.getColor(R.color.color_ba7e36)
mUnSelectColor = AppContext.get().resources.getColor(R.color.color_333333)
}
fun setPosition(pos: Int) {
position = pos
notifyDataSetChanged()
} }
override fun onBindViewHolder(holder: ViewHolder, position: Int) { override fun onBindViewHolder(holder: ViewHolder, pos: Int) {
// var bean = mList[position] var bean = mList[pos]
// holder.id_tv_cards_name?.text = "${bean.brand}${bean.goodsName}${bean.category}" if(pos==position){
// holder.id_tv_cagte_name?.text = "${bean.category}" holder.id_ll_item?.setBackgroundResource(R.drawable.shape_edd49d_r6)
// // holder.id_goods_icon?.setLoadImageUrl(bean.icon,false) holder.id_tv_activity_price_text?.setBackgroundResource(R.drawable.shape_edd49d_r11)
// holder.id_goods_yuan_jia?.text = "${bean.goodsName}" holder.id_tv_activity_price_text?.setTextColor(mSelectColor)
// holder.id_tv_card_discount?.text = "会员专享${bean.costDiscount}折" holder.id_tv_price?.setTextColor(mSelectColor)
// holder.id_tv_card_price?.text = "${bean.salePrice}" holder.id_tv_orgin_price?.setTextColor(mSelectColor)
// holder.id_tv_guanfang_price?.text = "官方价 ¥${bean.originPrice}元" holder.id_tv_rmb?.setTextColor(mSelectColor)
// holder.id_tv_guanfang_price?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG) //中划线 listener.onItemClick(holder.itemView, pos, bean)
}else{
holder.id_ll_item?.setBackgroundResource(R.drawable.shape_cbcbcb_r6)
holder.id_tv_activity_price_text?.setBackgroundResource(R.drawable.shape_a3a4a6_r10)
holder.id_tv_activity_price_text?.setTextColor(Color.parseColor("#ffffff"))
holder.id_tv_price?.setTextColor(mUnSelectColor)
holder.id_tv_orgin_price?.setTextColor(Color.parseColor("#999999"))
holder.id_tv_rmb?.setTextColor(mUnSelectColor)
}
holder.id_tv_activity_price_text?.text = "活动价"
holder.id_tv_price?.text="${bean.cash}"
holder.id_tv_orgin_price?.text="原价 ¥${bean.originalPrice}"
holder.id_tv_orgin_price?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG)
// holder.id_ll_item?.setOnClickListener { // holder.id_ll_item?.setOnClickListener {
// listener.onItemClick(it, position, bean) // listener.onItemClick(it, position, bean)
// } // }
} }
override fun getItemCount(): Int { // override fun getItemCount(): Int {
return 3 // return 3
} // }
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder( return ViewHolder(
...@@ -52,7 +74,7 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter. ...@@ -52,7 +74,7 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.
) )
} }
class ViewHolder : RecyclerView.ViewHolder { inner class ViewHolder : RecyclerView.ViewHolder {
var id_ll_item: LinearLayout? var id_ll_item: LinearLayout?
// var id_goods_icon: RecycleImageView? // var id_goods_icon: RecycleImageView?
...@@ -72,6 +94,14 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter. ...@@ -72,6 +94,14 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.
id_tv_rmb = itemView.findViewById<TextView>(R.id.id_tv_rmb) id_tv_rmb = itemView.findViewById<TextView>(R.id.id_tv_rmb)
id_tv_price = itemView.findViewById<TextView>(R.id.id_tv_price) id_tv_price = itemView.findViewById<TextView>(R.id.id_tv_price)
id_tv_orgin_price = itemView.findViewById<TextView>(R.id.id_tv_orgin_price) id_tv_orgin_price = itemView.findViewById<TextView>(R.id.id_tv_orgin_price)
id_ll_item?.setOnClickListener {
val pos = adapterPosition
if (pos >= 0 && pos < mList.size) {
setPosition(pos)
notifyDataSetChanged()
}
}
} }
} }
} }
\ No newline at end of file
package com.zxbw.modulemain.contract package com.zxbw.modulemain.contract
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.net.model.qy.CouponsEntity import com.zxhl.cms.net.model.qy.CouponsEntity
import com.zxhl.cms.net.model.uc.AliPayEntity
import com.zxhl.cms.net.model.video.MemberEntity
class RechargeContract { class RechargeContract {
interface View { interface View {
fun setData() fun setPayList(result: MemberEntity)
fun setCouponsList(result: List<CouponsEntity>?) fun setCouponsList(result: List<CouponsEntity>?)
fun requestOrderSuc(result: AliPayEntity)
fun requestOrderFail(errorMsg: String)
fun verifyOrderSuc(order: String)
fun verifyOrderFail(errorMsg: String)
fun setAppInfo(result: AppInEntity?)
} }
interface Presenter { interface Presenter {
fun getFetchCard(phone: String) fun getFetchCard(phone: String)
fun getPayList() fun getPayList(payModel: String)
fun requestRightsAliPay(
goodsId: String,
payType: String,
phone: String,
type: String,
skill: Boolean?,
outTradeNo: String?,
couponId: String?,
mobileOp: String?
)
fun verifyPay(order: String?, payType: Int)
fun appInfo()
} }
} }
\ No newline at end of file
...@@ -22,6 +22,7 @@ class CardDetailPresenter : CardDetailContract.Presenter { ...@@ -22,6 +22,7 @@ class CardDetailPresenter : CardDetailContract.Presenter {
override fun requestRightsAliPay(goodsId: String, payType: String, phone: String,type:String,skill:Boolean?,outTradeNo:String?) { override fun requestRightsAliPay(goodsId: String, payType: String, phone: String,type:String,skill:Boolean?,outTradeNo:String?) {
ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone,type,skill,outTradeNo) ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone,type,skill,outTradeNo)
.compose(RxSchedulers.observableIO2Main()) .compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AliPayEntity>() { .subscribe(object : BaseObserver<AliPayEntity>() {
......
package com.zxbw.modulemain.presenter package com.zxbw.modulemain.presenter
import android.util.Log import android.text.TextUtils
import com.zxbw.modulemain.contract.RechargeContract import com.zxbw.modulemain.contract.RechargeContract
import com.zxhl.cms.net.ApiClient import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.callback.BaseObserver import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.net.model.qy.CouponsEntity import com.zxhl.cms.net.model.qy.CouponsEntity
import com.zxhl.cms.net.model.qy.SkillEntity import com.zxhl.cms.net.model.uc.AliPayEntity
import com.zxhl.cms.net.model.uc.PayVerifyEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.utils.UserDataUtils
import org.json.JSONObject
class RechargePresenter : RechargeContract.Presenter { class RechargePresenter : RechargeContract.Presenter {
...@@ -29,7 +34,120 @@ class RechargePresenter : RechargeContract.Presenter { ...@@ -29,7 +34,120 @@ class RechargePresenter : RechargeContract.Presenter {
}) })
} }
override fun getPayList() { override fun getPayList(payModel: String) {
ApiClient.videoInfoApi.getPayConfig(payModel).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<MemberEntity>() {
override fun onSuccess(result: MemberEntity?) {
if (!result?.goodsList.isNullOrEmpty()) {
if (result?.goodsList?.size!! >= 1) {
mView.setPayList(result)
}
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
override fun requestRightsAliPay(
goodsId: String,
payType: String,
phone: String,
type: String,
skill: Boolean?,
outTradeNo: String?,
couponId: String?,
mobileOp: String?
) {
ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone,type,skill,outTradeNo,couponId,mobileOp)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AliPayEntity>() {
override fun onSuccess(result: AliPayEntity?) {
if (result != null) {
mView?.requestOrderSuc(result)
} else {
mView?.requestOrderFail("zfb订单支付请求成功 数据为空")
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
mView?.verifyOrderFail("zfb订单支付请求失败 code:${code} msg:${errorMsg}")
}
})
}
override fun verifyPay(order: String?, payType: Int) {
try {
if (payType == 1) {
val json = JSONObject(order)
val obj = json.getJSONObject("alipay_trade_app_pay_response")
val tradeOrder = obj.getString("trade_no")
val outTradeOrder = obj.getString("out_trade_no")
requestVerify(outTradeOrder, tradeOrder, payType)
} else if (payType == 2) {
val json = JSONObject(order)
val tradeOrder = ""
val outTradeOrder = json.getString("extData")
requestVerify(outTradeOrder, tradeOrder, payType)
} else if (payType == 11) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
}
} else if (payType == 12) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
}
} else if (payType == 13) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
}
}else if (payType == 21) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
} else {
mView?.verifyOrderFail("支付成功后 订单id为null")
}
}else{
mView.verifyOrderFail("支付成功后 开始校验订单异常 e:支付方式异常$payType")
}
} catch (e: Exception) {
mView.verifyOrderFail("支付成功后 开始校验订单异常 e:${e.cause} msg:${e.message}")
}
}
override fun appInfo() {
ApiClient.homeApi.getAppInfo()
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AppInEntity>() {
override fun onSuccess(result: AppInEntity?) {
if (result != null) {
mView.setAppInfo(result)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
private fun requestVerify(outTradeOrder: String, tradeOrder: String, payType: Int) {
ApiClient.userInfoAPi.verifyPay(outTradeOrder, tradeOrder, payType)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<PayVerifyEntity>() {
override fun onSuccess(result: PayVerifyEntity) {
UserDataUtils.updateUserInfo(null)
if (TextUtils.equals("200", result.status)) {
mView?.verifyOrderSuc(result.payStatus)
} else {
mView?.verifyOrderFail("订单校验请求成功 校验异常${result?.status?:-1}")
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
mView?.verifyOrderFail("订单校验请求失败:code:${code} msg:${errorMsg}")
}
})
} }
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffedd49d" />
<corners
android:bottomLeftRadius="11dp"
android:bottomRightRadius="11dp"
android:topLeftRadius="11dp"
android:topRightRadius="11dp" />
</shape>
\ No newline at end of file
...@@ -63,6 +63,7 @@ ...@@ -63,6 +63,7 @@
</LinearLayout> </LinearLayout>
<EditText <EditText
android:id="@+id/id_edit_user_phone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="44dp" android:layout_height="44dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
...@@ -70,7 +71,6 @@ ...@@ -70,7 +71,6 @@
android:background="@drawable/shape_ffffff_r6" android:background="@drawable/shape_ffffff_r6"
android:lines="1" android:lines="1"
android:padding="10dp" android:padding="10dp"
android:text="132789"
android:textColor="@color/color_999999" android:textColor="@color/color_999999"
android:inputType="phone" android:inputType="phone"
android:textCursorDrawable="@drawable/cursor_color" android:textCursorDrawable="@drawable/cursor_color"
...@@ -151,7 +151,6 @@ ...@@ -151,7 +151,6 @@
android:drawableRight="@drawable/icon_fanhui_chengse" android:drawableRight="@drawable/icon_fanhui_chengse"
android:drawablePadding="4dp" android:drawablePadding="4dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="您已选择5元优惠券"
android:textColor="#C46B00" android:textColor="#C46B00"
android:textSize="12sp" /> android:textSize="12sp" />
</RelativeLayout> </RelativeLayout>
...@@ -311,6 +310,7 @@ ...@@ -311,6 +310,7 @@
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/id_tv_cash"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:includeFontPadding="false" android:includeFontPadding="false"
...@@ -321,6 +321,7 @@ ...@@ -321,6 +321,7 @@
</LinearLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/id_tv_orgin_price"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="27dp" android:layout_marginLeft="27dp"
...@@ -331,6 +332,7 @@ ...@@ -331,6 +332,7 @@
</LinearLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/id_tv_chongzhi"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_weight="1" android:layout_weight="1"
...@@ -341,5 +343,26 @@ ...@@ -341,5 +343,26 @@
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
<RelativeLayout
android:id="@+id/id_rl_h5_pay_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp"
android:visibility="gone">
<WebView
android:id="@+id/id_rights_pay_web_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/id_img_close_pay_web"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/id_rights_pay_web_view"
android:padding="10dp"
android:src="@drawable/icon_guanbi" />
</RelativeLayout>
</RelativeLayout> </RelativeLayout>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment