小编给大家分享一下基于Laravel开发会员分销系统的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
为了概念明确,下文中邀请者用上级替代,被邀请者使用下级替代
首先,我们要明确我们的需求:首先用户可以通过程序分享链接邀请好友注册,被邀请者可以通过链接注册,从而绑定邀请关系,其次在下级消费的时候,上级都可以获得相应的佣金。
现在我们要确定如何实现注册。我原本打算使用理解的方法,只要将用户引导到特定页面,该用户将会被标记为特别推荐页面,待用户完注册,并将关系绑定。但最终采用的是有报酬的的做法,通过向链接添加参数?通过=米格尔来实现推荐页面的构建。
好了,现在让我们创建我们的注册页面,在注册页面程序会通过链接参数通过匹配上级。代码很简单,如果通过存在那么将其存储到饼干30天,由于我们有几个不同子域名都需要该操作,所以我们将其添加到主域名下,这样所有子域均可使用该饼干。下面视具体代码:
import Cookies 得到& # 39;js-cookie& # 39; const via =, new URL (location.href) .searchParams.get(& # 39;通过# 39;) if (通过),{ ,,,Cookies.set (& # 39; sitesauce_affiliate& # 39;,,通过,,{ ,,,,,,,:到期,30日 ,,,,,,,域:,& # 39;.sitesauce.app& # 39; ,,,,,,,安全:,真的, ,,,,,,,sameSite:, & # 39;宽松# 39; ,,,}) }
这样做的好处是当会员未通过此次分享注册,而是事后自己注册的时候,可以明确地知道该会员是通过那个上级的引荐而来的。我想更进一步,在新会员注册的时候通过显示一些标语以及上级者信息,从而使用户明确知道这是来自会员(好友)的一个引荐链接,从而使注册成功率更高,所以我添加了提示弹窗。效果如下:
想要实现上面效果的话,现在我们需要的不仅仅是上级标签,还需要上级详细信息,所以我们需要一个API,该API会通过通过匹配并提供上级详细信息。
import axios 得到& # 39;axios& # 39; import Cookies 得到& # 39;js-cookie& # 39; const via =, new URL (location.href) .searchParams.get(& # 39;通过# 39;) if (通过),{ ,,,axios.post (“https://app.sitesauce.app/api/affiliate/$ {encodeURIcomponent (this.via)}”),然后(response =祝辞,{ ,,,,,,,Cookies.set (& # 39; sitesauce_affiliate& # 39;,, response.data,,{,到期:30日,域:,& # 39;.sitesauce.app& # 39;,,安全,,真的,,sameSite:, & # 39;宽松# 39;,}) ,,,}).catch (error =祝辞,{ ,,,,,,,if (! error.response | |, error.response.status !==, 404), return console.log (& # 39; Something  went 错误# 39;) ,,,,,,,console.log (& # 39; Affiliate  does not 存在只Register for our referral program :, https://app.sitesauce.app/affiliate& # 39;) ,,,}) }
在URL中你可以看到encodeURIComponent,他的作用是保护我们不在受路径遍历脆弱性的影响。在我们发送请求到/api/推荐/:通过,如果过有人恶意修改链接参数,像这样:?通过=. ./. ./注销,用户在点击之后可能会注销,当然这可能没有什么影响,但是不可避免得会有些其他的会带来不可预期影响的操作。
由于Sitesauce在一些地方使用了高山,所以我们在此基础之上,将弹窗修改为高山组件,这样有更好的扩展性。这里要感谢下瑞安在我的转换无法正常工作时,给我提出了宝贵建议。
& lt; div x数据=https://www.yisu.com/zixun/弊榧?){…}x-cloak x-init=" init () "> <模板x="子公司">:模板>你的朋友 邀请你尝试Sitesauce
<按钮>开始审判> 按钮