WxSceneService.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace bizHd\wx\services;
  3. use bizHd\base\services\BaseService;
  4. use biz\sj\services\MerchantService;
  5. use bizHd\promote\services\CouponService;
  6. use common\components\util;
  7. use common\services\xhTMessageService;
  8. use Yii;
  9. use linslin\yii2\curl;
  10. use common\components\stringUtil;
  11. use common\components\wxUtil;
  12. class WxSceneService extends BaseService
  13. {
  14. public static $baseFile = '\bizHd\wx\classes\WxSceneClass';
  15. //生成刮刮卡的场景id ssh 2019.9.5
  16. public static function generateGuaGuaScene($id, $sjId)
  17. {
  18. $merchant = MerchantService::getById($sjId);
  19. $time = time();
  20. $sceneId = stringUtil::generateSceneId($sjId);
  21. $type = 0;
  22. $data = ['targetId' => $id, 'sceneId' => $sceneId, 'addTime' => $time, 'type' => $type, 'sjId' => $sjId];
  23. //过期时间默认30天,即2592000
  24. $respond = wxUtil::qrcodeCreate($merchant, $sceneId, 2592000);
  25. $url = isset($respond['url']) ? $respond['url'] : '';
  26. if (empty($url)) {
  27. util::fail('没有生成微信场景二维码');
  28. }
  29. self::add($data);
  30. return $url;
  31. }
  32. //生成支付成功领卷的场景 ssh 2019.9.17
  33. public static function generatePayGetCouponScene($userId,$sjId,$merchant)
  34. {
  35. $time = time();
  36. $sceneId = stringUtil::generateSceneId($sjId);
  37. $type = 1;
  38. $data = ['targetId' => $userId, 'sceneId' => $sceneId, 'addTime' => $time, 'type' => $type, 'sjId' => $sjId];
  39. //过期时间默认30天,即2592000
  40. $respond = wxUtil::qrcodeCreate($merchant, $sceneId, 2592000);
  41. $url = isset($respond['url']) ? $respond['url'] : '';
  42. if (empty($url)) {
  43. util::fail('没有生成微信场景二维码');
  44. }
  45. self::add($data);
  46. return $url;
  47. }
  48. //响应扫码场景事件 ssh 2019.9.5
  49. public static function respondScanEvent($merchant, $user, $sceneId)
  50. {
  51. $sjId = $merchant['id'];
  52. $info = self::getByCondition(['sjId' => $sjId, 'sceneId' => (string)$sceneId], true);
  53. if (empty($info)) {
  54. Yii::info('sjId:' . $sjId . ' sceneId:' . $sceneId . '没有找到场景信息');
  55. return false;
  56. }
  57. //刮刮卡
  58. if ($info->type == 0) {
  59. $targetId = $info->targetId;
  60. $openId = $user['openId'];
  61. $allTM = xhTMessageService::getList($sjId);
  62. $shortTempId = 'OPENTM207430125';
  63. if (isset($allTM[$shortTempId])) {
  64. $tempId = $allTM[$shortTempId];
  65. $url = Yii::$app->params['mobileUrl'] . '/gua/index?account=' . $sjId . '&id=' . $targetId;
  66. $data = [
  67. "touser" => $openId, "template_id" => $tempId, "url" => $url,
  68. "data" => ["first" => ["value" => '扫码成功,欢迎参与会员活动', "color" => "#173177"],
  69. "keyword1" => ["value" => "点此参与抽奖哦", "color" => "#173177"],
  70. "keyword2" => ["value" => date("Y-m-d H:i"), "color" => "#173177"],
  71. "remark" => ["value" => "", "color" => "#173177"]]];
  72. wxUtil::sendTaskInform($data, $merchant);
  73. }
  74. } elseif ($info->type == 1) {
  75. if ($info->status == 1) {
  76. return false;
  77. }
  78. CouponService::paySuccessGetCoupon($userId,$sjId);
  79. $info->status = 1;
  80. $info->save();
  81. } else {
  82. }
  83. }
  84. }