header('Content-type:text/html;charset=GBK');
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/common.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/SDKConfig.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/secureUtil.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/httpClient.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/log.class.php';
/**
 * 文件传输类交易
 */
/**
 *	以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考
 */
// 初始化日志
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
$log->LogInfo("===========处理后台请求开始============");
$params = array('version' => '5.0.0', 'encoding' => 'GBK', 'certId' => getSignCertId(), 'txnType' => '76', 'signMethod' => '01', 'txnSubType' => '01', 'bizType' => '000000', 'accessType' => '0', 'merId' => '700000000000001', 'settleDate' => '0119', 'txnTime' => date('YmdHis'), 'fileType' => '00');
// 签名
sign($params);
echo "请求:" . getRequestParamString($params);
$log->LogInfo("后台请求地址为>" . SDK_FILE_QUERY_URL);
// 发送信息到后台
$result = sendHttpRequest($params, SDK_FILE_QUERY_URL);
$log->LogInfo("后台返回结果为>" . $result);
echo "应答:" . $result;
//返回结果展示
$result_arr = coverStringToArray($result);
echo verify($result_arr) ? '验签成功' : '验签失败';
// 处理文件,保存路径在配置文件中修改,注意预先建立文件夹并授读写权限
deal_file($result_arr);
if ($result_arr["respCode"] == "98") {
    //文件不存在
    //TODO
    echo "文件不存在。<br>\n";
    return;
} else {
    if ($result_arr["respCode"] != "00") {
        //其他应答码做以失败处理
        //TODO
        echo "失败:respCode=" . $result_arr["respCode"] . "。<br>\n";
        return;
    }
}
echo "返回成功。<br>\n";
//TODO 处理文件,保存路径在配置文件中修改,注意预先建立文件夹并授读写权限
if (deal_file($result_arr) == false) {
    echo '文件保存失败,请查看日志提示的错误信息<br\\n>';
    return;
}
echo '文件已成功保存到' . SDK_FILE_DOWN_PATH . "目录下<br\n>";
//=================================================================
//TODO 下面是调用的方法是分析对账文件的样例代码,请按照自己的需要修改并集成到自己的代码中
analyze_file($result_arr["fileName"]);
function analyze_file($fileName)
{
    //解压
    $zip = new ZipArchive();
    if ($zip->open(SDK_FILE_DOWN_PATH . "/" . $fileName) === TRUE) {
        $zip->extractTo(SDK_FILE_DOWN_PATH);
        $zip->close();
        //遍历解压之后目录下的所有文件,对流水文件分析