Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

226 lignes
7.2 KiB

  1. <?php
  2. /**
  3. *
  4. * ============================================================================
  5. * * 版权所有 运游通 * *
  6. * 网站地址: http://www.zhizhuchuxing.com
  7. * ----------------------------------------------------------------------------
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
  9. * 使用;不允许对程序代码以任何形式任何目的的再发布。
  10. * ============================================================================
  11. * Author By: Redstop
  12. * PhpStorm CtripController.php
  13. * Create By 2017/4/17 10:03 $
  14. */
  15. namespace backend\modules\api\controllers;
  16. use backend\modules\api\logic\Ctrip;
  17. use backend\modules\api\models\OrderTitle;
  18. use common\util\CtripUtil;
  19. use yii\web\Controller;
  20. class CtripController extends Controller
  21. {
  22. public $enableCsrfValidation = false;
  23. /***
  24. * @var array 接口列表
  25. */
  26. public $apiList = [
  27. 'VerifyOrder' => 'VerifyOrder',//下单验证接口
  28. 'CreateOrder' => 'CreateOrder',//订单下单接口
  29. 'CancelOrder' => 'CancelOrder',//订单取消接口
  30. 'QueryOrder' => 'QueryOrder',//订单查询接口
  31. 'ReSend' => 'ReSend',//凭证重发接口
  32. 'GetFromCityList' => 'GetFromCityList',//获取出发城市
  33. 'GetToCityList' => 'GetToCityList',//获取到达城市
  34. 'GetLine' => 'GetLine',//获取线路数据
  35. //下面两个接口模拟携程返回
  36. 'NoticeOrderCancel' => 'NoticeOrderCancel',//订单取消审核结果通知接口
  37. 'NoticeOrderConsumed' => 'NoticeOrderConsumed',//消费通知接口
  38. ];
  39. public $unCheck = [
  40. 'Send-test',
  41. 'Verify-order',
  42. ];
  43. public $logic = null;
  44. /**
  45. * Des:logic
  46. * Name: logic
  47. * @return Ctrip
  48. * @author 倪宗锋
  49. */
  50. public function logic()
  51. {
  52. if ($this->logic == null) {
  53. $this->logic = new Ctrip();
  54. }
  55. return $this->logic;
  56. }
  57. /**
  58. * Des:接口入口验证 入口指引
  59. * Name: beforeAction
  60. * @param \yii\base\Action $action
  61. * @return bool
  62. * @author 倪宗锋
  63. */
  64. // public function beforeAction($action)
  65. // {
  66. // $actionName = ucfirst($action->id);
  67. // //校验是否需要校验参数
  68. // if (in_array($actionName, $this->unCheck) == false) {
  69. // $result = CtripUtil::util()->getRequest();
  70. // if ($result['flag'] == false) {
  71. // CtripUtil::util()->returnErr($result['msg'], $result['code'], $result['data']);
  72. // return false;
  73. // }
  74. // $actionName = empty($result['data']['header']['serviceName']) ? '' : $result['data']['header']['serviceName'];
  75. // if (empty($this->apiList[$actionName])) {
  76. // CtripUtil::util()->returnErr("参数不合法+【serviceName】", '1006');
  77. // return false;
  78. // }
  79. // CtripUtil::util()->setAction($action, $actionName);
  80. // }
  81. // return parent::beforeAction($action);
  82. // }
  83. /**
  84. * Des:入口 不会访问
  85. * Name: actionOrderhandler
  86. * @author 倪宗锋
  87. */
  88. public function actionOrderhandler()
  89. {
  90. }
  91. /**
  92. * Des:发送调试
  93. * Name: actionSendTest
  94. * @return string
  95. * @author 倪宗锋
  96. */
  97. public function actionSendTest()
  98. {
  99. $orderTitle = new OrderTitle();
  100. $obj = $orderTitle::findOne(['outside_order_no' => $_GET['ctrip_order']]);
  101. $obj->order_title_status = 3;
  102. $obj->update();
  103. $data = [
  104. 'otaOrderId' => $_GET['ctrip_order'],
  105. 'vendorOrderId' => $_GET['order_id'],
  106. 'useDate' => date('Y-m-d'),
  107. 'amount' => 1,
  108. 'count' => 1,
  109. 'useCount' => 1,
  110. 'cancelCount' => 0,
  111. 'orderStatus' => 5
  112. ];
  113. $ctripUtil = CtripUtil::init()->exec('NoticeOrderConsumed', $data);
  114. if ($ctripUtil['flag'] == false) {
  115. return CtripUtil::util()->returnErr($ctripUtil['msg'], $ctripUtil['code'], $ctripUtil['data']);
  116. }
  117. return CtripUtil::util()->returnSu('', $ctripUtil['data']);
  118. }
  119. /**
  120. * Des:验证下单接口
  121. * Name: actionVerifyOrder
  122. * @author 娄梦宁
  123. */
  124. public function actionVerifyOrder()
  125. {
  126. $params = CtripUtil::util()->getBody();
  127. $logic = new Ctrip();
  128. $verify_result = $logic->VerifyOrder($params);
  129. if ($verify_result['flag']) {
  130. return CtripUtil::util()->returnSu('验证成功', $verify_result['data']);
  131. } else {
  132. return CtripUtil::util()->returnErr($verify_result['msg'], $verify_result['code'], $verify_result['data']);
  133. }
  134. }
  135. /**
  136. * Des:下单接口
  137. * Name: actionCreateOrder
  138. * @author 娄梦宁
  139. */
  140. public function actionCreateOrder()
  141. {
  142. $params = CtripUtil::util()->getBody();
  143. $logic = new Ctrip();
  144. $create_result = $logic->CreateOrder($params);
  145. if ($create_result['flag']) {
  146. return CtripUtil::util()->returnSu('下单成功', $create_result['data']);
  147. } else {
  148. return CtripUtil::util()->returnErr($create_result['msg'], $create_result['code'], $create_result['data']);
  149. }
  150. }
  151. /**
  152. * Des:申请取消订单接口
  153. * Name: actionCancelOrder
  154. * @return string
  155. * @author 倪宗锋
  156. */
  157. public function actionCancelOrder()
  158. {
  159. $params = CtripUtil::util()->getBody();
  160. $result = $this->logic()->CancelOrder($params);
  161. if ($result['flag'] == true) {
  162. return CtripUtil::util()->returnSu('申请取消成功', $result['data']);
  163. } else {
  164. return CtripUtil::util()->returnErr($result['msg'], $result['code'], $result['data']);
  165. }
  166. }
  167. /**
  168. * Des:订单查询接口
  169. * Name: actionQueryOrder
  170. * @author 倪宗锋
  171. */
  172. public function actionQueryOrder()
  173. {
  174. $params = CtripUtil::util()->getBody();
  175. $result = $this->logic()->QueryOrder($params);
  176. if ($result['flag'] == true) {
  177. return CtripUtil::util()->returnSu('查询成功', $result['data']);
  178. } else {
  179. return CtripUtil::util()->returnErr($result['msg'], $result['code'], $result['data']);
  180. }
  181. }
  182. /**
  183. * Function Description:获取出发城市列表
  184. * Function Name: actionGetFromCityList
  185. * @return string
  186. * @author 田玲菲
  187. */
  188. public function actionGetFromCityList()
  189. {
  190. $params = CtripUtil::util()->getBody();
  191. $result = $this->logic()->GetFromCityList($params);
  192. return CtripUtil::util()->returnSu('获取数据成功', $result['data']);
  193. }
  194. /**
  195. * Function Description:获取到达城市
  196. * Function Name: actionGetToCityList
  197. * @return string
  198. * @author 田玲菲
  199. */
  200. public function actionGetToCityList(){
  201. $params = CtripUtil::util()->getBody();
  202. $result = $this->logic()->GetToCityList($params);
  203. if ($result['flag'] == true) {
  204. return CtripUtil::util()->returnSu('获取数据成功', $result['data']);
  205. }else{
  206. return CtripUtil::util()->returnErr($result['msg'], $result['code'], $result['data']);
  207. }
  208. }
  209. }