DinXin.php 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853
  1. <?php
  2. namespace app\expand\controller;
  3. use app\common\service\HelperService;
  4. use think\Cache;
  5. use think\Log;
  6. use think\Validate;
  7. /**
  8. * 鼎新相关接口
  9. * Class Baidu
  10. * @package app\expand\controller
  11. */
  12. class DinXin extends BaseAuth
  13. {
  14. private $_baseUrl = "http://mapi.open.yinghezhong.com";//会员接口基础地址
  15. private $_dinXinAccount = null;
  16. private $_pId = null;
  17. private $_secretKey=null;
  18. public function __construct(){
  19. // echo sha1(md5(base64_encode("KEQIN1557475002"))."439F269CE14DBF34257C08612CE51EC8");exit;
  20. parent::__construct();
  21. $this->_dinXinAccount = $this->getKey($this->_apiCode);
  22. //验证是否具有访问这个接口的权限
  23. if(!isset($this->_dinXinAccount['DinXinPid']) || !isset($this->_dinXinAccount['DinXinSecretKey'])){
  24. HelperService::returnJson(['code'=>400,'msg'=>'din xin interface unauthorized access','data'=>[]]);
  25. }
  26. $this->_pId = $this->_dinXinAccount['DinXinPid'];
  27. $this->_secretKey = $this->_dinXinAccount['DinXinSecretKey'];
  28. }
  29. public function notifyUrl(){
  30. file_put_contents('test','1111');
  31. }
  32. /**
  33. * 创建token签名算法
  34. * @param type $requestArr 请求数组
  35. * @return string
  36. */
  37. private function _createTokenSign($requestArr = [],$authCode=''){
  38. if(empty($requestArr) || !is_array($requestArr)){
  39. return '';
  40. }
  41. ksort($requestArr);
  42. if(!$authCode){
  43. $authCode = $this->_secretKey;
  44. }
  45. // return md5(md5($this->_secretKey.urldecode(http_build_query($requestArr))).$this->_secretKey);
  46. file_put_contents('check_csapi',"$authCode"."//".md5(md5($authCode.urldecode(http_build_query($requestArr))).$authCode)."\n",FILE_APPEND);
  47. return md5(md5($authCode.urldecode(http_build_query($requestArr))).$authCode);
  48. }
  49. /**
  50. * 公共参数接口
  51. */
  52. public function commonParameter(){
  53. $params = $this->_params;
  54. $rule = [
  55. 'pid|集团标识'=>'require',
  56. 'authCode|授权code'=>'require',
  57. ];
  58. $validate = new Validate($rule);
  59. if(!$validate->check($params)){
  60. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError()]);
  61. }
  62. $arr = [
  63. 'format'=>'json',
  64. 'pid'=>$this->_pId,
  65. 'cid'=>'31',
  66. ];
  67. $sign = $this->_createTokenSign($arr,$params['authCode']);
  68. // echo $sign;exit;
  69. $res = http_build_query($arr);
  70. $url = $this->_baseUrl."/cinema/card-level-rule/?$res&_sig=$sign";
  71. $res = file_get_contents($url);
  72. $res_arr = json_decode($res,true);
  73. if($res_arr['res']['status'] != 1){
  74. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  75. }
  76. HelperService::returnJson(['code'=>200, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>$res_arr]);
  77. }
  78. /**
  79. * 会员卡密码校验
  80. */
  81. public function cardAuth(){
  82. $params = $this->_params;
  83. $rule = [
  84. 'cid|影院标识'=>'require',
  85. 'card|卡编号'=>'require',
  86. 'password|密码'=>'require',
  87. ];
  88. $validate = new Validate($rule);
  89. if(!$validate->check($params)){
  90. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError()]);
  91. }
  92. $arr = [
  93. 'format'=>'json',
  94. 'pid'=>$this->_pId,
  95. 'cid'=>$params['cid'],
  96. 'card'=>$params['card'],
  97. 'password'=>md5($params['password']),
  98. ];
  99. $sign = $this->_createTokenSign($arr);
  100. $res = http_build_query($arr);
  101. $url = $this->_baseUrl."/card/auth/?$res&_sig=$sign";
  102. file_put_contents("s",$url);
  103. $res = HelperService::curlGet($url,true);
  104. $res_arr = json_decode($res,true);
  105. if($res_arr['res']['status'] != 1){
  106. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  107. }
  108. HelperService::returnJson(['code'=>200, 'msg'=>'success', 'data'=>$res_arr['res']['data']]);
  109. }
  110. /**
  111. * 3.1.3 会员卡详细信息
  112. */
  113. public function cardDetail(){
  114. $params = $this->_params;
  115. $rule = [
  116. 'cid|影院标识'=>'require',
  117. 'card|卡编号'=>'require',
  118. ];
  119. $validate = new Validate($rule);
  120. if(!$validate->check($params)){
  121. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError()]);
  122. }
  123. $arr = [
  124. 'format'=>'json',
  125. 'pid'=>$this->_pId,
  126. 'cid'=>$params['cid'],
  127. 'card'=>$params['card'],
  128. ];
  129. $sign = $this->_createTokenSign($arr);
  130. $res = http_build_query($arr);
  131. $url = $this->_baseUrl."/card/detail/?$res&_sig=$sign";
  132. $res = HelperService::curlGet($url,true);
  133. $res_arr = json_decode($res,true);
  134. if($res_arr['res']['status'] != 1){
  135. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  136. }
  137. HelperService::returnJson(['code'=>200, 'msg'=>'success', 'data'=>$res_arr['res']['data']]);
  138. }
  139. /**
  140. * 3.3.1 获取卖品列表
  141. */
  142. public function cinemaGoods(){
  143. $params = $this->_params;
  144. $rule = [
  145. 'cid|影院标识'=>'require',
  146. ];
  147. $validate = new Validate($rule);
  148. if(!$validate->check($params)){
  149. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError()]);
  150. }
  151. $arr = [
  152. 'format'=>'json',
  153. 'pid'=>$this->_pId,
  154. 'cid'=>$params['cid'],
  155. ];
  156. $sign = $this->_createTokenSign($arr);
  157. $res = http_build_query($arr);
  158. $url = $this->_baseUrl."/cinema/goods/?$res&_sig=$sign";
  159. $res = HelperService::curlGet($url,true);
  160. $res_arr = json_decode($res,true);
  161. if($res_arr['res']['status'] != 1){
  162. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  163. }
  164. HelperService::returnJson(['code'=>200, 'msg'=>'success', 'data'=>$res_arr['res']['data']]);
  165. }
  166. /**
  167. * 3.2.1 下单接口
  168. */
  169. public function orderBuy(){
  170. $params = $this->_params;
  171. $rule = [
  172. 'cid|影院标识'=>'require',
  173. 'card|卡编号'=>'require',
  174. 'order_no|订单编号'=>'require',
  175. 'goods|卖品'=>'require',
  176. 'goods_card_balance_pay|支付金额'=>'require',
  177. 'cardPassword|密码'=>'require',
  178. ];
  179. $validate = new Validate($rule);
  180. if(!$validate->check($params)){
  181. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError()]);
  182. }
  183. $arr = [
  184. 'format'=>'json',
  185. 'pid'=>$this->_pId,
  186. 'cid'=>$params['cid'],
  187. 'card'=>$params['card'],
  188. 'orderNo'=>$params['order_no'],
  189. 'orderInfo'=>json_encode(array_values($params['goods'])),
  190. 'totalMoney'=>$params['goods_card_balance_pay'],
  191. 'totalPaid'=>$params['goods_card_balance_pay'],
  192. 'cardPassword'=>md5($params['cardPassword']),
  193. 'cardPaidValue'=>$params['goods_card_balance_pay']
  194. ];
  195. $sign = $this->_createTokenSign($arr);
  196. $res = http_build_query($arr);
  197. $url = $this->_baseUrl."/order/buy/?$res&_sig=$sign";
  198. $res = HelperService::curlGet($url,true);
  199. $time = date("Y-m-d H:i:s");
  200. Log::record($time."ORDERBUY_URL:".$url);
  201. Log::record($time."ORDERBUY_res:".$res);
  202. $res_arr = json_decode($res,true);
  203. if($res_arr['res']['status'] != 1){
  204. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  205. }
  206. HelperService::returnJson(['code'=>200, 'msg'=>'success', 'data'=>$res_arr['res']['data']]);
  207. }
  208. /**
  209. * 3.1.4 获得会员卡某场次的购票信息
  210. */
  211. public function cardBuyInfo(){
  212. $arr = [
  213. 'cid'=>'31',
  214. 'card'=>'8701',
  215. 'play_id'=>'16532',
  216. 'format'=>'xml',
  217. 'pid'=>$this->_pId,
  218. ];
  219. $sign = $this->_createTokenSign($arr);
  220. $res = http_build_query($arr);
  221. $url = $this->_baseUrl."/card/buy-info/?$res&_sig=$sign";
  222. $res = file_get_contents($url);
  223. print_r($res);exit;
  224. }
  225. /**
  226. * 3.1.5 获取有效的未出票订单
  227. */
  228. public function orderTickets(){
  229. $arr = [
  230. 'cid'=>'31',
  231. 'card'=>'8701',
  232. 'format'=>'json',
  233. 'pid'=>$this->_pId,
  234. ];
  235. $sign = $this->_createTokenSign($arr);
  236. $res = http_build_query($arr);
  237. $url = $this->_baseUrl."/order/tickets/?$res&_sig=$sign";
  238. $res = file_get_contents($url);
  239. print_r($res);exit;
  240. }
  241. /**
  242. *3.4.6 混合下单(影票、卖品)
  243. */
  244. public function seatLockBuy(){
  245. $arr = [
  246. 'cid'=>'31',
  247. 'card'=>'8701',
  248. 'play_id'=>'611443',
  249. 'seat'=>'15981-3-90-type-0-10,15982-3-90-type-0-10',
  250. 'lock_flag'=>'779179480928',
  251. 'play_update_time'=>'2012-06-19 14:56:12',
  252. 'partner_buy_ticket_id'=>'T1702147',
  253. // 'goods'=>'[{"id":104,"type":"package","price":21,"num":2}]',
  254. // 'goods_card_balance_pay'=>'33.00',
  255. // 't3d_pay_amount'=>'15.00',
  256. 'mobile'=>'13622583652',
  257. // 'is_cinema_price'=>1,
  258. // 'is_subsidy_involved_in_settlement'=>'N',
  259. // 'delivery_type'=>'2',
  260. // 'delivery_location'=>'1号厅',
  261. // 'delivery_appoint_time'=>'2017-09-01 15:20:20',
  262. // 'contact_number'=>'13622583652',
  263. // 'inventory_reduction_flag'=>'1',
  264. // 'refund_order_num'=>'T1702147',
  265. 'format'=>'json',
  266. 'pid'=>$this->_pId,
  267. ];
  268. $sign = $this->_createTokenSign($arr);
  269. $res = http_build_query($arr);
  270. $url = $this->_baseUrl."/seat/lock-buy/?$res&_sig=$sign";
  271. $res = file_get_contents($url);
  272. $res_arr = json_decode($res,true);
  273. if($res_arr['res']['status'] != 1){
  274. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  275. }
  276. }
  277. /**
  278. * 3.4.8 退单(影票、卖品)
  279. */
  280. public function ticketRefund(){
  281. $arr = [
  282. 'cid'=>'31',
  283. 'partner_buy_ticket_id'=>'S17100501',
  284. 'partner_refund_ticket_id'=>'R17100501',
  285. 'format'=>'json',
  286. 'pid'=>$this->_pId,
  287. ];
  288. $sign = $this->_createTokenSign($arr);
  289. $res = http_build_query($arr);
  290. $url = $this->_baseUrl."/ticket/refund/?$res&_sig=$sign";
  291. $res = file_get_contents($url);
  292. $res_arr = json_decode($res,true);
  293. if($res_arr['res']['status'] != 1){
  294. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  295. }
  296. }
  297. /**
  298. * 3.4.9 查询订单状态及取票码
  299. */
  300. public function orderTicketFlag(){
  301. $arr = [
  302. 'cid'=>'31',
  303. 'partner_buy_ticket_id'=>'S17051210',
  304. 'format'=>'json',
  305. 'pid'=>$this->_pId,
  306. ];
  307. $sign = $this->_createTokenSign($arr);
  308. $res = http_build_query($arr);
  309. $url = $this->_baseUrl."/order/ticket-flag/?$res&_sig=$sign";
  310. $res = file_get_contents($url);
  311. $res_arr = json_decode($res,true);
  312. if($res_arr['res']['status'] != 1){
  313. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  314. }
  315. }
  316. /**
  317. * 3.4.10 查询订单状态
  318. */
  319. public function orderStatus(){
  320. $arr = [
  321. 'cid'=>'31',//影院ID
  322. 'partner_order_id'=>'S17051210',//合作商订单流水号,对应(购票时的partner_buy_ticket_id,充值时的partner_deposit_id)
  323. 'type'=>'sell',//订单种类(sell:购票,deposit:充值),默认为sell。
  324. 'format'=>'json',
  325. 'pid'=>$this->_pId,
  326. ];
  327. $sign = $this->_createTokenSign($arr);
  328. $res = http_build_query($arr);
  329. $url = $this->_baseUrl."/order/status/?$res&_sig=$sign";
  330. $res = file_get_contents($url);
  331. $res_arr = json_decode($res,true);
  332. if($res_arr['res']['status'] != 1){
  333. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  334. }
  335. }
  336. /**
  337. * 3.4.11 查询订单信息(影票)
  338. */
  339. public function ticketInfo(){
  340. $arr = [
  341. 'cid'=>'31',//影院ID
  342. 'card'=>'8701',//会员卡号[不是必传]
  343. 'ticket_flag1'=>'135265',//取票验证码第1部分(序列号)
  344. 'ticket_flag2'=>'845166',//取票验证码第2部分(验证码)
  345. 'format'=>'json',
  346. 'pid'=>$this->_pId,
  347. ];
  348. $sign = $this->_createTokenSign($arr);
  349. $res = http_build_query($arr);
  350. $url = $this->_baseUrl."/ticket/info/?$res&_sig=$sign";
  351. $res = file_get_contents($url);
  352. $res_arr = json_decode($res,true);
  353. if($res_arr['res']['status'] != 1){
  354. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  355. }
  356. }
  357. /**
  358. *3.4.13 确认出票(设置影票为已出票)
  359. */
  360. public function ticketPrint(){
  361. $arr = [
  362. 'cid'=>'31',//影院ID
  363. 'card'=>'8701',//会员卡号[不是必传]
  364. 'ticket_flag1'=>'135265',//取票验证码第1部分(序列号)
  365. 'ticket_flag2'=>'845166',//取票验证码第2部分(验证码)
  366. 'tickets'=>'1000000000197052',//影票票号(可以包含多个票号用‘,’隔开)。此参数从《查询订单信息(影票)》接口的响应参数中获取no字段。当打印出现故障时(如:没有票纸,没有墨水)可传递此值只设置打印成功的部分影票为‘已出票’。注意:如果想全部设置为已出票,不传此值即可。
  367. 'format'=>'json',
  368. 'pid'=>$this->_pId,
  369. ];
  370. $sign = $this->_createTokenSign($arr);
  371. $res = http_build_query($arr);
  372. $url = $this->_baseUrl."/ticket/print/?$res&_sig=$sign";
  373. $res = file_get_contents($url);
  374. $res_arr = json_decode($res,true);
  375. if($res_arr['res']['status'] != 1){
  376. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  377. }
  378. }
  379. /**
  380. * 3.2.1 获取影院列表
  381. */
  382. public function partnerCinemas(){
  383. $params = $this->_params;
  384. $rule = [
  385. 'pid|集团标识'=>'require',
  386. 'authCode|授权code'=>'require',
  387. ];
  388. $validate = new Validate($rule);
  389. if(!$validate->check($params)){
  390. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError()]);
  391. }
  392. $arr = [
  393. 'format'=>'json',
  394. 'pid'=>$params['pid'],
  395. ];
  396. $sign = $this->_createTokenSign($arr,$params['authCode']);
  397. $res = http_build_query($arr);
  398. $url = $this->_baseUrl."/partner/cinemas/?$res&_sig=$sign";
  399. $res = HelperService::curlGet($url,true);
  400. $res_arr = json_decode($res,true);
  401. if($res_arr['res']['status'] != 1){
  402. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode']." pid:".$params['pid']."授权码:".$params['authCode'], 'data'=>[]]);
  403. }
  404. HelperService::returnJson(['code'=>200, 'msg'=>'success', 'data'=>$res_arr['res']['data']]);
  405. }
  406. /**
  407. * 3.2.2 获取单个影院配置信息
  408. */
  409. public function cinemaConfig(){
  410. $arr = [
  411. 'cid'=>'31',
  412. 'format'=>'json',
  413. 'pid'=>$this->_pId,
  414. ];
  415. $sign = $this->_createTokenSign($arr);
  416. $res = http_build_query($arr);
  417. $url = $this->_baseUrl."/cinema/config/?$res&_sig=$sign";
  418. $res = file_get_contents($url);
  419. $res_arr = json_decode($res,true);
  420. if($res_arr['res']['status'] != 1){
  421. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  422. }
  423. print_r($res_arr);
  424. }
  425. /**
  426. * 3.2.3 获取放映计划列表
  427. */
  428. public function cinemaPlays(){
  429. $arr = [
  430. 'cid'=>'31',
  431. 'format'=>'json',
  432. 'pid'=>$this->_pId,
  433. ];
  434. $sign = $this->_createTokenSign($arr);
  435. $res = http_build_query($arr);
  436. $url = $this->_baseUrl."/cinema/plays/?$res&_sig=$sign";
  437. $res = file_get_contents($url);
  438. $res_arr = json_decode($res,true);
  439. if($res_arr['res']['status'] != 1){
  440. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  441. }
  442. print_r($res_arr['res']['data']);
  443. }
  444. /**
  445. * 3.1.10 会员卡消费流水查询
  446. */
  447. public function cardTradeQuery(){
  448. $arr = [
  449. 'cid'=>'31',
  450. 'card'=>'8701',
  451. 'stime'=>'2018-05-19 19:00:09',
  452. 'etime'=>'2018-06-19 19:00:09',
  453. 'format'=>'json',
  454. 'pid'=>$this->_pId,
  455. ];
  456. $sign = $this->_createTokenSign($arr);
  457. $res = http_build_query($arr);
  458. $url = $this->_baseUrl."/card/trade-query/?$res&_sig=$sign";
  459. $res = file_get_contents($url);
  460. $res_arr = json_decode($res,true);
  461. if($res_arr['res']['status'] != 1){
  462. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  463. }
  464. print_r($res_arr);
  465. }
  466. /**
  467. * 3.1.11 根据手机号查询卡号
  468. */
  469. public function cardQuerybyphone(){
  470. $arr = [
  471. 'cid'=>'31',
  472. 'phone'=>'13820000000',
  473. 'format'=>'json',
  474. 'pid'=>$this->_pId,
  475. ];
  476. $sign = $this->_createTokenSign($arr);
  477. $res = http_build_query($arr);
  478. $url = $this->_baseUrl."/card/querybyphone/?$res&_sig=$sign";
  479. $res = file_get_contents($url);
  480. $res_arr = json_decode($res,true);
  481. if($res_arr['res']['status'] != 1){
  482. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  483. }
  484. print_r($res_arr);
  485. }
  486. /**
  487. * 3.2.4 获取影片详细信息
  488. */
  489. public function movieInfo(){
  490. $arr = [
  491. 'cid'=>'31',
  492. 'mid'=>'281',//影片编号,对应《获取放映计划列表》接口的业务响应参数cineMovieId
  493. 'format'=>'json',
  494. 'pid'=>$this->_pId,
  495. ];
  496. $sign = $this->_createTokenSign($arr);
  497. $res = http_build_query($arr);
  498. $url = $this->_baseUrl."/movie/info/?$res&_sig=$sign";
  499. $res = file_get_contents($url);
  500. $res_arr = json_decode($res,true);
  501. if($res_arr['res']['status'] != 1){
  502. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  503. }
  504. print_r($res_arr);
  505. }
  506. /**
  507. * 3.2.5 获取场次详细信息
  508. */
  509. public function playInfo(){
  510. $arr = [
  511. 'cid'=>'31',
  512. 'play_id'=>'50002443',//放映场次id,对应《获取放映计划列表》接口业务响应参数id,多个id用‘,’号隔开
  513. 'format'=>'json',
  514. 'pid'=>$this->_pId,
  515. ];
  516. $sign = $this->_createTokenSign($arr);
  517. $res = http_build_query($arr);
  518. $url = $this->_baseUrl."/play/info/?$res&_sig=$sign";
  519. $res = file_get_contents($url);
  520. $res_arr = json_decode($res,true);
  521. if($res_arr['res']['status'] != 1){
  522. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  523. }
  524. print_r($res_arr);
  525. }
  526. /**
  527. * 3.2.6 获取场次座位状态
  528. */
  529. public function playSeatStatus(){
  530. $arr = [
  531. 'cid'=>'31',
  532. 'play_id'=>'50002443',//放映场次id,对应《获取放映计划列表》接口业务响应参数id,多个id用‘,’号隔开
  533. 'play_update_time'=>'2019-02-25 10:35:39',//场次最后更新时间,对应《获取放映计划列表》接口业务响应参数cineUpdatetime
  534. 'format'=>'json',
  535. 'pid'=>$this->_pId,
  536. ];
  537. $sign = $this->_createTokenSign($arr);
  538. $res = http_build_query($arr);
  539. $url = $this->_baseUrl."/play/seat-status/?$res&_sig=$sign";
  540. $res = file_get_contents($url);
  541. $res_arr = json_decode($res,true);
  542. if($res_arr['res']['status'] != 1){
  543. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  544. }
  545. print_r($res_arr);
  546. }
  547. /**
  548. *3.2.7 获取场次座位状态增量
  549. */
  550. public function playPeriodChangedSeats(){
  551. $arr = [
  552. 'cid'=>'31',
  553. 'play_id'=>'50002443',//放映场次id,对应《获取放映计划列表》接口业务响应参数id,多个id用‘,’号隔开
  554. 'start'=>'2019-02-25 10:35:39',//开始时间
  555. // 要求:为了不错过任何座位状态增量,获取座位的时间段最好是和‘上次获取的时间段’有1分钟重叠。
  556. //例如:
  557. //第1次 start=2017-10-10 09:30:00
  558. //返回的座位状态数据包含2017-10-10 09:30:00 至
  559. //2017-10-10 10:00:00
  560. //第2次 start=2017-10-10 09:59:00
  561. //返回的座位状态数据包含2017-10-10 09:59:00 至
  562. //2017-10-10 10:30:00
  563. 'format'=>'json',
  564. 'pid'=>$this->_pId,
  565. ];
  566. $sign = $this->_createTokenSign($arr);
  567. $res = http_build_query($arr);
  568. $url = $this->_baseUrl."/play/period-changed-seats/?$res&_sig=$sign";
  569. $res = file_get_contents($url);
  570. $res_arr = json_decode($res,true);
  571. if($res_arr['res']['status'] != 1){
  572. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  573. }
  574. print_r($res_arr);
  575. }
  576. /**
  577. * 3.2.8 获取场次座位售卖统计信息
  578. */
  579. public function playSeatOverview(){
  580. $arr = [
  581. 'cid'=>'31',
  582. 'play_id'=>'50002443',//放映场次id,对应《获取放映计划列表》接口业务响应参数id,多个id用‘,’号隔开
  583. 'format'=>'json',
  584. 'pid'=>$this->_pId,
  585. ];
  586. $sign = $this->_createTokenSign($arr);
  587. $res = http_build_query($arr);
  588. $url = $this->_baseUrl."/play/seat-overview/?$res&_sig=$sign";
  589. $res = file_get_contents($url);
  590. $res_arr = json_decode($res,true);
  591. if($res_arr['res']['status'] != 1){
  592. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  593. }
  594. print_r($res_arr);
  595. }
  596. /**
  597. * 3.4.2 会员卡充值
  598. */
  599. public function cardRecharge(){
  600. $arr = [
  601. 'cid'=>'31',
  602. 'card'=>'8701',
  603. 'money'=>'500',
  604. 'partner_deposit_id'=>'D1702135',//外部的充值流水号
  605. 'format'=>'json',
  606. 'pid'=>$this->_pId,
  607. ];
  608. $sign = $this->_createTokenSign($arr);
  609. $res = http_build_query($arr);
  610. $url = $this->_baseUrl."/card/recharge/?$res&_sig=$sign";
  611. $res = file_get_contents($url);
  612. $res_arr = json_decode($res,true);
  613. if($res_arr['res']['status'] != 1){
  614. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  615. }
  616. print_r($res_arr);
  617. }
  618. /**
  619. *3.1.6 查询会员卡充值记录
  620. */
  621. public function cardRechargeLog(){
  622. $arr = [
  623. 'cid'=>'31',//影院id
  624. 'card'=>'8701',
  625. 'format'=>'json',
  626. 'pid'=>$this->_pId,
  627. ];
  628. $sign = $this->_createTokenSign($arr);
  629. $res = http_build_query($arr);
  630. $url = $this->_baseUrl."/card/recharge-log/?$res&_sig=$sign";
  631. $res = file_get_contents($url);
  632. $res_arr = json_decode($res,true);
  633. if($res_arr['res']['status'] != 1){
  634. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  635. }
  636. print_r($res_arr);
  637. }
  638. /**
  639. * 3.1.7 查询会员卡历史订单
  640. */
  641. public function orderList(){
  642. $arr = [
  643. 'cid'=>'31',//影院id
  644. 'card'=>'8701',
  645. 'format'=>'json',
  646. 'pid'=>$this->_pId,
  647. ];
  648. $sign = $this->_createTokenSign($arr);
  649. $res = http_build_query($arr);
  650. $url = $this->_baseUrl."/order/list/?$res&_sig=$sign";
  651. $res = file_get_contents($url);
  652. $res_arr = json_decode($res,true);
  653. if($res_arr['res']['status'] != 1){
  654. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  655. }
  656. print_r($res_arr);
  657. }
  658. /**
  659. * 3.1.8 查询某条订单的详细信息
  660. */
  661. public function orderDetail(){
  662. $arr = [
  663. 'cid'=>'31',//影院id
  664. 'card'=>'8701',
  665. 'order_id'=>'465589995387',
  666. 'type'=>'sell',
  667. 'format'=>'json',
  668. 'pid'=>$this->_pId,
  669. ];
  670. $sign = $this->_createTokenSign($arr);
  671. $res = http_build_query($arr);
  672. $url = $this->_baseUrl."/order/detail/?$res&_sig=$sign";
  673. $res = file_get_contents($url);
  674. $res_arr = json_decode($res,true);
  675. if($res_arr['res']['status'] != 1){
  676. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  677. }
  678. print_r($res_arr);
  679. }
  680. /**
  681. *3.1.9 根据卡芯片号查询卡号
  682. */
  683. public function cardId(){
  684. $arr = [
  685. 'cid'=>'31',//影院id
  686. 'card_chip_no'=>'87010100066',
  687. 'format'=>'json',
  688. 'pid'=>$this->_pId,
  689. ];
  690. $sign = $this->_createTokenSign($arr);
  691. $res = http_build_query($arr);
  692. $url = $this->_baseUrl."/card/id/?$res&_sig=$sign";
  693. $res = file_get_contents($url);
  694. $res_arr = json_decode($res,true);
  695. if($res_arr['res']['status'] != 1){
  696. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  697. }
  698. print_r($res_arr);
  699. }
  700. /**
  701. *3.4.1 订票
  702. */
  703. public function seatBook(){
  704. $arr = [
  705. 'cid'=>'31',//影院id
  706. 'play_id'=>'32651',
  707. 'card'=>'8701',
  708. 'seat_id'=>'1662',
  709. 'phone'=>'18355173015',
  710. 'user_name'=>'小明',
  711. 'partner_book_id'=>'b17103621',
  712. 'format'=>'json',
  713. 'pid'=>$this->_pId,
  714. ];
  715. $sign = $this->_createTokenSign($arr);
  716. $res = http_build_query($arr);
  717. $url = $this->_baseUrl."/seat/book/?$res&_sig=$sign";
  718. $res = file_get_contents($url);
  719. $res_arr = json_decode($res,true);
  720. if($res_arr['res']['status'] != 1){
  721. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  722. }
  723. print_r($res_arr);
  724. }
  725. /**
  726. * 3.4.4 座位锁定后获取票价
  727. */
  728. public function seatPrice(){
  729. $arr = [
  730. 'cid'=>'31',//影院id
  731. 'card'=>'8701',
  732. 'lock_flag'=>'779179480928',//对应《座位锁定》接口的业务响应参数lockFlag
  733. 'format'=>'json',
  734. 'pid'=>$this->_pId,
  735. ];
  736. $sign = $this->_createTokenSign($arr);
  737. $res = http_build_query($arr);
  738. $url = $this->_baseUrl."/seat/price/?$res&_sig=$sign";
  739. $res = file_get_contents($url);
  740. $res_arr = json_decode($res,true);
  741. if($res_arr['res']['status'] != 1){
  742. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  743. }
  744. print_r($res_arr);
  745. }
  746. /**
  747. * 3.4.5 座位解锁
  748. */
  749. public function seatUnlock(){
  750. $arr = [
  751. 'cid'=>'31',//影院id
  752. 'play_id'=>'611443',
  753. 'seat_id'=>'10352',
  754. 'lock_flag'=>'779179480928',
  755. 'format'=>'json',
  756. 'pid'=>$this->_pId,
  757. ];
  758. $sign = $this->_createTokenSign($arr);
  759. $res = http_build_query($arr);
  760. $url = $this->_baseUrl."/seat/unlock/?$res&_sig=$sign";
  761. $res = file_get_contents($url);
  762. $res_arr = json_decode($res,true);
  763. if($res_arr['res']['status'] != 1){
  764. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  765. }
  766. print_r($res_arr);
  767. }
  768. /**
  769. * 3.5.1 充值明细对账
  770. */
  771. public function cinemaRechargeBill(){
  772. $arr = [
  773. 'cid'=>'31',//影院id
  774. 'start_date'=>'2016-03-01',
  775. 'end_date'=>'2016-03-06',
  776. 'format'=>'json',
  777. 'pid'=>$this->_pId,
  778. ];
  779. $sign = $this->_createTokenSign($arr);
  780. $res = http_build_query($arr);
  781. $url = $this->_baseUrl."/cinema/recharge-bill?$res&_sig=$sign";
  782. $res = file_get_contents($url);
  783. $res_arr = json_decode($res,true);
  784. if($res_arr['res']['status'] != 1){
  785. HelperService::returnJson(['code'=>400, 'msg'=>$res_arr['res']['errorMessage']."--".$res_arr['res']['errorCode'], 'data'=>[]]);
  786. }
  787. print_r($res_arr);
  788. }
  789. }