Kuaidi.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\enum\Setting as SettingEnum;
  4. use app\common\library\express\Kuaidi100;
  5. use app\api\model\Kuaidi as KuaidiModel;
  6. use app\common\model\store\Setting as SettingModel;
  7. use think\facade\Log;
  8. /**
  9. * 快递100接口
  10. * Class Index
  11. * @package app\api\controller
  12. */
  13. class Kuaidi extends Controller
  14. {
  15. //订阅请求接口
  16. public function subscribe(){
  17. $arg = $this->request->param();
  18. // 获取快递100配置项
  19. // 实例化快递100类
  20. $config = SettingModel::getItem(SettingEnum::DELIVERY);
  21. if (empty($config['kuaidi100']['customer']) || empty($config['kuaidi100']['key'])) {
  22. throwError('请先到后台-设置-配送方式 补充物流查询API配置');
  23. }
  24. // 实例化快递100类
  25. $Kuaidi100 = new Kuaidi100($config['kuaidi100']);
  26. // 请求订阅接口
  27. $list = $Kuaidi100->subscribe($arg['number'],$arg['type'] ?? 1,$arg['company']);
  28. return $this->renderSuccess(compact('list'));
  29. }
  30. public function dynamic(){
  31. $arg = $this->request->param();
  32. // 获取快递100配置项
  33. // 实例化快递100类
  34. $config = SettingModel::getItem(SettingEnum::DELIVERY);
  35. if (empty($config['kuaidi100']['customer']) || empty($config['kuaidi100']['key'])) {
  36. throwError('请先到后台-设置-配送方式 补充物流查询API配置');
  37. }
  38. // 实例化快递100类
  39. $Kuaidi100 = new \app\common\model\Express($config['kuaidi100']);
  40. // 请求订阅接口
  41. $list = $Kuaidi100->dynamic($arg['name'],$arg['code'] ?? 1,$arg['no']);
  42. return $this->renderSuccess(compact('list'));
  43. }
  44. /**
  45. * 快递推送回调接口
  46. * @return array
  47. * @author: zjwhust
  48. * @Time: 2021/9/29 14:06
  49. */
  50. public function callback(){
  51. $model = new KuaidiModel;
  52. Log::info('callback:'.':'.json_encode($this->request->param()));
  53. if ($model->upd($this->request->param())) {
  54. return json([
  55. "result"=>true,
  56. "returnCode"=>"200",
  57. "message"=>"成功"
  58. ]);
  59. }
  60. return json([
  61. "result"=>true,
  62. "returnCode"=>"500",
  63. "message"=>"没有接收到订单信息"
  64. ]);
  65. }
  66. }