龙将斩千 v5.5.5.39856版本的 MD5 值为:5c05b1d6f8d872ca3fe0343d6ff07caf

以下内容为反编译后的 CheckOrderNo.java 源代码,内容仅作参考


package com.umarkgame.umarksdk.checkOrderNo;

import android.os.Message;
import androidx.core.app.NotificationCompat;
import com.bytedance.applog.game.GameReportHelper;
import com.umarkgame.umarksdk.UmarkGameSdk;
import com.umarkgame.umarksdk.constant.FinalValue;
import com.umarkgame.umarksdk.global.PhoneInfo;
import com.umarkgame.umarksdk.utils.HttpUtils;
import com.umarkgame.umarksdk.utils.LogUtils;
import com.umarkgame.umarksdk.utils.PreferenceUtils;
import com.umarkgame.umarksdk.utils.ProgressCircleUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;

public class CheckOrderNo {
    private static CheckOrderNo mInstance = null;
    private int queryPayResultTime = 2000;
    private int queryPayResultCount = 0;
    private int queryPayResultMaxCount = 50;
    private int queryPayResultIndex = 0;
    private ArrayList<OrderInfo> mOderInfo = new ArrayList<>();

    public static synchronized CheckOrderNo getInstance() {
        CheckOrderNo checkOrderNo;
        synchronized (CheckOrderNo.class) {
            if (mInstance == null) {
                mInstance = new CheckOrderNo();
            }
            checkOrderNo = mInstance;
        }
        return checkOrderNo;
    }

    public void addOrderData(String orderNo, String money, String desc, String name, String itemId) {
        OrderInfo info = new OrderInfo();
        info.count = 0;
        info.money = money;
        info.orderNo = orderNo;
        info.itemDesc = desc;
        info.itemName = name;
        info.itemId = itemId;
        this.mOderInfo.add(info);
        if (this.mOderInfo.size() == 1) {
            queryPayResult(orderNo, 0);
        }
    }

    public void deleteOrderData(int index) {
        if (index > this.mOderInfo.size() || this.mOderInfo.size() == 0) {
            return;
        }
        this.mOderInfo.remove(index);
    }

    public void queryPayResult(String orderNumber, final int index) {
        if (index > this.mOderInfo.size() || this.mOderInfo.size() == 0) {
            return;
        }
        final OrderInfo info = this.mOderInfo.get(index);
        Map<String, String> message = new HashMap<>();
        message.put("appid", PhoneInfo.APPID);
        message.put("type", "4");
        message.put("channel", PhoneInfo.CHANNEL);
        message.put("mac", PhoneInfo.MAC);
        String userId = PreferenceUtils.getString(UmarkGameSdk.getInstance().getActivity(), FinalValue.USERID, "");
        message.put("username", userId);
        message.put("money", info.money);
        message.put(FinalValue.ORDERNUMBER, orderNumber);
        message.put("agentGame", PhoneInfo.AGENTGAME);
        HttpUtils.checkOrderPost("https://yht.umarkgame.com/umarkpay/pay", message, new HttpUtils.RequestListener() {
            @Override
            public void success(String response) {
                LogUtils.output("支付结果查询响应", response);
                try {
                    JSONObject jsonObject = new JSONObject(response);
                    int status = jsonObject.getInt(NotificationCompat.CATEGORY_STATUS);
                    if (status == 1) {
                        ProgressCircleUtils.closeProgress();
                        int parseInt = Integer.parseInt(info.money);
                        new BigDecimal(parseInt / 100.0f).setScale(2, 4).doubleValue();
                        CheckOrderNo.this.submitDouYin(info.money, info.itemDesc, info.itemName, info.itemId);
                        CheckOrderNo.this.deleteOrderData(index);
                        UmarkGameSdk.getInstance().mHandler.sendEmptyMessage(109);
                    } else {
                        CheckOrderNo.this.checkOrderNumber(info, index);
                    }
                } catch (JSONException e) {
                    CheckOrderNo.this.checkOrderNumber(info, index);
                }
            }

            @Override
            public void fail(String error) {
                CheckOrderNo.this.checkOrderNumber(info, index);
            }
        });
    }

    public void submitDouYin(String money, String desc, String name, String itemId) {
        int temp = Integer.parseInt(money);
        int price = (int) (temp * 0.01d);
        if (PhoneInfo.PAYTYPE == 0) {
            GameReportHelper.onEventPurchase(desc, name, itemId, 1, "alipay", "¥", true, price);
        } else if (PhoneInfo.PAYTYPE == 1) {
            GameReportHelper.onEventPurchase(desc, name, itemId, 1, "wechat", "¥", true, price);
        } else if (PhoneInfo.PAYTYPE == 2) {
            GameReportHelper.onEventPurchase(desc, name, itemId, 1, "credit", "¥", true, price);
        }
        LogUtils.output("充值成功:", "上报买量充值数据:" + price);
    }

    public void checkOrderNumber(final OrderInfo info, final int index) {
        if (info.count == this.queryPayResultMaxCount) {
            deleteOrderData(index);
            ProgressCircleUtils.closeProgress();
            Message msg = new Message();
            msg.what = 110;
            msg.obj = "查询失败, 请确认实际充值是否到账";
            UmarkGameSdk.getInstance().mHandler.sendMessage(msg);
            if (this.mOderInfo.size() != 0) {
                OrderInfo temp = this.mOderInfo.get(0);
                queryPayResult(temp.orderNo, 0);
                return;
            }
            return;
        }
        new Thread() {
            @Override
            public void run() {
                try {
                    Thread.sleep(CheckOrderNo.this.queryPayResultTime);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                info.count++;
                CheckOrderNo.this.mOderInfo.set(index, info);
                int count = index + 1;
                if (count == CheckOrderNo.this.mOderInfo.size()) {
                    count = 0;
                }
                CheckOrderNo.this.queryPayResult(info.orderNo, count);
            }
        }.start();
    }
}