| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 | 
							- <?php
 
- /**
 
-  * MpOpenMktNew.php UTF-8
 
-  *
 
-  *
 
-  * @date    : 2021-03-06 17:43
 
-  *
 
-  * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 
-  * @author  : luowei <lw@huosdk.com>
 
-  * @version : HUOSDK 9.0
 
-  */
 
- namespace huoMpAd;
 
- use huo\controller\common\Base;
 
- use huolib\status\CommonStatus;
 
- use huomp\model\weixin\MpAdReportLogModel;
 
- use huomp\model\weixin\MpAdSourceModel;
 
- use huomp\model\weixin\MpConfAgentModel;
 
- use huomp\model\weixin\MpConfModel;
 
- use think\Log;
 
- class MpOpenMktNew extends Base {
 
-     /**
 
-      * 创建数据源
 
-      * https://ad.weixin.qq.com/guide/1680
 
-      *
 
-      * @param        $wx_app_id
 
-      * @param        $wx_app_secret
 
-      * @param string $name           用户行为源名称
 
-      * @param string $type           用户行为源类型    默认:WECHAT_MINI_GAME
 
-      * @param string $promoted_mp_id 小程序/小游戏对应的appid
 
-      *
 
-      * @return array
 
-      */
 
-     public function createDataSourceByAppidSecret(
 
-         $wx_app_id, $wx_app_secret, $name, $promoted_mp_id, $type = 'WECHAT_MINI_GAME'
 
-     ) {
 
-         $_param = [
 
-             'type' => $type,
 
-             'name' => $name
 
-         ];
 
-         if (!empty($promoted_mp_id)) {
 
-             $_param['wechat_app_id'] = $promoted_mp_id;
 
-         }
 
-         $_rs = (new MpAdApi())->createDataSource($wx_app_id, $wx_app_secret, $_param);
 
-         if (CommonStatus::NO_ERROR != $_rs['code']) {
 
-             if ($_rs['code'] == '900351000') {
 
-                 // 已经创建过
 
-                 // msg = "WECHAT_MINI_PROGRAM App wxf4603b9c18a0b5ee already registered with existed one : 1111504663"
 
-                 $_msg_arr = explode(" ", $_rs['msg']);
 
-                 $_user_action_set_id = array_pop($_msg_arr);
 
-             } else {
 
-                 $_code = $_rs['code'];
 
-                 Log::write(
 
-                     ['func' => __FUNCTION__, 'args' => func_get_args(), 'param' => $_param, 'result' => $_rs],
 
-                     LOG::ERROR, true
 
-                 );
 
-                 return $this->huoError($_code, $_rs['msg']);
 
-             }
 
-         } else {
 
-             $_user_action_set_id = $_rs['data']['user_action_set_id'];
 
-         }
 
-         $_data = [
 
-             'user_action_set_id' => $_user_action_set_id,
 
-         ];
 
-         $_code = CommonStatus::NO_ERROR;
 
-         return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_data);
 
-     }
 
-     /**
 
-      * 数据上报
 
-      *
 
-      * @param $mp_conf_info
 
-      * @param $agent_id
 
-      * @param $action_data
 
-      *
 
-      * @return array
 
-      */
 
-     public function dataReport($mp_conf_info, $agent_id, $action_data) {
 
-         // 根据渠道游戏,查找关联的广告账号
 
-         $_promoted_conf_id = $mp_conf_info['id'];
 
-         $_promoted_appid = $mp_conf_info['mp_id'];
 
-         $_promoted_game_id = $mp_conf_info['app_id'];
 
-         $_mp_conf_agent_model = new MpConfAgentModel();
 
-         $_mp_conf_agent_info = $_mp_conf_agent_model->getInfoByConfAgent($_promoted_conf_id, $agent_id);
 
-         if (empty($_mp_conf_agent_info)) {
 
-             $_code = CommonStatus::INNER_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code).'1');
 
-         }
 
-         // 查找关联的广告账号
 
-         $_advertiser_conf_id = $_mp_conf_agent_info['advertiser_conf_id'];
 
-         if (empty($_advertiser_conf_id)) {
 
-             $_code = CommonStatus::NO_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_mp_conf_model = new MpConfModel();
 
-         $_advertiser_conf_info = $_mp_conf_model->getDataById($_advertiser_conf_id);
 
-         $_advertiser_appid = $_advertiser_conf_info['mp_id'];
 
-         $_advertiser_appsecret = $_advertiser_conf_info['app_secret'];
 
-         $_mp_source_info = (new MpAdSourceModel())->getInfoByConfType(
 
-             $_promoted_conf_id, $agent_id, $_advertiser_conf_id
 
-         );
 
-         if (empty($_mp_source_info['source_id'])) {
 
-             $_code = CommonStatus::INNER_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code).'2');
 
-         }
 
-         $_user_action_set_id = $_mp_source_info['source_id'];
 
-         $_action_param_value = $action_data['action_param_value'];
 
-         if ($action_data['action_type'] == 'PURCHASE') {
 
-             $_action_param_value = (int)$_action_param_value * 100;
 
-         }
 
-         $_action_data_url = $action_data['url'] ?? 'http://www.qq.com';
 
-         $_action_time = $action_data['action_time'] ?? time();
 
-         $_action_param_claim_type = $action_data['claim_type'] ?? 0;
 
-         $_action_param_source = $action_data['source'] ?? "Web";
 
-         $_param = [
 
-             'user_action_set_id' => "{$_user_action_set_id}",
 
-             'actions'            => [[
 
-                                          'url'          => $_action_data_url,
 
-                                          'action_time'  => $_action_time,
 
-                                          'action_type'  => $action_data['action_type'],
 
-                                          'user_id'      => [
 
-                                              'wechat_app_id' => $_promoted_appid,
 
-                                              'wechat_openid' => $action_data['openid'],
 
-                                          ],
 
-                                          'action_param' => [
 
-                                              'claim_type' => $_action_param_claim_type,
 
-                                              'source'     => $_action_param_source,
 
-                                              'value'      => $_action_param_value,
 
-                                          ],
 
-                                      ]]
 
-         ];
 
-         Log::write(['广告回传start:', date('Y-m-d H:i:s'), "玩家ID:{$action_data['mem_id']}", $_advertiser_appid, $_advertiser_appsecret, $_param], 'info', true);
 
-         $_rs = (new MpAdApi())->dataReport($_advertiser_appid, $_advertiser_appsecret, $_param);
 
-         Log::write(['广告回传end:', date('Y-m-d H:i:s'),  $_rs], 'info', true);
 
-         if (CommonStatus::NO_ERROR != $_rs['code']) {
 
-             Log::write(
 
-                 ['func'  => __FUNCTION__, 'args' => func_get_args(),
 
-                  'param' => [$_advertiser_appid, $_advertiser_appsecret, $_param], 'result' => $_rs],
 
-                 LOG::ERROR, true
 
-             );
 
-             $_code = CommonStatus::UNKNOWN_ERROR;
 
-             return $this->huoError($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_add_data = [
 
-             'agent_id'                => $action_data['agent_id'] ?? 0,
 
-             'mem_id'                  => $action_data['mem_id'] ?? 0,
 
-             'app_id'                  => $action_data['app_id'] ?? 0,
 
-             'mg_mem_id'               => $action_data['mg_mem_id'] ?? 0,
 
-             'server_id'               => $action_data['server_id'] ?? '',
 
-             'role_id'                 => $action_data['role_id'] ?? '',
 
-             'advertiser_app_id'       => $_advertiser_appid,
 
-             'source_id'               => $_user_action_set_id,
 
-             'url'                     => $_action_data_url,
 
-             'action_type'             => $action_data['action_type'],
 
-             'action_time'             => $_action_time,
 
-             'wechat_app_id'           => $_promoted_appid,
 
-             'wechat_openid'           => $action_data['openid'],
 
-             'action_param_value'      => $_action_param_value,
 
-             'action_param_source'     => $_action_param_source,
 
-             'action_param_claim_type' => $_action_param_claim_type,
 
-         ];
 
-         Log::write(['广告本地start:', date('Y-m-d H:i:s'),  $_add_data], 'info', true);
 
-         (new MpAdReportLogModel())->addData($_add_data);
 
-         $_code = CommonStatus::NO_ERROR;
 
-         return $this->huoSuccess($_code, CommonStatus::getMsg($_code));
 
-     }
 
-     /**
 
-      * 获取数据源报表
 
-      *
 
-      * @param $mp_conf_info
 
-      * @param $agent_id
 
-      * @param $start_date
 
-      * @param $end_date
 
-      *
 
-      * @return array
 
-      */
 
-     public function getDataSourceReport($mp_conf_info, $agent_id, $start_date, $end_date) {
 
-         $_promoted_conf_id = $mp_conf_info['id'];
 
-         $_promoted_appid = $mp_conf_info['mp_id'];
 
-         $_mp_conf_agent_model = new MpConfAgentModel();
 
-         $_mp_conf_agent_info = $_mp_conf_agent_model->getInfoByConfAgent($_promoted_conf_id, $agent_id);
 
-         if (empty($_mp_conf_agent_info)) {
 
-             $_code = CommonStatus::INNER_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code).'1');
 
-         }
 
-         // 查找关联的广告账号
 
-         $_advertiser_conf_id = $_mp_conf_agent_info['advertiser_conf_id'];
 
-         if (empty($_advertiser_conf_id)) {
 
-             $_code = CommonStatus::NO_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_mp_conf_model = new MpConfModel();
 
-         $_advertiser_conf_info = $_mp_conf_model->getDataById($_advertiser_conf_id);
 
-         $_advertiser_appid = $_advertiser_conf_info['mp_id'];
 
-         $_advertiser_appsecret = $_advertiser_conf_info['app_secret'];
 
-         $_mp_source_info = (new MpAdSourceModel())->getInfoByConfType(
 
-             $_promoted_conf_id, $agent_id, $_advertiser_conf_id
 
-         );
 
-         if (empty($_mp_source_info['source_id'])) {
 
-             $_code = CommonStatus::INNER_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_user_action_set_id = $_mp_source_info['source_id'];
 
-         $_param = [
 
-             'user_action_set_id' => $_user_action_set_id,
 
-             'time_granularity'   => 'HOURLY',
 
-             'aggregation'        => 'ACTION_TYPE',
 
-             'date_range'         => json_encode(
 
-                 [
 
-                     'start_date' => $start_date,
 
-                     'end_date'   => $end_date,
 
-                 ], JSON_UNESCAPED_UNICODE
 
-             ),
 
-         ];
 
-         $_rs = (new MpAdApi())->getDataSourceReport($_advertiser_appid, $_advertiser_appsecret, $_param);
 
-         \think\Log::write(['rrrrr', $_advertiser_appid, $_advertiser_appsecret, $_param], 'error', true);
 
-         if (CommonStatus::NO_ERROR != $_rs['code']) {
 
-             $_code = CommonStatus::UNKNOWN_ERROR;
 
-             Log::write(
 
-                 ['func' => __FUNCTION__, 'args' => func_get_args(), 'param' => $_param, 'result' => $_rs],
 
-                 LOG::ERROR, true
 
-             );
 
-             return $this->huoError($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_code = CommonStatus::NO_ERROR;
 
-         return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_rs['data']);
 
-     }
 
-     /**
 
-      * 获取数据源消息
 
-      *
 
-      * @param $mp_conf_info
 
-      * @param $agent_id
 
-      *
 
-      * @return array
 
-      */
 
-     public function getDataSourceInfo($mp_conf_info, $agent_id) {
 
-         $_promoted_conf_id = $mp_conf_info['id'];
 
-         $_promoted_appid = $mp_conf_info['mp_id'];
 
-         $_mp_conf_agent_model = new MpConfAgentModel();
 
-         $_mp_conf_agent_info = $_mp_conf_agent_model->getInfoByConfAgent($_promoted_conf_id, $agent_id);
 
-         if (empty($_mp_conf_agent_info)) {
 
-             $_code = CommonStatus::INNER_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code).'1');
 
-         }
 
-         // 查找关联的广告账号
 
-         $_advertiser_conf_id = $_mp_conf_agent_info['advertiser_conf_id'];
 
-         if (empty($_advertiser_conf_id)) {
 
-             $_code = CommonStatus::NO_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_mp_conf_model = new MpConfModel();
 
-         $_advertiser_conf_info = $_mp_conf_model->getDataById($_advertiser_conf_id);
 
-         $_advertiser_appid = $_advertiser_conf_info['mp_id'];
 
-         $_advertiser_appsecret = $_advertiser_conf_info['app_secret'];
 
-         $_mp_source_info = (new MpAdSourceModel())->getInfoByConfType(
 
-             $_promoted_conf_id, $agent_id, $_advertiser_conf_id
 
-         );
 
-         if (empty($_mp_source_info['source_id'])) {
 
-             $_code = CommonStatus::INNER_ERROR;
 
-             return $this->huoSuccess($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_user_action_set_id = $_mp_source_info['source_id'];
 
-         $_param = [
 
-             'user_action_set_id' => $_user_action_set_id,
 
-         ];
 
-         $_rs = (new MpAdApi())->getDataSourceInfo($_advertiser_appid, $_advertiser_appsecret, $_param);
 
-         \think\Log::write(['rrrrr', $_advertiser_appid, $_advertiser_appsecret, $_param], 'error', true);
 
-         if (CommonStatus::NO_ERROR != $_rs['code']) {
 
-             $_code = CommonStatus::UNKNOWN_ERROR;
 
-             Log::write(
 
-                 ['func' => __FUNCTION__, 'args' => func_get_args(), 'param' => $_param, 'result' => $_rs],
 
-                 LOG::ERROR, true
 
-             );
 
-             return $this->huoError($_code, CommonStatus::getMsg($_code));
 
-         }
 
-         $_code = CommonStatus::NO_ERROR;
 
-         return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_rs['data']);
 
-     }
 
- }
 
 
  |