是否可以构建一个功能,通知用户他们是否点击了订阅但未付费?

时间:2014-03-07 12:20:06

标签: php laravel-4 shopping-cart subscription stripe-payments

我正在研究为项目构建一个简单的订阅站点。订阅将是人们将被送到他们家门口的实体产品。

我将使用Stripe和Laravel来构建它,因为有一个非常好的包,刚刚在Laravel上发布了Stripe https://github.com/laravel/cashier

我一直在看Laravel和这个软件包和Stripe,我找不到任何可以让你向用户发送电子邮件的东西(当然已经注册)说'你点击它时没有购买该订阅'。

是否可以在Laravel通知中完成此操作?

2 个答案:

答案 0 :(得分:1)

我在Laravel的文档中发现了一些我以前没见过的内容后,删除了我之前的回答(推荐使用mailchimp / Mandrill)。

Laravel有一个使用Carbon构建的排队系统,可以延迟发送电子邮件,因此一旦您创建了要发送的电子邮件,它就会变得非常容易。

protected function queueReminder($message, $delay)
   {
      $date = Carbon::now()->addMinutes($delay);
      $reminder = Queue::later($date, 'SendEmail@send', array('message' => $message));
      Session::put('reminder', $reminder);

      Return True;
   }

然后,当他们购买时,请返回并取消电子邮件:

 protected function destroyReminder()
   {
      return $reminder->getJobId(Session::get('reminder'))->delete();  
   }

那应该这样做......我没试过,但我希望它有效!

答案 1 :(得分:0)

我不熟悉Stripe包,但我会考虑这样做:

  • 当购物车中的商品被丢弃时,请在#_cart_tmp表格中输入一个条目,其中包含uid,cart_id,通知(标记是否已收到提醒电子邮件)或任何可能使后续处理更容易的内容
  • 付款后,将其删除
  • 每隔90'
  • run a cron,查看此表并相应地发送电子邮件。

唯一的替代方案是JavaScript超时功能,当然这是不够的,如果用户没有连接则不会运行。