AgentOrderIncJob.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Jobs;
  3. use App\Repositories\ConfigRepoistory;
  4. use Hyperf\AsyncQueue\Job;
  5. use Hyperf\Guzzle\ClientFactory;
  6. /**
  7. * 代理系统新增订单
  8. */
  9. class AgentOrderIncJob extends Job
  10. {
  11. public $params;
  12. public function __construct($params)
  13. {
  14. // 这里最好是普通数据,不要使用携带 IO 的对象,比如 PDO 对象
  15. $this->params = $params;
  16. }
  17. public function handle()
  18. {
  19. $agentConf = make(ConfigRepoistory::class)->pickByKeys(['agent_url', 'app_uid', 'agent_token'], 'sys');
  20. $url = $agentConf['agent_url']['svalue'] . 'pay/inc';
  21. $data = [
  22. [
  23. 'created_at' => $this->params['created_at'],
  24. 'updated_at' => $this->params['updated_at'],
  25. 'paid_at' => $this->params['updated_at'],
  26. 'channel_uid' => $this->params['user_info']['channel_id'],
  27. 'invite_uid' => $this->params['user_info']['parent_uid'],
  28. 'device_type' => $this->params['user_info']['device_type'],
  29. 'user_uid' => $this->params['user_info']['code'],
  30. 'order_sn' => $this->params['order_sn'],
  31. 'pay_type' => $this->params['pay_type'] ?? '',
  32. 'order_amount' => $this->params['order_amount'],
  33. 'real_amount' => $this->params['real_amount'],
  34. 'transaction_no' => $this->params['trade_no'],
  35. 'order_type' => $this->params['order_type'] ?? 2, //1 vip; 2金币类型订单
  36. 'buy_gold_num' => $this->params['coins'] ?? 0,
  37. 'package_info' => $this->params['package_info'],
  38. 'pay_status' => $this->params['status'],
  39. 'order_status' => $this->params['status'],
  40. 'mom_app_uid' => $agentConf['app_uid']['svalue'],
  41. ]
  42. ];
  43. $options = array(
  44. 'timeout' => 20, // 超时,单位秒.
  45. 'verify' => false, // 是否校验SSL证书.
  46. 'http_errors' => false, // 如果跟随http异常头部是否中断.
  47. 'debug' => false, // 是否启用调试模式.
  48. 'allow_redirects' => true, // 不跟随301/302跳转.
  49. );
  50. $client = make(ClientFactory::class)->create($options);
  51. try {
  52. $params = [
  53. 'headers' => [
  54. 'Content-Type'=>'application/json',
  55. 'X-TOKEN' => $agentConf['agent_token']['svalue']
  56. ],
  57. 'json'=>$data,
  58. ];
  59. $result = $client->post($url, $params);
  60. $code = $result->getStatusCode();
  61. if ($code == 200) {
  62. return $result->getBody()->getContents();
  63. } else {
  64. logger('AgentOrderIncJob', ['代理系统新增订单', $data]);
  65. }
  66. } catch (\Exception $exception) {
  67. logger('AgentOrderIncJob', [$exception->getMessage(), $data]);
  68. }
  69. }
  70. }