AlipayAppController.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\admin\controllers\alipay;
  8. use app\modules\admin\controllers\BaseController;
  9. use app\modules\admin\models\AlipayThirdForm;
  10. use app\modules\admin\models\alipay\Alipayapp;
  11. use app\modules\admin\models\alipay\Card;
  12. use app\models\StoreAliMini;
  13. use app\models\StoreAliShop;
  14. use app\models\AlipayMarketingMaterial;
  15. use yii\data\Pagination;
  16. use app\models\Option;
  17. use app\constants\OptionSetting;
  18. class AlipayAppController extends BaseController
  19. {
  20. //服务提报行业类型
  21. public function actionGetServiceCats() {
  22. $form = new AlipayThirdForm();
  23. $res = $form->getServiceCats();
  24. return $this->asJson($res);
  25. }
  26. //服务提报行业模板
  27. public function actionGetServiceSchema($cid = 'C000003264') {
  28. $form = new AlipayThirdForm();
  29. $form->mini_id = post_params("id")??get_params("id");
  30. $res = $form->alipayOpenAppServiceSchemaQuery($cid);
  31. $xml = simplexml_load_string($res['data']);
  32. $res['xxml'] = $xml;
  33. return $this->asJson($res);
  34. }
  35. //服务提报列表
  36. public function actionServiceListQuery() {
  37. $form = new AlipayThirdForm();
  38. $form->mini_id = post_params("id")??get_params("id");
  39. $service_name = input_params('service_name');
  40. $category_id = input_params('category_id');
  41. $page_size = input_params('page_size', 10);
  42. $page_num = input_params('page_num', 1);
  43. $res = $form->alipayOpenAppServiceListQuery($page_size, $page_num, $service_name, $category_id);
  44. return $this->asJson($res);
  45. }
  46. public function actionBasedata() {
  47. $app = new Alipayapp();
  48. $app->mini_id = post_params("id")??get_params("id");
  49. $res = $app->baseData();
  50. return $this->asJson($res);
  51. }
  52. //服务提报申请/修改
  53. public function actionServiceApply() {
  54. $form = new AlipayThirdForm();
  55. $form->mini_id = post_params("id")??get_params("id");
  56. $service_code = post_params('service_code');
  57. $category_id = post_params('category_id');
  58. $service_xml = post_params('xxml');
  59. // var_dump($service_xml);die;
  60. $shopId = StoreAliShop::findOne(['mini_id'=>$form->mini_id])->shop_id;
  61. if(!$shopId){
  62. return $this->asJson([
  63. 'code' => 1,
  64. 'msg' => '支付宝门店不存在',
  65. ]);
  66. }
  67. $app = new Alipayapp();
  68. $app->alipayShopId = $shopId;
  69. $service_xml = $app->serviceSchema($service_xml);
  70. // var_dump($xml);
  71. $res = $form->alipayOpenAppServiceApply($service_code, $category_id, $service_xml);
  72. return $this->asJson($res);
  73. }
  74. //服务提报删除
  75. public function actionServiceDelete() {
  76. $form = new AlipayThirdForm();
  77. $form->mini_id = post_params("id")??get_params("id");
  78. $service_code = input_params('service_code');
  79. $res = $form->alipayOpenAppServiceDelete($service_code);
  80. return $this->asJson($res);
  81. }
  82. //服务提报查询
  83. public function actionServiceQuery() {
  84. $form = new AlipayThirdForm();
  85. $form->mini_id = post_params("id")??get_params("id");
  86. $service_code = input_params('service_code');
  87. $res = $form->alipayOpenAppServiceQuery($service_code);
  88. $xml = simplexml_load_string($res['data']->service_xml);
  89. $res['data']->xxml = $xml;
  90. return $this->asJson($res);
  91. }
  92. //服务场景
  93. public function actionGetServicePromoBoothIds() {
  94. $form = new AlipayThirdForm();
  95. $res = $form->getServicePromoBoothIds();
  96. return $this->asJson($res);
  97. }
  98. //服务场景素材模版查询
  99. public function actionServicePromotemplateQuery() {
  100. $form = new AlipayThirdForm();
  101. $form->mini_id = post_params("id")??get_params("id");
  102. $promo_booth_id = input_params('promo_booth_id');
  103. $res = $form->alipayOpenAppServicePromotemplateQuery($promo_booth_id);
  104. return $this->asJson($res);
  105. }
  106. //服务场景素材申请
  107. public function actionServicePromoApply() {
  108. $form = new AlipayThirdForm();
  109. $form->mini_id = post_params("id")??get_params("id");
  110. $promo_booth_id = input_params('promo_booth_id');
  111. $promo_entity_type = input_params('promo_entity_type');
  112. $promo_entity_codes = input_params('promo_entity_codes');
  113. $promo_contents = input_params('promo_contents');
  114. $res = $form->alipayOpenAppServicePromoApply($promo_booth_id, $promo_entity_type, $promo_entity_codes, $promo_contents);
  115. return $this->asJson($res);
  116. }
  117. //服务场景素材修改
  118. public function actionServicePromoModify() {
  119. $form = new AlipayThirdForm();
  120. $form->mini_id = post_params("id")??get_params("id");
  121. $promo_record_id = input_params('promo_record_id');
  122. $promo_contents = input_params('promo_contents');
  123. $res = $form->alipayOpenAppServicePromoModify($promo_record_id, $promo_contents);
  124. return $this->asJson($res);
  125. }
  126. //服务场景素材删除
  127. public function actionServicePromoDelete() {
  128. $form = new AlipayThirdForm();
  129. $form->mini_id = post_params("id")??get_params("id");
  130. $promo_record_id = input_params('promo_record_id');
  131. $res = $form->alipayOpenAppServicePromoDelete($promo_record_id);
  132. return $this->asJson($res);
  133. }
  134. //服务场景素材查询
  135. public function actionServicePromoQuery() {
  136. $form = new AlipayThirdForm();
  137. $form->mini_id = post_params("id")??get_params("id");
  138. $promo_record_id = input_params('promo_record_id');
  139. $res = $form->alipayOpenAppServicePromoQuery($promo_record_id);
  140. return $this->asJson($res);
  141. }
  142. //搜索运营提报基础信息工单
  143. public function actionSearchBaseorderModify() {
  144. $form = new AlipayThirdForm();
  145. $form->mini_id = post_params("id")??get_params("id");
  146. $order_id = input_params('order_id');
  147. $biz_type = input_params('biz_type', 'SEARCH_ORDER_CREATE');
  148. $opt_type = input_params('opt_type', 'set');
  149. $biz_data = [
  150. 'appid' => 0,
  151. 'access_type' => input_params('access_type', 'BASE'),
  152. 'descprise' => input_params('descprise', '.'),
  153. 'spec_code' => 'SP_MINI_APP',
  154. 'is_draft' => false,
  155. 'base_items' => [
  156. 'key_words' => input_params('key_words'),
  157. 'can_search' => input_params('can_search', true),
  158. ]
  159. ];
  160. if($order_id){
  161. $biz_data['order_id'] = $order_id;
  162. }
  163. $res = $form->alipayOpenSearchBaseorderModify($biz_type, $biz_data, $opt_type);
  164. return $this->asJson($res);
  165. }
  166. //查询搜索服务工单的详细信息
  167. public function actionSearchOrderdetail() {
  168. $form = new AlipayThirdForm();
  169. $form->mini_id = post_params("id")??get_params("id");
  170. $biz_type = input_params('biz_type', 'SEARCH_ORDER_DETAIL_QUERY');
  171. $opt_type = input_params('opt_type', 'query');
  172. $apply_id = input_params('apply_id', '');
  173. $service_code = input_params('service_code', '');
  174. $biz_data = [];
  175. $apply_id && $biz_data['apply_id'] = $apply_id;
  176. $service_code && $biz_data['service_code'] = $service_code;
  177. $res = $form->alipayOpenSearchOrderdetailQuery($biz_type, $biz_data, $opt_type);
  178. return $this->asJson($res);
  179. }
  180. //搜索运营服务查询接口
  181. public function actionSearchServiceorderBatchquery() {
  182. $form = new AlipayThirdForm();
  183. $form->mini_id = post_params("id")??get_params("id");
  184. $biz_type = 'SEARCH_ORDER_BATCH_QUERY';
  185. $opt_type = 'query';
  186. $name = input_params('name');
  187. $audit_status_list = input_params('audit_status_list');
  188. $biz_data = [
  189. 'apply_type' => input_params('apply_type', 'BASE'),
  190. 'page_size' => input_params('page_size', '10'),
  191. 'page_num' => input_params('page_num', '1'),
  192. ];
  193. $name && $biz_data['name'] = $name;
  194. $audit_status_list && $biz_data['audit_status_list'] = $audit_status_list;
  195. $mini = StoreAliMini::findOne($form->mini_id);
  196. $biz_data['service_id'] = $mini->auth_app_id;
  197. $res = $form->alipayOpenSearchServiceorderBatchquery($biz_type, $biz_data, $opt_type);
  198. return $this->asJson($res);
  199. }
  200. //生成小程序推广二维码
  201. public function actionQrcodeCreate() {
  202. $form = new AlipayThirdForm();
  203. $form->mini_id = post_params("id")??get_params("id");
  204. $url_param = input_params('url_param', 'page/home/home');
  205. $query_param = input_params('query_param');
  206. $describe = input_params('describe');
  207. $size = input_params('size', 's');
  208. $color = input_params('color');
  209. $res = $form->alipayOpenAppQrcodeCreate($url_param, $query_param, $describe, $size, $color);
  210. return $this->asJson($res);
  211. }
  212. public function actionArea() {
  213. $form = new AlipayThirdForm();
  214. $res = $form->getArea();
  215. return $this->asJson($res);
  216. }
  217. //创建支付宝素材
  218. public function actionCreateMarketingMaterial()
  219. {
  220. $form = new AlipayThirdForm();
  221. $form->mini_id = post_params("id")??get_params("id");
  222. $params = post_params();
  223. $params['out_biz_no'] = microtime(true);
  224. $params['material_spec_id'] = '2022071100903020000000097797';
  225. $res = $form->alipayMarketingMaterialCreate($params);
  226. return $this->asJson($res);
  227. }
  228. //支付宝素材列表
  229. public function actionListMarketingMaterial()
  230. {
  231. $mini_id = post_params("id")??get_params("id");
  232. $cond = ['mini_id' => $mini_id];
  233. input_params('material_name') && $cond['material_name'] = input_params('material_name');
  234. $query = AlipayMarketingMaterial::find()->where($cond);
  235. $count = $query->count();
  236. $pagination = new Pagination(['totalCount' => $count, 'pageSize' => input_params('pageSize'), 'page' => input_params('page') - 1]);
  237. $list = $query->limit($pagination->limit)->offset($pagination->offset)->orderBy('id DESC')->all();
  238. return $this->asJson([
  239. 'code'=>0,
  240. 'count'=>$count,
  241. 'data'=>$list,
  242. ]);
  243. }
  244. //支付宝素材删除
  245. public function actionDelMarketingMaterial()
  246. {
  247. $mini_id = post_params("id")??get_params("id");
  248. $del = AlipayMarketingMaterial::updateAll(['is_delete' => 1],['mini_id' => $mini_id, 'material_id' => input_params('material_id')]);
  249. return $this->asJson([
  250. 'code'=>0,
  251. 'msg'=>'ok',
  252. 'del' => $del,
  253. ]);
  254. }
  255. public function actionWifiConf()
  256. {
  257. $wifi = Option::get(OptionSetting::APP_WIFI, get_store_id(), 'alipay')['value'];
  258. if($wifi){
  259. $wifi = json_decode($wifi, true);
  260. }else{
  261. $wifi = [
  262. 'list' => [[
  263. "id" => "1",
  264. "tips" => "可直接连接",
  265. "name" => "",
  266. "password" => "",
  267. "description" => "已认证"
  268. ]],
  269. 'info' => '',
  270. 'phoneValidate' => false,
  271. 'options' => [],
  272. 'pageConf' => [
  273. 'img' => 'https://chidian.cyyvip.com/web/v1/statics/images/wifi.png',
  274. 'photo' => '',
  275. 'appId' => Option::get('alipay_appid', 0, 'saas')['value'],
  276. ],
  277. ];
  278. }
  279. return $this->asJson([
  280. 'code'=>0,
  281. 'msg'=>'ok',
  282. 'data' => $wifi,
  283. ]);
  284. }
  285. public function actionWifiConfSave()
  286. {
  287. $conf = input_params('conf');
  288. if(!is_array($conf)){
  289. $conf = json_decode($conf, true);
  290. }
  291. foreach ($conf['list'] as $k => $item) {
  292. $conf['list'][$k]['id'] = $k+1;
  293. }
  294. Option::set(OptionSetting::APP_WIFI, json_encode($conf), get_store_id(), 'alipay');
  295. return $this->asJson([
  296. 'code'=>0,
  297. 'msg'=>'保存成功'
  298. ]);
  299. }
  300. //会员卡模板创建/修改
  301. public function actionCardTemplateCreate() {
  302. $card = new Card();
  303. $card->mini_id = input_params("id", 0);
  304. $card->store_id = get_store_id();
  305. $card_id = post_params('card_id', 0);
  306. $card_action_list = post_params('card_action_list', []);
  307. $card_show_name = post_params('card_show_name', '');
  308. $logo_id = post_params('logo_id', '');
  309. $background_id = post_params('background_id', '');
  310. $column_info_list_point = post_params('column_info_list_point', 0);
  311. $column_info_list_balance = post_params('column_info_list_balance', 0);
  312. $column_info_list = post_params('column_info_list', []);
  313. $template_benefit_info = post_params('template_benefit_info', []);
  314. $open_card_conf_card_rights = post_params('open_card_conf_card_rights', []);
  315. $join_benefit_id = post_params('join_benefit_id', '');
  316. $coupon = post_params('coupon');
  317. $res = $card->tempCreate([
  318. 'card_show_name' => $card_show_name,
  319. 'logo_id' => $logo_id,
  320. 'background_id' => $background_id,
  321. 'column_info_list_point' => $column_info_list_point,
  322. 'column_info_list_balance' => $column_info_list_balance,
  323. 'card_action_list' => $card_action_list,
  324. 'column_info_list' => $column_info_list,
  325. 'template_benefit_info' => $template_benefit_info,
  326. 'open_card_conf_card_rights' => $open_card_conf_card_rights,
  327. 'join_benefit_id' => $join_benefit_id,
  328. 'coupon' => $coupon,
  329. // ], $card_id);
  330. ], $card_id, 0);
  331. return $this->asJson($res);
  332. }
  333. //会员卡模板详情
  334. public function actionCardTemplateInfo() {
  335. $card = new Card();
  336. $card->mini_id = input_params("id");
  337. $card->store_id = get_store_id();
  338. $res = $card->tempInfo();
  339. return $this->asJson($res);
  340. }
  341. //会员卡列表
  342. public function actionCardList() {
  343. $card = new Card();
  344. $card->mini_id = input_params("id");
  345. $card->store_id = get_store_id();
  346. $res = $card->cardList(all_params());
  347. return $this->asJson($res);
  348. }
  349. //会员卡删除
  350. public function actionCardDel() {
  351. $card = new Card();
  352. $card->mini_id = input_params("id");
  353. $card->store_id = get_store_id();
  354. $res = $card->cardDel(input_params("card_id"));
  355. return $this->asJson($res);
  356. }
  357. }