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(); //遍历解压之后目录下的所有文件,对流水文件分析