Nenhuma Descrição

KsOpenApiService.php 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace App\Services;
  3. use App\Models\JuxingAdAccount;
  4. use App\Support\EmailQueue;
  5. use App\Support\Log;
  6. use kwaiSDK\JuXing;
  7. class KsOpenApiService
  8. {
  9. /**
  10. * 修改出价
  11. * */
  12. public static function supplementOrderUpdatePrice($advertiserId, $supplementOrderId, $unitPrice, $retry=0)
  13. {
  14. $errMsgList = array(
  15. // '当前订单状态不支持修改出价',
  16. );
  17. $accessToken = JuxingAdAccount::getAccessToken($advertiserId);
  18. $jxObj = new JuXing($accessToken);
  19. $param = [
  20. 'advertiser_id' => intval($advertiserId),
  21. 'supplement_order_id' => intval($supplementOrderId),
  22. 'unit_price' => (int)round($unitPrice * 1000) // 单位厘
  23. ];
  24. $rst = $jxObj->supplementOrderV2()->unitPriceUpdate($param);
  25. Log::info('助推订单修改出价', ['param' => $param, 'ret' => $rst], 'SupplementOrderUpdatePrice');
  26. $errMsg = $rst['message'] ?? '未知错误';
  27. if(($rst === false || $rst['code']) && !in_array($errMsg, $errMsgList)) {
  28. if($retry < 3) {
  29. if(isset($rst['message']) && $rst['message']=='订单频控中') {
  30. sleep(3);
  31. }
  32. $retry++;
  33. return self::supplementOrderUpdatePrice($advertiserId, $supplementOrderId, $unitPrice, $retry);
  34. } else {
  35. EmailQueue::rPush('助推订单修改出价请求失败', json_encode([
  36. 'advertiser_id' => $advertiserId,
  37. 'supplement_order_id' => $supplementOrderId,
  38. 'price' => $unitPrice,
  39. 'response' => $rst,
  40. 'retry' => $retry
  41. ], 256), ['xiaohua.hou@kuxuan-inc.com', 'yang.bai@kuxuan-inc.com'], '聚星系统');
  42. }
  43. }
  44. return $rst;
  45. }
  46. /**
  47. * 升单/修改预算
  48. * */
  49. public static function supplementOrderAmountUpgrade($advertiserId, $supplementOrderId, $amount, $payMethod, $retry=0)
  50. {
  51. $accessToken = JuxingAdAccount::getAccessToken($advertiserId);
  52. $jxObj = new JuXing($accessToken);
  53. $param = [
  54. 'advertiser_id' => intval($advertiserId),
  55. 'supplement_order_id' => intval($supplementOrderId),
  56. 'pay_method' => $payMethod,
  57. 'increased_amount' => intval($amount * 1000) // 单位厘
  58. ];
  59. $rst = $jxObj->supplementOrderV2()->amountUpgrade($param);
  60. Log::info('助推订单升单', ['param' => $param, 'ret' => $rst], 'SupplementOrderAmountUpgrade');
  61. if(($rst === false || $rst['code'])) {
  62. if($retry < 3) {
  63. if(isset($rst['message']) && $rst['message']=='订单频控中') {
  64. sleep(3);
  65. }
  66. $retry++;
  67. return self::supplementOrderAmountUpgrade($advertiserId, $supplementOrderId, $amount, $payMethod, $retry);
  68. } else {
  69. EmailQueue::rPush('助推订单升单失败', json_encode([
  70. 'advertiser_id' => $advertiserId,
  71. 'supplement_order_id' => $supplementOrderId,
  72. 'pay_method' => $payMethod,
  73. 'amount' => $amount,
  74. 'response' => $rst,
  75. 'retry' => $retry
  76. ], 256), ['xiaohua.hou@kuxuan-inc.com', 'yang.bai@kuxuan-inc.com'], '聚星系统');
  77. }
  78. }
  79. return $rst;
  80. }
  81. /**
  82. * 修改推广结束时间
  83. * */
  84. public static function supplementOrderUpdatePromotionEndTime($advertiserId, $supplementOrderId, $promotionEndTime, $retry=0)
  85. {
  86. $accessToken = JuxingAdAccount::getAccessToken($advertiserId);
  87. $jxObj = new JuXing($accessToken);
  88. $param = [
  89. 'advertiser_id' => intval($advertiserId),
  90. 'supplement_order_id' => intval($supplementOrderId),
  91. // 'promotion_end_time' => date("Y-M-d H:i:s", strtotime($promotionEndTime))
  92. 'promotion_end_time' => date("Y-m-d H:i:s", strtotime($promotionEndTime)).'.'.rand(100, 999),
  93. ];
  94. $rst = $jxObj->supplementOrderV2()->promotionEndtimeUpdate($param);
  95. Log::info('推广结束时间修改', ['param' => $param, 'rst' => $rst, 'access_token' => $accessToken], 'SupplementOrderUpdatePromotionEndTime');
  96. if(($rst === false || $rst['code'])) {
  97. if($retry < 3) {
  98. if(isset($rst['message']) && $rst['message']=='订单频控中') {
  99. sleep(3);
  100. }
  101. $retry++;
  102. return self::supplementOrderUpdatePromotionEndTime($advertiserId, $supplementOrderId, $promotionEndTime, $retry);
  103. } else {
  104. EmailQueue::rPush('修改推广结束时间失败', json_encode([
  105. 'advertiser_id' => $advertiserId,
  106. 'supplement_order_id' => $supplementOrderId,
  107. 'end_time' => $promotionEndTime,
  108. 'response' => $rst,
  109. 'retry' => $retry
  110. ], 256), ['xiaohua.hou@kuxuan-inc.com', 'yang.bai@kuxuan-inc.com'], '聚星系统');
  111. }
  112. }
  113. return $rst;
  114. }
  115. }