Order.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. /**
  3. * NiuShop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. */
  9. namespace addon\niusms\model;
  10. use app\model\BaseModel;
  11. /**
  12. * 牛云短信
  13. */
  14. class Order extends BaseModel
  15. {
  16. private $api = "https://www.niushop.com/api";
  17. /**
  18. * 创建短信订单
  19. * @param $data
  20. * @return mixed
  21. */
  22. public function createSmsOrder($data)
  23. {
  24. $url = $this->api . '/smsorder/createSmsOrder';
  25. $res = $this->httpPost($url, $data);
  26. return $res;
  27. }
  28. /**
  29. * 订单计算
  30. * @param $data
  31. * @return mixed
  32. */
  33. public function calculate($data)
  34. {
  35. $url = $this->api . '/smsorder/calculate';
  36. $res = $this->httpPost($url, $data);
  37. return $res;
  38. }
  39. /**
  40. * 获取订单信息
  41. * @param $data
  42. * @return mixed
  43. */
  44. public function getSmsOrderInfo($data)
  45. {
  46. $url = $this->api . '/smsorder/getSmsOrderInfo';
  47. $res = $this->httpPost($url, $data);
  48. return $res;
  49. }
  50. /**
  51. * 获取短信充值订单列表
  52. * @param $data
  53. * @return mixed
  54. */
  55. public function getSmsOrderList($data)
  56. {
  57. $url = $this->api . '/smsorder/getSmsOrderList';
  58. $res = $this->httpPost($url, $data);
  59. return $res;
  60. }
  61. /**
  62. * 待付款订单
  63. * @param $data
  64. * @return mixed
  65. */
  66. public function payment($data)
  67. {
  68. $url = $this->api . '/smsorder/payment';
  69. $res = $this->httpPost($url, $data);
  70. return $res;
  71. }
  72. /**
  73. * 关闭待付款订单
  74. * @param $out_trade_no
  75. * @return mixed
  76. */
  77. public function cronCloseSmsPayment($out_trade_no)
  78. {
  79. $url = $this->api . '/smsorder/closeSmsOrder';
  80. $res = $this->httpPost($url, [ 'out_trade_no' => $out_trade_no ]);
  81. return $res;
  82. }
  83. /**
  84. * 数据请求
  85. * @param $url
  86. * @param $data
  87. * @return array|bool|string
  88. */
  89. public function httpPost($url, $data)
  90. {
  91. // 模拟提交数据函数
  92. $curl = curl_init(); // 启动一个CURL会话
  93. curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
  94. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
  95. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
  96. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[ 'HTTP_USER_AGENT' ]); // 模拟用户使用的浏览器
  97. curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
  98. curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
  99. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  100. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
  101. curl_setopt($curl, CURLOPT_HEADER, false); //开启header
  102. //类型为json
  103. $result = curl_exec($curl); // 执行操作
  104. if (curl_errno($curl)) {
  105. return $this->error('', '系统错误,请联系平台进行处理');
  106. }
  107. curl_close($curl); // 关键CURL会话
  108. $return = json_decode($result, true); // 返回数据
  109. if (!empty($return)) {
  110. if ($return[ 'code' ] < 0) {
  111. return $this->error($return[ 'code' ], $return[ 'message' ]);
  112. } else {
  113. return $this->success($return[ 'data' ]);
  114. }
  115. } else {
  116. return $result;
  117. }
  118. }
  119. }