wjtx_native/app/src/main/java/com/hnjc/wjtx/JCApplication.java
2020-11-19 11:34:09 +08:00

100 lines
3.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.hnjc.wjtx;
import android.app.Application;
import android.util.Log;
import com.hnjc.wjtx.vivo.VivoUnionHelper;
import com.vivo.unionsdk.open.MissOrderEventHandler;
import com.vivo.unionsdk.open.OrderResultInfo;
import java.util.ArrayList;
import java.util.List;
public class JCApplication extends Application {
private final String TAG = "JCApplication";
@Override
public void onCreate() {
super.onCreate();
Log.i("JCApplication", "JCApplication onCreate");
VivoUnionHelper.initSdk(this, true);
/**
* 掉单注册接口 需要接入掉单补单处理的一定要加
* !!!! 一定要加,否则无法通过上架审核 !!!
* 作用:商品补发回调
* 场景支付完成后游戏未正常发放商品或发放后未成功通知到vivo侧在异常订单查询后自动触发
*/
VivoUnionHelper.registerMissOrderEventHandler(this, mMissOrderEventHandler);
}
/**
* 用户主动触发或调用queryMissOrderResult查询回调会在此做处理
*/
private final MissOrderEventHandler mMissOrderEventHandler = orderResultInfos -> {
Log.i(TAG, "registerOrderResultEventHandler: orderResultInfos = " + orderResultInfos);
/**
* 注意这里是查到未核销的订单
* 需要调用自己的逻辑完成道具核销后再调用我们的订单完成接口
* 切记!!!一定要走自己逻辑发送完道具后再调用完成接口!!!切记!切记!
* !!!游戏根据订单号检查、补发商品!!!
* 自行完成补发逻辑 一定要完成道具补发后才能调用完成接口 此处一定要注意!!!
* 如果不处理直接调用完成则掉单无法解决
* 注意!!!注意!!!
* 游戏侧用你们自己的订单号cpOrderNumber来校验是否完成发货 发货完成上报我们的订单号transNo
*/
checkOrder(orderResultInfos);
};
/**
* 校验订单是否已经完成发货(游戏自己逻辑)
* 未完成的执行发货操作
* @param list
*/
public void checkOrder(final List<OrderResultInfo> list) {
if (list == null || list.isEmpty()) {
return;
}
List<String> orderList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
/**
* 校验是否已经完成发货 如果已经完成发货则加入完成列表
* 未完成则调用发货流程
* 这里修改成自己的校验流程 调用游戏自己的服务器 注意!!!注意!!!
*/
boolean isSucc = true;
if (isSucc) {
/**
* 校验已发货成功的 加入已完成列表 这里传的是transNo
*/
orderList.add(list.get(i).getTransNo());
} else {
/**
* 未完成发货的执行发货流程
*/
sendProp(list.get(i));
}
}
/**
* !!!批量订单补发完成后调用完成接口
*/
VivoUnionHelper.reportOrderComplete(orderList);
}
/**
* 调用发货逻辑(游戏自己实现)
* @param orderResultInfo
*/
private void sendProp(final OrderResultInfo orderResultInfo) {
/**
* 执行发货逻辑 发货成功单独通知
*/
boolean isSucc = true;
if (isSucc) {
/**
* !!!单个订单补发完成后调用完成接口
*/
VivoUnionHelper.reportOrderComplete(orderResultInfo.getTransNo(), true);
}
}
}