WxSendMessageService.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Service\Weixin;
  3. use App\Service\Service;
  4. use Illuminate\Support\Facades\Log;
  5. class WxSendMessageService extends WeixinService
  6. {
  7. public function sendSalaryMessage($openid,$tempid,$data)
  8. {
  9. $reload_url = $data['reload_url'] ?? '';
  10. list($status, $token) = $this->getToken();
  11. if (!$status) return [false, $token];
  12. $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $token;
  13. $post = '{
  14. "touser":"' . $openid . '",
  15. "template_id":"' . $tempid . '",
  16. "url":"' . $reload_url . '",
  17. "data":{
  18. "first": {
  19. "value":"1",
  20. "color":"#173177"
  21. },
  22. %s
  23. "remark":{
  24. "value":"1",
  25. "color":"#173177"
  26. }
  27. }
  28. }';
  29. $content = "";
  30. foreach ($data['detail'] as $k => $v) {
  31. $content .= '"' . $k . '": {
  32. "value":"' . $v . '",
  33. "color":"#173177"
  34. },';
  35. }
  36. $post = sprintf($post, $content);
  37. $res = $this->curlOpen($url, ['post' => $post]);
  38. $res = json_decode($res, true);
  39. if (isset($res['errcode']) && $res['errcode'] != 0) return [false, $res['errmsg']];
  40. if (isset($res['errcode']) && $res['errcode'] === 0) return [true, ''];
  41. return [false, json_encode($res)];
  42. }
  43. }