123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- namespace App\Services;
- use App\Models\JuxingAdAccount;
- use App\Support\EmailQueue;
- use App\Support\Log;
- use kwaiSDK\JuXing;
- class KsOpenApiService
- {
- /**
- * 修改出价
- * */
- public static function supplementOrderUpdatePrice($advertiserId, $supplementOrderId, $unitPrice, $retry=0)
- {
- $errMsgList = array(
- // '当前订单状态不支持修改出价',
- );
- $accessToken = JuxingAdAccount::getAccessToken($advertiserId);
- $jxObj = new JuXing($accessToken);
- $param = [
- 'advertiser_id' => intval($advertiserId),
- 'supplement_order_id' => intval($supplementOrderId),
- 'unit_price' => (int)round($unitPrice * 1000) // 单位厘
- ];
- $rst = $jxObj->supplementOrderV2()->unitPriceUpdate($param);
- Log::info('助推订单修改出价', ['param' => $param, 'ret' => $rst], 'SupplementOrderUpdatePrice');
- $errMsg = $rst['message'] ?? '未知错误';
- if(($rst === false || $rst['code']) && !in_array($errMsg, $errMsgList)) {
- if($retry < 3) {
- if(isset($rst['message']) && $rst['message']=='订单频控中') {
- sleep(3);
- }
- $retry++;
- return self::supplementOrderUpdatePrice($advertiserId, $supplementOrderId, $unitPrice, $retry);
- } else {
- EmailQueue::rPush('助推订单修改出价请求失败', json_encode([
- 'advertiser_id' => $advertiserId,
- 'supplement_order_id' => $supplementOrderId,
- 'price' => $unitPrice,
- 'response' => $rst,
- 'retry' => $retry
- ], 256), ['xiaohua.hou@kuxuan-inc.com', 'yang.bai@kuxuan-inc.com'], '聚星系统');
- }
- }
- return $rst;
- }
- /**
- * 升单/修改预算
- * */
- public static function supplementOrderAmountUpgrade($advertiserId, $supplementOrderId, $amount, $payMethod, $retry=0)
- {
- $accessToken = JuxingAdAccount::getAccessToken($advertiserId);
- $jxObj = new JuXing($accessToken);
- $param = [
- 'advertiser_id' => intval($advertiserId),
- 'supplement_order_id' => intval($supplementOrderId),
- 'pay_method' => $payMethod,
- 'increased_amount' => intval($amount * 1000) // 单位厘
- ];
- $rst = $jxObj->supplementOrderV2()->amountUpgrade($param);
- Log::info('助推订单升单', ['param' => $param, 'ret' => $rst], 'SupplementOrderAmountUpgrade');
- if(($rst === false || $rst['code'])) {
- if($retry < 3) {
- if(isset($rst['message']) && $rst['message']=='订单频控中') {
- sleep(3);
- }
- $retry++;
- return self::supplementOrderAmountUpgrade($advertiserId, $supplementOrderId, $amount, $payMethod, $retry);
- } else {
- EmailQueue::rPush('助推订单升单失败', json_encode([
- 'advertiser_id' => $advertiserId,
- 'supplement_order_id' => $supplementOrderId,
- 'pay_method' => $payMethod,
- 'amount' => $amount,
- 'response' => $rst,
- 'retry' => $retry
- ], 256), ['xiaohua.hou@kuxuan-inc.com', 'yang.bai@kuxuan-inc.com'], '聚星系统');
- }
- }
- return $rst;
- }
- /**
- * 修改推广结束时间
- * */
- public static function supplementOrderUpdatePromotionEndTime($advertiserId, $supplementOrderId, $promotionEndTime, $retry=0)
- {
- $accessToken = JuxingAdAccount::getAccessToken($advertiserId);
- $jxObj = new JuXing($accessToken);
- $param = [
- 'advertiser_id' => intval($advertiserId),
- 'supplement_order_id' => intval($supplementOrderId),
- // 'promotion_end_time' => date("Y-M-d H:i:s", strtotime($promotionEndTime))
- 'promotion_end_time' => date("Y-m-d H:i:s", strtotime($promotionEndTime)).'.'.rand(100, 999),
- ];
- $rst = $jxObj->supplementOrderV2()->promotionEndtimeUpdate($param);
- Log::info('推广结束时间修改', ['param' => $param, 'rst' => $rst, 'access_token' => $accessToken], 'SupplementOrderUpdatePromotionEndTime');
- if(($rst === false || $rst['code'])) {
- if($retry < 3) {
- if(isset($rst['message']) && $rst['message']=='订单频控中') {
- sleep(3);
- }
- $retry++;
- return self::supplementOrderUpdatePromotionEndTime($advertiserId, $supplementOrderId, $promotionEndTime, $retry);
- } else {
- EmailQueue::rPush('修改推广结束时间失败', json_encode([
- 'advertiser_id' => $advertiserId,
- 'supplement_order_id' => $supplementOrderId,
- 'end_time' => $promotionEndTime,
- 'response' => $rst,
- 'retry' => $retry
- ], 256), ['xiaohua.hou@kuxuan-inc.com', 'yang.bai@kuxuan-inc.com'], '聚星系统');
- }
- }
- return $rst;
- }
- }
|