123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package com.edufound.mobile.pay;
- import android.os.Handler;
- import android.os.Message;
- import android.text.TextUtils;
- import com.alipay.sdk.app.PayTask;
- import com.edufound.mobile.base.BasePersenter;
- import com.edufound.mobile.base.BaseView;
- import com.edufound.mobile.interfaces.EfunboxPayInterfaces;
- import com.edufound.mobile.main.MainPersenter;
- import com.edufound.mobile.pay.ali.PayResult;
- import com.edufound.mobile.util.Logger;
- import com.edufound.mobile.util.ToastUtil;
- import com.tencent.mm.opensdk.modelpay.PayReq;
- import org.json.JSONObject;
- import java.util.Map;
- public class PayPersenter implements PayIPersenter {
- BaseView mView;
- public PayPersenter(BaseView view) {
- mView = view;
- }
- @Override
- public void loadData() {
- }
- @Override
- public void onDisConnNetWork() {
- }
- @Override
- public void onConnNetWork() {
- }
- @Override
- public void WeChatPay(String json) {
- if (!PayInit.getInstance().WX_API.isWXAppInstalled()) {
- ToastUtil.showToast("请安装微信");
- return;
- }
- Message msg = new Message();
- msg.obj = json;
- msg.what = 0xffbcd14;
- resultHandler.sendMessageDelayed(msg, 0);
- }
- @Override
- public void ALIPay(final String orderInfo) {
- Logger.e("orderInfo:" + orderInfo);
- Runnable payRunnable = new Runnable() {
- @Override
- public void run() {
- PayTask alipay = new PayTask(mView.getActivity());
- Map<String, String> result = alipay.payV2(orderInfo, true);
- Message msg = new Message();
- msg.what = 0xffbcd15;
- msg.obj = result;
- resultHandler.sendMessage(msg);
- }
- };
- Thread payThread = new Thread(payRunnable);
- payThread.start();
- }
- Handler resultHandler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
- case EfunboxPayInterfaces.PAY_BEGIN:
- ToastUtil.showToast("支付开始");
- break;
- case EfunboxPayInterfaces.PAY_SUCCESS:
- ToastUtil.showToast("支付成功");
- break;
- case EfunboxPayInterfaces.PAY_ERROR:
- ToastUtil.showToast("支付失败");
- break;
- case EfunboxPayInterfaces.PAY_CANCEL:
- ToastUtil.showToast("取消支付");
- break;
- case 0xffbcd14:
- //微信支付
- try {
- String jsonmessage = msg.obj.toString();
- if (jsonmessage != null && jsonmessage.length() > 0) {
- JSONObject json = new JSONObject(jsonmessage);
- Logger.e("json:" + json);
- if (null != json) {
- PayReq req = new PayReq();
- req.appId = json.getString("appid");
- req.partnerId = json.getString("partnerid");
- req.prepayId = json.getString("prepayid");
- req.nonceStr = json.getString("noncestr");
- req.timeStamp = json.getString("timestamp");
- req.packageValue = json.getString("package");
- req.sign = json.getString("sign");
- PayInit.getInstance().WX_API.sendReq(req);
- } else {
- Logger.e("返回错误" + json.getString("retmsg"));
- mView.getActivity().finish();
- }
- } else {
- Logger.e("服务器请求错误");
- mView.getActivity().finish();
- }
- } catch (Exception e) {
- Logger.e("异常:" + e.getMessage());
- mView.getActivity().finish();
- }
- break;
- case 0xffbcd15:
- //支付宝支付
- PayResult payResult = new PayResult((Map<String, String>) msg.obj);
- String resultInfo = payResult.getResult();// 同步返回需要验证的信息
- String resultStatus = payResult.getResultStatus();
- Logger.e("resultInfo:" + resultInfo);
- Logger.e("resultStatus:" + resultStatus);
- Message alimsg = new Message();
- alimsg.what = MainPersenter.PAY_RESULT;
- // 判断resultStatus 为9000则代表支付成功
- if (TextUtils.equals(resultStatus, "9000")) {
- // 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
- // ToastUtil.showToast( "支付成功");
- alimsg.obj = 0;
- } else {
- // 该笔订单真实的支付结果,需要依赖服务端的异步通知。
- // CustomToast.showToast(mContext, "支付失败", 3000);
- alimsg.obj = -11;
- }
- MainPersenter.mPersenterHandler.sendMessage(alimsg);
- break;
- }
- return false;
- }
- });
- }
- interface PayIPersenter extends BasePersenter {
- void WeChatPay(String json);
- void ALIPay(String orderInfo);
- }
|