首页>代码>java web支付宝实现对接支付实例>/F2FPay_Demo_Java/TradePayDemo/src/com/alipay/demo/trade/DemoHbRunner.java
package com.alipay.demo.trade;

import com.alipay.demo.trade.model.builder.AlipayHeartbeatSynRequestBuilder;
import com.alipay.demo.trade.model.hb.*;
import com.alipay.demo.trade.service.AlipayMonitorService;
import com.alipay.demo.trade.service.impl.hb.AbsHbRunner;
import com.alipay.demo.trade.service.impl.hb.HbQueue;
import com.alipay.demo.trade.utils.Utils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created by liuyangkly on 15/10/23.
 执行调度,主要任务由两个线程完成,交易线程(调用当面付2.0接口)和交易保障线程(轮询),具体需要做的事情
 1.当面付程序每执行完一笔交易后将交易结果保存在临时队列
 2.轮询线程读取临时队列,获取基础采集信息和最多30条trade_info信息,调用支付宝monitor.heartbeat.syn接口
 示例代码仅封装了如何调用该接口api,采集数据,比如采集网络信息、交易耗时、异常信息等,需要系统商开发者自行完成。
 */
public class DemoHbRunner extends AbsHbRunner {

    public DemoHbRunner(AlipayMonitorService monitorService) {
        super(monitorService);
    }

    @Override
    public String getAppAuthToken() {
        // 对于系统商,如果是为了商户开发监控保障接口,则需要传此值,否则如果为系统商自己做交易保障接口开发,则可不传。
        return null;
    }

    @Override
    public AlipayHeartbeatSynRequestBuilder getBuilder() {
        // 系统商使用的交易信息格式,json字符串类型,从交易队列中获取
        List<SysTradeInfo> sysTradeInfoList = HbQueue.poll();

        // 异常信息的采集,系统商自行完成
        List<ExceptionInfo> exceptionInfoList = new ArrayList<ExceptionInfo>();
        //        exceptionInfoList.add(ExceptionInfo.HE_SCANER);
        //        exceptionInfoList.add(ExceptionInfo.HE_PRINTER);
        //        exceptionInfoList.add(ExceptionInfo.HE_OTHER);

        AlipayHeartbeatSynRequestBuilder builder = new AlipayHeartbeatSynRequestBuilder()
            .setProduct(Product.FP).setType(Type.CR).setEquipmentId("cr1000001")
            .setEquipmentStatus(EquipStatus.NORMAL).setTime(Utils.toDate(new Date()))
            .setStoreId("store10001").setMac("0a:00:27:00:00:00").setNetworkType("LAN")
            .setProviderId("2088911212323549") // 设置系统商pid
            .setSysTradeInfoList(sysTradeInfoList) // 系统商同步trade_info信息
            .setExceptionInfoList(exceptionInfoList) // 填写异常信息,如果有的话
        ;
        return builder;
    }
}
最近下载更多
北方菜  LV11 2023年4月12日
annazhang  LV29 2022年10月31日
tss1999  LV3 2022年5月7日
lzlzyw  LV14 2022年3月25日
breakCY  LV15 2022年3月21日
liuziqi0529  LV4 2022年3月17日
alexxxxx  LV2 2022年2月22日
dhiwuakdoiqw  LV2 2021年5月13日
amour1  LV11 2021年3月19日
aassssss  LV1 2021年3月17日
最近浏览更多
Luck_ZDM  LV12 7月17日
TY0165  LV20 6月24日
grant1123  LV2 6月23日
ma406805131  LV15 5月24日
lc583415630  LV1 3月15日
夜上清元  LV8 3月13日
182038380 2023年12月25日
暂无贡献等级
zxy135201  LV5 2023年11月30日
19050126312  LV1 2023年10月19日
2036495585  LV9 2023年9月25日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友