Pay.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tandunzhao
  5. * Date: 2017/12/15
  6. * Time: 下午2:31
  7. */
  8. namespace App\Libs\allinpay;
  9. class Pay
  10. {
  11. public static $userName = "20064100000098104";
  12. public static $userPass = "111111";
  13. public static $merchantId = "200641000000981";
  14. public static $accountNo = "200641000000981000";
  15. /**
  16. * 通联代付
  17. * @param $transactionSerialNumber [交易流水号]
  18. * @param $bankCode [银行代码]
  19. * @param @param $bankName [交易银行名称]
  20. * @param $bankAccountNO [银行卡账号]
  21. * @param $bankAccountName [银行卡户主名称]
  22. * @param $amount [金额] 元元元
  23. * @param $summary [交易附言]
  24. * @param $remark [备注]
  25. * @param $channelId [渠道ID]
  26. * @param $is_company 0:私人; 1:公司
  27. * @return mixed
  28. */
  29. public static function payAllinPay($transactionSerialNumber,
  30. $bankCode,
  31. $bankName,
  32. $bankAccountNO,
  33. $bankAccountName,
  34. $amount,
  35. $summary,
  36. $remark,
  37. $channelId,
  38. $is_company) {
  39. $userName = "20064100000098104";
  40. $userPass = "111111";
  41. $merchantId = "200641000000981";
  42. //1元 转 为 100分
  43. $amount = $amount * 100;
  44. $ACCOUNT_PROP = 0;
  45. if("1" == $is_company) {
  46. $ACCOUNT_PROP = "1";
  47. }
  48. // $userName = "20060400000044502";//测试
  49. // $userPass = "111111";//测试
  50. // $merchantId = "200604000000445";//测试
  51. $submitTime = date("YmdHis");
  52. // 源数组
  53. // $params = array(
  54. // 'INFO' => array(
  55. // 'TRX_CODE' => '100014',//交易代码 ;单笔实时代付请求
  56. // 'VERSION' => '03',//版本
  57. // 'DATA_TYPE' => '2',//数据格式 2:xml格式
  58. // 'LEVEL' => '6',//处理级别 'LEVEL' => '6',//处理级别
  59. // 'USER_NAME' => $userName,//用户名
  60. // 'USER_PASS' => $userPass,// 用户密码
  61. // 'REQ_SN' => $transactionSerialNumber,//交易流水号必须全局唯一,
  62. // //商户提交的批次号必须以商户号开头以保证与其他商户不冲突,一旦冲突交易将无法提交;
  63. // //建议格式:商户号+时间+固定位数顺序流水号。该字段值用于后续的查询交易、对账文件等的唯一标识,
  64. // //对应通联系统中的交易文件名,可以在通联系统交易查询页面查询到该值
  65. // ),
  66. // 'TRANS' => array(
  67. // 'BUSINESS_CODE' => '09900',//业务代码 见附录3.2 非空
  68. // 'MERCHANT_ID' => $merchantId,//商户代码 商户ID 非空
  69. // 'SUBMIT_TIME' => $submitTime,//提交时间 YYYYMMDDHHMMSS 非空
  70. // 'E_USER_CODE' => $channelId,//用户编号 客户编号,开发人员可当作备注字段 可空
  71. // 'BANK_CODE' => $bankCode,//银行代码 银行代码,存折必须填写。见附录3.3,强烈建议填写银行代码 存折必须填写 不填根据卡bin决定
  72. // 'ACCOUNT_TYPE' => '00',//账号类型 银行代码,00银行卡,01存折,02信用卡。不填默认为银行卡00。 可空
  73. // 'ACCOUNT_NO' => $bankAccountNO,//账号 银行卡或存折号码 非空
  74. // 'ACCOUNT_NAME' => $bankAccountName,//账号名 银行卡或存折上的所有人姓名。 非空
  75. // 'ACCOUNT_PROP' => '0',//账号属性 0私人,1公司。不填时,默认为私人0。 非空
  76. // 'AMOUNT' => $amount,//金额 整数,单位分。 非空
  77. // 'CURRENCY' => 'CNY',//货币类型 人民币:CNY, 港元:HKD,美元:USD。不填时,默认为人民币。 可空
  78. // 'ID_TYPE' => '0',//开户证件类型 0:身份证,1: 户口簿,2:护照,3.军官证,4.士兵证,5. 港澳居民来往内地通行证,6. 台湾同胞来往内地通行证,7. 临时身份证,8. 外国人居留证,9. 警官证, X.其他证件 可空
  79. // 'CUST_USERID' => $channelId,//自定义用户号 商户自定义的用户号,开发人员可当作备注字段使用 可空
  80. // 'SUMMARY' => $summary,//交易附言 填入网银的交易备注 可空
  81. // 'REMARK' => $remark,//备注 供商户填入参考信息 可空
  82. // ),
  83. // );
  84. $params = array(
  85. 'INFO' => array(
  86. 'TRX_CODE' => '100002',//交易代码 ;批量代付请求
  87. 'VERSION' => '03',//版本
  88. 'DATA_TYPE' => '2',//数据格式 2:xml格式
  89. 'LEVEL' => '6',//处理级别 'LEVEL' => '6',//处理级别
  90. 'USER_NAME' => $userName,//用户名
  91. 'USER_PASS' => $userPass,// 用户密码
  92. 'REQ_SN' => $transactionSerialNumber,//交易流水号必须全局唯一,
  93. //商户提交的批次号必须以商户号开头以保证与其他商户不冲突,一旦冲突交易将无法提交;
  94. //建议格式:商户号+时间+固定位数顺序流水号。该字段值用于后续的查询交易、对账文件等的唯一标识,
  95. //对应通联系统中的交易文件名,可以在通联系统交易查询页面查询到该值
  96. ),
  97. 'BODY' => array(
  98. 'TRANS_SUM' => array(
  99. 'BUSINESS_CODE' => '09900',//业务代码 见附录3.2 非空
  100. 'MERCHANT_ID' => $merchantId,//商户代码 商户ID 非空
  101. 'SUBMIT_TIME' => $submitTime,//提交时间 YYYYMMDDHHMMSS 非空
  102. 'TOTAL_ITEM' => '1',// 总记录数
  103. 'TOTAL_SUM' => $amount,//总金额
  104. 'SETTDAY' => '',//清算日期 仅供特殊商户使用,普通商户不用理会该字段 可空
  105. ),
  106. 'TRANS_DETAILS'=> array(
  107. 'TRANS_DETAIL'=> array(
  108. 'SN' => $transactionSerialNumber."_00001",//记录序号 同一个请求内必须唯一。建议从0001开始递增,交易结果查询时,该字段会原样返回 非空
  109. 'E_USER_CODE' => $channelId,//用户编号 客户编号,开发人员可当作备注字段 可空
  110. 'BANK_CODE'=> $bankCode,//银行代码 银行代码,存折必须填写。见附录3.3,强烈建议填写银行代码 存折必须填写 不填根据卡bin决定
  111. 'ACCOUNT_TYPE' => '00',//账号类型 银行代码,00银行卡,01存折,02信用卡。不填默认为银行卡00。 可空
  112. 'ACCOUNT_NO' => $bankAccountNO,//账号 银行卡或存折号码 非空
  113. 'ACCOUNT_NAME' => $bankAccountName,//账号名 银行卡或存折上的所有人姓名。 非空
  114. 'PROVINCE'=> '',//开户行所在省 不带“省”或“自治区”,如 广东,广西,内蒙古等。 建议根据后附的中国邮政区号表内的“省洲名称”列的内容填写。 可空
  115. 'CITY'=> '',//开户行所在市 不带“市”,如 广州,南宁等。 如果是直辖市,则填区,如北京(市)朝阳(区)。 建议根据后附的中国邮政区号表内的“地区名称”列的内容填写 可空
  116. 'BANK_NAME'=> $bankName,//开户行名称 开户行详细名称,也叫网点,如 中国建设银行广州东山广场分理处。 可空
  117. 'ACCOUNT_PROP' => $ACCOUNT_PROP,//账号属性 0私人,1公司。不填时,默认为私人0。 非空
  118. 'AMOUNT' => $amount,//金额 整数,单位分。 非空
  119. 'CURRENCY' => 'CNY',//货币类型 人民币:CNY, 港元:HKD,美元:USD。不填时,默认为人民币。 可空
  120. 'PROTOCOL'=> '',//协议号 开发人员可省略该字段,也可以当作备注字段使用 可空
  121. 'PROTOCOL_USERID'=> '',// 开发人员可省略该字段,也可以当作备注字段使用 可空
  122. 'ID_TYPE' => '0',//开户证件类型 0:身份证,1: 户口簿,2:护照,3.军官证,4.士兵证,5. 港澳居民来往内地通行证,6. 台湾同胞来往内地通行证,7. 临时身份证,8. 外国人居留证,9. 警官证, X.其他证件 可空
  123. 'ID'=> '',//证件号 可空
  124. 'TEL'=> '',//手机号/小灵通 小灵通带区号,不带括号,减号 可空
  125. 'CUST_USERID' => $channelId,//自定义用户号 商户自定义的用户号,开发人员可当作备注字段使用 可空
  126. 'REMARK' => $remark,//备注 供商户填入参考信息 可空
  127. 'SETTACCT'=> '',//本交易结算户 委托扣款账号,同一批次所有明细必须一致,否则使用的账号不可预测。 可空
  128. 'SETTGROUPFLAG'=> '',//分组清算标志 仅供特殊商户使用,普通商户不要使用该字段,可忽略 可空
  129. 'SUMMARY' => $summary,//交易附言 填入网银的交易备注 可空
  130. 'UNION_BANK'=> '',//支付行号 可空
  131. ),
  132. )
  133. ),
  134. );
  135. //发起请求
  136. $tools=new PhpTools();
  137. $result = $tools->send( $params);
  138. // dd($result);
  139. // print_r($result."\n");
  140. $resultCode = 0;
  141. $resultMsg = "";
  142. if($result!=FALSE){
  143. //echo '验签通过,请对返回信息进行处理';
  144. //下面商户自定义处理逻辑,此处返回一个数组
  145. //INFO -> TRX_CODE 交易代码
  146. //INFO -> VERSION 版本
  147. //INFO -> DATA_TYPE 数据格式 2:xml格式
  148. //INFO -> REQ_SN 交易流水号
  149. //INFO -> RET_CODE 返回代码
  150. //INFO -> ERR_MSG 错误信息
  151. //INFO -> SIGNED_MSG 签名信息
  152. //TRANSRET -> MERCHANT_ID 商户代码 商户ID
  153. //TRANSRET -> RET_CODE 返回码 见查询交易明细响应码,本响应码为处理的最终响应码。
  154. //TRANSRET -> SETTLE_DAY 清算日期 YYYYMMDD
  155. //TRANSRET -> ERR_MSG 错误文本
  156. $resultCode = 0;
  157. $resultMsg = "验签通过";
  158. if(isset($result['AIPG']) && isset($result['AIPG']['INFO']) && isset($result['AIPG']['INFO']['RET_CODE'])) {
  159. $RET_CODE = $result['AIPG']['INFO']['RET_CODE'];
  160. // dd($RET_CODE);
  161. if($RET_CODE == "0000") {
  162. $resultCode = 1;
  163. $resultMsg = "受理成功";
  164. // } else if($RET_CODE == "0000") {
  165. } else {
  166. $ERR_MSG = $result['AIPG']['INFO']['ERR_MSG'];
  167. $resultCode = 0;
  168. $resultMsg = $ERR_MSG;
  169. }
  170. }
  171. // 0000 系统接收成功,仅仅代表请求已成功被通联受理
  172. // 1000 报文内容检查错或者处理错(具体内容见返回错误信息)
  173. // 1001 报文解释错
  174. // 1002 冲正时无此交易
  175. // 1101 金额格式有问题(版本大于04才包含,即报文中version字段为04)
  176. // 1102 记录序号重复(版本大于04才包含)
  177. // 1103 汇总与明细金额不等(版本大于04才包含)
  178. // 1104 汇总笔数和明细笔数不等(版本大于04才包含)
  179. // 1105 商户参数错(版本大于04才包含)
  180. // 1106 签名验证错(版本大于04才包含)
  181. // 1107 权限不足(版本大于04才包含)
  182. // 1xxx 交易被整包拒绝的错误(版本大于0客户端必须兼容新增1xxx错误码)
  183. // 1999 本批交易已经全部失败(最终结果)
  184. // 1099 冲正失败请重试
  185. // 2000 系统正在对数据处理 中间状态
  186. // 2001 等待商户审核中间状态
  187. // 2002 商户审核不通过 最终失败
  188. // 2003 等待 受理中间状态
  189. // 2004 不通过受理最终失败
  190. // 2005 等待 复核中间状态
  191. // 2006 不通过复核最终失败
  192. // 2007 提交银行处理中间状态
  193. // 2008 实时交易超时(中间状态,需要查询)
  194. } else {
  195. $resultCode = 0;
  196. $resultMsg = "验签失败";
  197. // print_r("验签结果:验签失败,请检查通联公钥证书是否正确");
  198. }
  199. $reqData = [
  200. 'code' => $resultCode,
  201. 'msg' => $resultMsg,
  202. 'http_result_data' => $result
  203. ];
  204. return $reqData;
  205. }
  206. /**
  207. * 查询付款结果
  208. * @param $transactionSerialNumber
  209. * @param $reqSn
  210. * @return array
  211. */
  212. public static function payQuery($transactionSerialNumber, $reqSn) {
  213. $userName = "20064100000098104";
  214. $userPass = "111111";
  215. $merchantId = "200641000000981";
  216. // $reqSn = date('YmdHis').mt_rand(100000,999999);
  217. // 源数组
  218. $params = array(
  219. 'INFO' => array(
  220. 'TRX_CODE' => '200004',//
  221. 'VERSION' => '03',
  222. 'DATA_TYPE' => '2',
  223. 'LEVEL' => '6',
  224. 'USER_NAME' => $userName,
  225. 'USER_PASS' => $userPass,
  226. 'REQ_SN' => $reqSn,
  227. ),
  228. 'QTRANSREQ' => array(
  229. 'QUERY_SN' => $transactionSerialNumber,//交易批次号 也就是原请求交易中的REQ_SN的值
  230. 'MERCHANT_ID' => $merchantId, //商户ID
  231. 'STATUS' => '2',//状态 交易状态条件, 0成功,1失败, 2全部,3退票,4代付失败退款,5代付退票退款,6委托扣款,7提现
  232. 'TYPE' => '1',//查询类型 0.按完成日期1.按提交日期,默认为1; 如果使用0查询,未完成交易将查不到
  233. 'START_DAY' => '',//开始日 YYYYMMDDHHmmss 若不填QUERY_SN则必填
  234. 'END_DAY' => ''//结束日 YYYYMMDDHHmmss 填了开始时间必填
  235. ),
  236. );
  237. //发起请求
  238. $tools=new PhpTools();
  239. $result = $tools->send( $params);
  240. // dd($result);
  241. $resultCode = 2;
  242. $resultMsg = "";
  243. if($result!=FALSE) {
  244. /*
  245. * array:1 [▼
  246. * "AIPG" => array:2 [▼
  247. * "INFO" => array:6 [▶
  248. * "TRX_CODE" => "200004"
  249. * "VERSION" => "03"
  250. * "DATA_TYPE" => "2"
  251. * "REQ_SN" => "20171215145732858495"
  252. * "RET_CODE" => "0000"
  253. * "ERR_MSG" => "处理完成"
  254. * ]
  255. * "QTRANSRSP" => array:1 [▼
  256. * "QTDETAIL" => array:14 [▼
  257. * "BATCHID" => "2017121514451522_1" //交易批次号 也就是原请求交易中的REQ_SN的值
  258. * "SN" => "2017121514451522_1_00001" //也就是原请求交易中的SN的值
  259. * "TRXDIR" => "0" //交易方向 0 付 1收
  260. * "SETTDAY" => "20171215" // 清算日期 yyyyMMdd
  261. * "FINTIME" => "20171215144515" //完成时间 yyyyMMddHHmmss
  262. * "SUBMITTIME" => "20171215144515" 提交时间 yyyyMMddHHmmss
  263. * "ACCOUNT_NO" => "6222031202001646388" //账号
  264. * "ACCOUNT_NAME" => "宋栋波" //账号名
  265. * "AMOUNT" => "12" //金额
  266. * "CUST_USERID" => "1" //自定义用户号 原代收付请求报文中的CUST_USERID字段 交易请求中的原样返回
  267. * "REMARK" => "remark" //备注
  268. * "SUMMARY" => "summary" //交易附言
  269. * "RET_CODE" => "3999" //返回码 0000处理成功,其他参见附录
  270. * "ERR_MSG" => "客户付款帐户余额不足" //错误文本
  271. * ]
  272. * ]
  273. * ]
  274. * ]
  275. */
  276. if(isset($result['AIPG']) && isset($result['AIPG']['INFO']) && isset($result['AIPG']['INFO']['RET_CODE'])) {
  277. $RET_CODE = $result['AIPG']['INFO']['RET_CODE'];
  278. // dd($RET_CODE);
  279. if($RET_CODE == "0000") {
  280. if (isset($result['AIPG']['QTRANSRSP']) && isset($result['AIPG']['QTRANSRSP']['QTDETAIL']) && isset($result['AIPG']['QTRANSRSP']['QTDETAIL']['RET_CODE'])) {
  281. $RET_CODE = $result['AIPG']['QTRANSRSP']['QTDETAIL']['RET_CODE'];
  282. if ($RET_CODE == "0000") {
  283. $resultCode = 1;
  284. $resultMsg = "处理成功";
  285. } else {
  286. $ERR_MSG = $result['AIPG']['QTRANSRSP']['QTDETAIL']['ERR_MSG'];
  287. $resultCode = 0;
  288. $resultMsg = $ERR_MSG;
  289. }
  290. // dd($ERR_MSG);
  291. } else {
  292. $resultCode = 2;
  293. $resultMsg = "解析错误";
  294. }
  295. } elseif ($RET_CODE == "2000"
  296. || $RET_CODE == "2001"
  297. || $RET_CODE == "2003"
  298. || $RET_CODE == "2005"
  299. || $RET_CODE == "2007"
  300. || $RET_CODE == "2008") {
  301. //中间状态,等待下次查询
  302. $ERR_MSG = $result['AIPG']['INFO']['ERR_MSG'];
  303. $resultCode = 2;
  304. $resultMsg = $ERR_MSG;
  305. } else {
  306. $ERR_MSG = $result['AIPG']['INFO']['ERR_MSG'];
  307. //$resultCode = 0;
  308. $resultMsg = $ERR_MSG;
  309. }
  310. }
  311. } else {
  312. // $resultCode = 0;
  313. $resultMsg = "验签失败";
  314. // print_r("验签结果:验签失败,请检查通联公钥证书是否正确");
  315. }
  316. $reqData = [
  317. 'code' => $resultCode,
  318. 'msg' => $resultMsg,
  319. 'http_result_data' => $result
  320. ];
  321. return $reqData;
  322. }
  323. /**
  324. * 账户信息查询
  325. * @param $reqSn
  326. * @return array balance:单位分
  327. */
  328. public static function payAccountInfo($reqSn) {
  329. // 源数组
  330. // $reqSn = date('YmdHis').mt_rand(100000,999999);
  331. $reqTime = date('YmdHis');
  332. $params = array(
  333. 'INFO' => array(
  334. 'TRX_CODE' => '300000',//
  335. 'VERSION' => '03',
  336. 'DATA_TYPE' => '2',
  337. 'LEVEL' => '6',
  338. 'USER_NAME' => self::$userName,
  339. 'USER_PASS' => self::$userPass,
  340. 'REQ_SN' => $reqSn,
  341. 'REQTIME' => $reqTime,
  342. ),
  343. 'ACQUERYREQ' => array(
  344. 'ACCTNO' => self::$accountNo,//账户号
  345. ),
  346. );
  347. //发起请求
  348. $tools=new PhpTools();
  349. $result = $tools->send( $params);
  350. // dd($result);
  351. /**
  352. * array:1 [▼
  353. * "AIPG" => array:2 [▼
  354. * "INFO" => array:7 [▼
  355. * "TRX_CODE" => "300000"
  356. * "VERSION" => "03"
  357. * "DATA_TYPE" => "2"
  358. * "REQ_SN" => "20171225145417509551"
  359. * "RET_CODE" => "0000"
  360. * "ERR_MSG" => "查询成功"
  361. * "REPTIME" => "20171225145417"
  362. * ]
  363. * "ACQUERYREP" => array:1 [▼
  364. * "ACNODE" => array:11 [▼
  365. * "ACCTNO" => "200641000000981000" 账户号
  366. * "ACCTNAME" => "海南倍道网络科技有限公司" 账户名
  367. * "BALANCE" => "9899" 余额
  368. * "USABLEBAL" => "0" 可用余额
  369. * "BALBY" => "2" 余额方向
  370. * "DEPOSIT" => "1" 是否允许充值
  371. * "WITHDRAW" => "1" 是否允许提现
  372. * "TRANSFERIN" => "1" 是否允许转入
  373. * "TRANSFEROUT" => "1" 是否允许转出
  374. * "PAYABLE" => "1" 是否允许支付
  375. * "DEFCLR" => "0" 默认结算户
  376. * ]
  377. * ]
  378. * ]
  379. * ]
  380. */
  381. $resultCode = 0;
  382. $resultMsg = "";
  383. $resultBalance = 0;//余额
  384. if($result!=FALSE) {
  385. if(isset($result['AIPG']) && isset($result['AIPG']['INFO']) && isset($result['AIPG']['INFO']['RET_CODE'])) {
  386. $RET_CODE = $result['AIPG']['INFO']['RET_CODE'];
  387. // dd($RET_CODE);
  388. if($RET_CODE == "0000") {
  389. $resultBalance = (float)$result['AIPG']['ACQUERYREP']['ACNODE']['BALANCE'];
  390. $resultMsg = "查询成功";
  391. $resultCode = 1;
  392. } else {
  393. $ERR_MSG = $result['AIPG']['INFO']['ERR_MSG'];
  394. $resultMsg = $ERR_MSG;
  395. $resultCode = 0;
  396. }
  397. }
  398. } else {
  399. $resultCode = 0;
  400. $resultMsg = "验签失败";
  401. // print_r("验签结果:验签失败,请检查通联公钥证书是否正确");
  402. }
  403. $reqData = [
  404. 'code' => $resultCode,
  405. 'msg' => $resultMsg,
  406. 'balance' => $resultBalance,
  407. 'http_result_data' => $result
  408. ];
  409. return $reqData;
  410. }
  411. /**
  412. * 历史余额查询
  413. * @param $reqSn
  414. * @param $startDay 开始日期 yyyyMMdd
  415. * @param $endDay 结束日期 yyyyMMdd
  416. */
  417. public static function payAccountHistoryBalanceAmount($reqSn, $startDay, $endDay) {
  418. $reqTime = date('YmdHis');
  419. $params = array(
  420. 'INFO' => array(
  421. 'TRX_CODE' => '300001',//
  422. 'VERSION' => '03',
  423. 'DATA_TYPE' => '2',
  424. 'LEVEL' => '6',
  425. 'MERCHANT_ID' => self::$merchantId,
  426. 'USER_NAME' => self::$userName,
  427. 'USER_PASS' => self::$userPass,
  428. 'REQ_SN' => $reqSn,
  429. 'REQTIME' => $reqTime,
  430. ),
  431. 'ACQUERYREQ' => array(
  432. 'ACCTNO' => self::$accountNo,//账户号
  433. 'STARTDAY' => $startDay,//开始日期 yyyyMMdd
  434. 'ENDDAY' => $endDay,//结束日期 yyyyMMdd
  435. ),
  436. );
  437. //TODO 没有调试通过
  438. //发起请求
  439. $tools=new PhpTools();
  440. $result = $tools->send( $params);
  441. dd($result);
  442. /**
  443. * array:1 [▼
  444. * "AIPG" => array:1 [▼
  445. * "INFO" => array:7 [▼
  446. * "TRX_CODE" => "300001"
  447. * "VERSION" => "03"
  448. * "DATA_TYPE" => "2"
  449. * "REQ_SN" => "20171225151951469349"
  450. * "RET_CODE" => "2007"
  451. * "ERR_MSG" => "com.aipg.acquery.AcQueryReq cannot be cast to com.aipg.ahquery.AHQueryReq"
  452. * "REPTIME" => "20171225151951"
  453. * ]
  454. * ]
  455. * ]
  456. */
  457. }
  458. }
  459. /**
  460. * array:1 [▼
  461. * "AIPG" => array:2 [▼
  462. * "INFO" => array:6 [▼
  463. * "TRX_CODE" => "200004"
  464. * "VERSION" => "03"
  465. * "DATA_TYPE" => "2"
  466. * "REQ_SN" => "20171221153646302124"
  467. * "RET_CODE" => "2000"
  468. * "ERR_MSG" => "系统正在对数据处理"
  469. * ]
  470. * "QTRANSRSP" => ""
  471. * ]
  472. * ]
  473. */
  474. /**
  475. * {
  476. * "code": 0,
  477. * "msg": "处理成功",
  478. * "data": {
  479. * "code": 1,
  480. * "msg": "处理成功",
  481. * "http_result_data": {
  482. * "AIPG": {
  483. * "INFO": {
  484. * "TRX_CODE": "200004",
  485. * "DATA_TYPE": "2",
  486. * "VERSION": "03",
  487. * "REQ_SN": "20171225115214521366",
  488. * "RET_CODE": "0000",
  489. * "ERR_MSG": "处理完成"
  490. * },
  491. * "QTDETAIL": {
  492. * "QTRANSRSP": {
  493. * "BATCHID": "2017122511504564_1",
  494. * "SN": "2017122511504564_1_00001",
  495. * "TRXDIR": "0",
  496. * "SETTDAY": "20171225",
  497. * "FINTIME": "20171225115151",
  498. * "SUBMITTIME": "20171225115045",
  499. * "ACCOUNT_NO": "6222031202001646388",
  500. * "ACCOUNT_NAME": "宋栋波",
  501. * "AMOUNT": "1",
  502. * "CUST_USERID": "1",
  503. * "REMARK": "remark",
  504. * "SUMMARY": "summary",
  505. * "RET_CODE": "0000",
  506. * "ERR_MSG": "处理成功"
  507. * }
  508. * }
  509. * }
  510. * }
  511. * }
  512. * }
  513. */
  514. /**
  515. * array:1 [▼
  516. * "AIPG" => array:2 [▼
  517. * "INFO" => array:6 [▼
  518. * "TRX_CODE" => "100002"
  519. * "VERSION" => "03"
  520. * "DATA_TYPE" => "2"
  521. * "REQ_SN" => "2017122511504564_1"
  522. * "RET_CODE" => "0000"
  523. * "ERR_MSG" => "受理成功"
  524. * ]
  525. * "BODY" => array:1 [▼
  526. * "RET_DETAILS" => array:1 [▼
  527. * "RET_DETAIL" => array:3 [▼
  528. * "SN" => "2017122511504564_1_00001"
  529. * "RET_CODE" => "0000"
  530. * "ERR_MSG" => null
  531. * ]
  532. * ]
  533. * ]
  534. * ]
  535. * ]
  536. */