Life.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace app\controller\notify;
  3. use app\extra\basic\Base;
  4. use app\extra\dyMini\PlanLive;
  5. use app\model\saas\SaasGoods;
  6. use LinFly\Annotation\Attributes\Route\Controller;
  7. use LinFly\Annotation\Attributes\Route\GetMapping;
  8. use LinFly\Annotation\Attributes\Route\PostMapping;
  9. use support\Request;
  10. use support\Response;
  11. /**
  12. * 生活应用解决方案接入
  13. */
  14. #[Controller("/life")]
  15. class Life extends Base
  16. {
  17. #[GetMapping("test")]
  18. public function test2data(Request $request): Response
  19. {
  20. try {
  21. $param = $this->_valid([
  22. "order.require" => trans("empty.require"),
  23. ],$request->method());
  24. if (!is_array($param)) return error($param);
  25. $data = (new PlanLive)->config([
  26. "appid" => sConf("wechat.mini_appid"),
  27. "secret" => sConf("wechat.mini_secret"),
  28. ])->token()->planOrder($param['order']);
  29. return success('success',$data);
  30. } catch (\Throwable $throwable) {
  31. return error($throwable->getMessage());
  32. }
  33. }
  34. #[PostMapping("spi")]
  35. public function getLifeSpi(Request $request): Response
  36. {
  37. try {
  38. $param = $request->all();
  39. echo getDateFull()."===自研应用回调===\n";
  40. print_r($param);
  41. return error("ddd");
  42. } catch (\Throwable $throwable) {
  43. return error($throwable->getMessage());
  44. }
  45. }
  46. #[PostMapping("hook")]
  47. public function getLifeHook(Request $request): Response
  48. {
  49. try {
  50. $data = $request->all();
  51. echo getDateFull()."===自研应用回调WebHook===\n";
  52. print_r($data);
  53. if (isset($data['event']) && $data['event'] == "verify_webhook") {
  54. return json(['challenge' => $data['content']['challenge']]);
  55. }
  56. $content = json_decode($data['content'],true);
  57. switch ($data['event']) {
  58. case "life_product_status_change": // 商品状态变化
  59. if (in_array($content['status'],['GOODS_OFFLINE','GOODS_BAN','GOODS_DELETE'])) { // 商品下架
  60. (new SaasGoods)->where("goods_id",$content['product_id'])->update(['status' => 3]);
  61. }
  62. break;
  63. default:
  64. break;
  65. }
  66. return error("ddd");
  67. } catch (\Throwable $throwable) {
  68. return error($throwable->getMessage());
  69. }
  70. }
  71. #[PostMapping("mini")]
  72. public function getMiniHook(Request $request): Response
  73. {
  74. try {
  75. $data = $request->all();
  76. echo getDateFull()."===小程序WebHook===\n";
  77. print_r($data);
  78. if (isset($data['event']) && $data['event'] == "verify_webhook") {
  79. return json(['challenge' => $data['content']['challenge']]);
  80. }
  81. return error("ddd");
  82. } catch (\Throwable $throwable) {
  83. return error($throwable->getMessage());
  84. }
  85. }
  86. }