100 lines
3.7 KiB
Java
100 lines
3.7 KiB
Java
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);
|
||
}
|
||
}
|
||
}
|