package com.unionpay.acp.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.unionpay.acp.sdk.SDKConfig;
/**
* 名称: 第一卷 商户卷 第1\5\6部分 跳转网关支付产品\手机控件支付产品\手机网页支付产品<br>
* 功能: 6.6 文件传输类交易<br>
* 版本: 5.0<br>
* 日期: 2014-07<br>
* 作者: 中国银联ACP团队<br>
* 版权: 中国银联<br>
* 说明:以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考。<br>
*/
public class Form_6_6_FileTransfer extends DemoBase {
public static void main(String[] args) {
/**
* 参数初始化
* 在java main 方式运行时必须每次都执行加载
* 如果是在web应用开发里,这个方写在可使用监听的方式写入缓存,无须在这出现
*/
SDKConfig.getConfig().loadPropertiesFromSrc();// 从classpath加载acp_sdk.properties文件
/**
* 组装请求报文
*/
Map<String, String> data = new HashMap<String, String>();
// 版本号
data.put("version", "5.0.0");
// 字符集编码 默认"UTF-8"
data.put("encoding", "UTF-8");
// 签名方法 01 RSA
data.put("signMethod", "01");
// 交易类型
data.put("txnType", "76");
// 交易子类型
data.put("txnSubType", "01");
// 业务类型
data.put("bizType", "000000");
// 接入类型,商户接入填0 0- 商户 , 1: 收单, 2:平台商户
data.put("accessType", "0");
// 商户代码,请替换实际商户号测试,如使用的是自助化平台注册的商户号,该商户号没有权限测文件下载接口的,请使用测试参数里写的文件下载的商户号和日期测。如需真实交易文件,请使用自助化平台下载文件。
data.put("merId", "700000000000001");
// 清算日期
data.put("settleDate", "0119");
// 订单发送时间,取系统时间
data.put("txnTime", new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
// 文件类型
data.put("fileType", "00");
data = signData(data);
// 交易请求url 从配置文件读取
String url = SDKConfig.getConfig().getFileTransUrl();
Map<String, String> resmap = submitUrl(data, url);
System.out.println("请求报文=["+data.toString()+"]");
System.out.println("应答报文=["+resmap.toString()+"]");
// 解析返回报文的文件流
deCodeFileContent(resmap);
}
}