ClientOrderController.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. /**
  3. * OrderController.php UTF-8
  4. * 订单处理
  5. *
  6. * @date : 2018/1/16 16:52
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace api\apple\controller\v8;
  13. use api\common\controller\AppleApiBaseController;
  14. use huo\controller\pay\Notify;
  15. use huo\controller\pay\Sdk;
  16. use huolib\constant\OrderConst;
  17. use huolib\status\OrderStatus;
  18. use think\Exception;
  19. class ClientOrderController extends AppleApiBaseController {
  20. public function _initialize() {
  21. parent::_initialize();
  22. }
  23. /**
  24. * 新版支付页面数据
  25. * http://doc.1tsdk.com/138?page_id=3402
  26. * 【域名】/cpay/info
  27. * 【域名】/v8/cpay/info
  28. */
  29. public function getInfo() {
  30. $this->checkLogin();
  31. $_order_rq = $this->setOrderData();
  32. $_pay_token = get_val($this->rq_data, 'pay_token', '');
  33. $_rs = $_order_rq->checkPayToken($_pay_token);
  34. if (false == $_rs) {
  35. $_code = OrderStatus::TOKEN_ARGS_ERROR;
  36. $this->error(OrderStatus::getMsg($_code), [], $_code);
  37. }
  38. $_order_id = $_order_rq->getOrderId();
  39. $_rdata = (new Sdk())->getPayInfo($_order_id, true);
  40. $this->returnData($_rdata);
  41. }
  42. /**
  43. * 查询支付结果
  44. * http://doc.1tsdk.com/138?page_id=2909
  45. * 【域名】/v8/product/query
  46. */
  47. public function read() {
  48. try {
  49. $_order_rq = $this->setOrderData();
  50. $_order = new Sdk();
  51. $_rdata = $_order->getStatus($_order_rq->getOrderId());
  52. if (false == $_rdata) {
  53. $this->error('ERROR');
  54. }
  55. if (OrderConst::CP_STATUS_SUC != $_rdata['cp_status'] && OrderConst::PAY_STATUS_SUC == $_rdata['status']) {
  56. $_rs = (new Notify())->notify($_order_rq->getOrderId());
  57. if (OrderStatus::NO_ERROR == $_rs['code']) {
  58. $_rdata['status'] = OrderConst::PAY_STATUS_SUC;
  59. $_rdata['cp_status'] = OrderConst::CP_STATUS_SUC;
  60. }
  61. }
  62. $_rdata['order_id'] = $_order_rq->getOrderId();
  63. $this->success(lang('SUCCESS'), $_rdata);
  64. } catch (Exception $_e) {
  65. $this->error($_e->getMessage());
  66. }
  67. }
  68. }