示例#1
0
 /**
  * Test the unsubscribe event
  *
  * @return void
  */
 public function testUnsubscribeOfficialAccount()
 {
     factory(App\Models\Subscriber::class)->create();
     $this->trigger("<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[1234567]]></FromUserName><CreateTime>123456789</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[unsubscribe]]></Event></xml>");
     $this->assertResponseOk();
     $this->see('success');
     $this->assertFalse(Subscriber::where('openId', 1234567)->first()->subscribed());
 }
示例#2
0
 private function createList()
 {
     DB::transaction(function () {
         $this->mailing->status = 'working';
         $this->mailing->save();
         /** @var ListMailing $list */
         $list = ListMailing::forceCreate(['mailing_id' => $this->mailing->id, 'name' => 'some auto name', 'status' => 'pending']);
         Subscriber::where('status', 'active')->get()->each(function (Subscriber $subscriber) use($list) {
             ListMember::forceCreate(['list_id' => $list->id, 'subscriber_id' => $subscriber->id]);
         });
     });
 }
 public function listing($page, $limit)
 {
     $response = array('data' => array(), 'paginator' => '');
     if (!empty($limit)) {
         $subscribers = Subscriber::paginate($limit);
     } else {
         $subscribers = Subscriber::where('id', '>', '0')->get();
     }
     if (!empty($subscribers)) {
         foreach ($subscribers as $key => $subscriber) {
             $response['data'][] = $this->get($subscriber->id, false);
         }
     }
     if (!empty($limit)) {
         $response = Utility::paginator($response, $subscribers, $limit);
     }
     return $response;
 }
示例#4
0
 /**
  * Show the application dashboard to the user.
  *
  * @return Response
  */
 public function contact(Request $request)
 {
     $this->validate($request, ['name' => 'required|min:3|max:255', 'email' => 'required|email', 'contact_no' => 'numeric|min:10', 'subject' => 'required', 'message' => 'required']);
     Mail::send('emails.contact_admin', array('input' => Input::get()), function ($message) {
         $message->from(Input::get('email'), Input::get('name'))->to(env('MAIL_FROM_EMAIL'), env('MAIL_FROM_NAME'))->subject('Received new request');
     });
     Mail::send('emails.contact_user', array(), function ($message) {
         $message->to(Input::get('email'), Input::get('name'))->subject('Thanks for contacting us.');
     });
     Contact::create(Input::get());
     if (Input::get('subscribe')) {
         $subscriber = Subscriber::where('email', '=', Input::get('email'))->first();
         if (!isset($subscriber->exists)) {
             $subscriber_create = Subscriber::create(Input::get());
         }
     }
     return response()->json(['message' => 'Thanks for your request. Our representative will contact you soon.']);
 }
示例#5
0
 /**
  * Handle the event.
  *
  * @param  \App\Events\WechatUserSubscribed  $event
  * @return \App\Models\Message
  */
 public function handle(WechatUserSubscribed $event)
 {
     $m = $event->message;
     /**
      * openId is always unique to our official account, so if user subscribes
      * again, we just need to toggle un-subscribed flag.
      */
     if ($subscriber = Subscriber::where('openId', $m->fromUserName)->where('unsubscribed', true)->first()) {
         $subscriber->unsubscribed = false;
     } else {
         $subscriber = new Subscriber();
         $subscriber->openId = $m->fromUserName;
     }
     $subscriber->save();
     // Link profile with subscriber if subscribe comes from profile page.
     if ($key = $m->messageable->eventKey) {
         Profile::find(Str::substr($key, Str::length('qrscene_')))->update(['weixin' => $m->fromUserName]);
         event(new ChangeSubscriberGroup($subscriber));
     }
     return $this->greetMessage($m->fromUserName, !is_null($key));
 }
示例#6
0
 /**
  * Check if user has subscribed to our official account
  * 
  * @return Boolean 
  */
 public function subscribed()
 {
     return !is_null(Subscriber::where('openId', $this->weixin)->first());
 }
示例#7
0
 /**
  * Handle the event.
  *
  * @param  WechatUserUnsubscribed  $event
  * @return void
  */
 public function handle(WechatUserUnsubscribed $event)
 {
     $subscriber = Subscriber::where('openId', $event->message->fromUserName)->first();
     $subscriber->unsubscribed = true;
     $subscriber->save();
 }