龙将斩千 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();
}
}