package com.edufound.reader.presenter; import android.app.Activity; import android.content.Intent; import android.graphics.Rect; import android.view.View; import android.widget.Toast; import androidx.recyclerview.widget.RecyclerView; import com.edufound.reader.adapter.EventPayItemAdapter; import com.edufound.reader.apiserver.OrderApiServerImpl; import com.edufound.reader.base.BaseActivity; import com.edufound.reader.base.BasePresenter; import com.edufound.reader.bean.ActivityEventPayBean; import com.edufound.reader.bean.ChannelCodeEnum; import com.edufound.reader.bean.HttpResultBean; import com.edufound.reader.bean.PayResultBean; import com.edufound.reader.contract.EventPayContract; import com.edufound.reader.listener.RecyclerItemClickListener; import com.edufound.reader.model.EventPayModel; import com.edufound.reader.model.TmailPayModel; import com.edufound.reader.tmailsdk.TMailSDKUtil; import com.edufound.reader.util.Consts; import com.google.gson.reflect.TypeToken; import com.okhttplib.HttpInfo; import com.okhttplib.callback.Callback; import com.orhanobut.logger.Logger; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; public class EventPayPresenter extends BasePresenter implements EventPayContract.Presenter { TmailPayModel mTMailModel; EventPayModel mModel; OrderApiServerImpl mOrderApi; List mPayResult; EventPayItemAdapter mPayAdapter; public EventPayPresenter() { mModel = new EventPayModel(); mTMailModel = new TmailPayModel(); mOrderApi = new OrderApiServerImpl(); } @Override public void getProductListInfo() { mOrderApi.getFlowerEventProductList(mView.getActivity(), new Callback() { @Override public void onSuccess(HttpInfo info) throws IOException { Logger.e("获取成功:" + info.getRetDetail()); HttpResultBean> bean = info.getRetDetail(new TypeToken>>() { }.getType()); mPayResult = bean.getData(); mPayAdapter = new EventPayItemAdapter(mView.getActivity(), mPayResult); mPayAdapter.onItemClick(new RecyclerItemClickListener() { @Override public void onClickListener(int position, View view, ActivityEventPayBean payResultBean) { //去支付 Logger.e("position:" + position); toPayByChannel(payResultBean); } }); mView.getProductListSuccess(mPayAdapter); } @Override public void onFailure(HttpInfo info) throws IOException { Logger.e("获取失败了:" + info.getRetDetail()); } }); } public void toPayByChannel(ActivityEventPayBean resultBean) { if (Consts.getUmengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode())) { } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) { //天猫支付 Map params = new HashMap<>(); params.put("productId", resultBean.getProduct().getId()); params.put("channel", Consts.getUmengChannel()); params.put("payType", resultBean.getProduct().getPayType()); params.put("uid", Consts.getmConstsUserBean().getUid()); params.put("first", "false"); mTMailModel.TMailFlowerPay(mView.getActivity(), ((BaseActivity) mView.getActivity()).getGson().toJson(params), new Callback() { @Override public void onSuccess(HttpInfo info) throws IOException { Logger.e("创建订单返回信息成功:" + info.getRetDetail()); Logger.e("创建订单返回信息成功:getParamJson-" + info.getParamJson()); try { JSONObject object = new JSONObject(info.getRetDetail()); JSONObject json = object.getJSONObject("data"); Logger.e("json:" + json); TMailSDKUtil.tmailPay(mView.getActivity(), json.toString()); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onFailure(HttpInfo info) throws IOException { Logger.e("创建订单返回信息失败:" + info.getRetDetail()); Logger.e("创建订单返回信息成功:getParamJson-" + info.getParamJson()); Toast.makeText(mView.getActivity(), "创建订单失败", Toast.LENGTH_SHORT).show(); } }); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (Consts.getUmengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) { //天猫支付返回 if (requestCode == TMailSDKUtil.TMAIL_PAY_RESULT_CODE && resultCode == Activity.RESULT_OK) { if (data != null) { boolean isPaySuccess = data.getBooleanExtra("isPaySuccess", false); String paySuccessDataJson = data.getStringExtra("paySuccessData"); int payErrorCode = data.getIntExtra("payErrorCode", -1); String payErrorMsg = data.getStringExtra("payErrorMsg"); Logger.e("qrcode, isPaySuccess=" + isPaySuccess + ";paySuccessDataJson=" + paySuccessDataJson + ";payErrorCode=" + payErrorCode + ";payErrorMsg=" + payErrorMsg); } } } } }