From 7f4c6d3d24df40155be3d1c5c9ceb6f0f29ba4d3 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 12 Nov 2025 17:20:41 +0800 Subject: [PATCH] first commit --- .DS_Store | Bin 0 -> 6148 bytes README.md | 341 ++++++++++++++++++++++++++++++++++++++++++++++++++++ qrcode.jpeg | Bin 0 -> 38281 bytes 3 files changed, 341 insertions(+) create mode 100644 .DS_Store create mode 100644 README.md create mode 100644 qrcode.jpeg diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 本文部分内容已被收录于《全栈路线图》,[可点此查看高清版PDF和源文件](https://github.com/easychen/stack-roadmap) + +[![方糖全栈路线图](https://user-images.githubusercontent.com/1294760/210160612-68e4a551-47d8-4137-b2f1-4dd5fdf6d49d.jpg)](https://github.com/easychen/stack-roadmap) + +本系列文章会持续更新,微信扫码订阅主题,可第一时间获取更新信息。 + +![](qrcode.jpeg) + +- ✨ 个人支付方案一节已更新 +- ✨ 消息触达方案一节已更新 + + +## 作者和授权信息 + +本文由 Easy 撰写。 + +- Weibo: +- Twitter: +- Youtube: + +(欢迎大家关注和订阅,等 Youtube 订阅过 1000 ,我会试试制作本方法论的视频版) + +本文在 cc-by-nc-sa 协议发布。 + +- 您可以复制、发行、展览、表演、放映、广播或通过信息网络传播本作品,但必须署名作者并添加链接到[本文](https://github.com/easychen/one-person-businesses-methodology)。 +- 不得为商业目的而使用本作品。 +- 仅在遵守与本作品相同的许可条款下,您才能散布由本作品产生的派生作品 + +## 为什么有这篇文章 + +不管是独立开发还是IT课程,一个人做业务也好几年了,最近开始回过头整理通过实践获得的认知,并尝试将其梳理为一个方法论。 + +当然这个体系还不完善,但一直没有找到同一个方向又更为完善的。所以不如自己来整理和维护,对自己而言可以定期回顾修正,读过的大家也可以来参与补充。 + +## 什么是一人公司 + +这个方法论,我把它叫做「一人公司方法论」。那首先什么是「一人公司」呢? + +字面的理解就是一个人运营的公司,但实际上它指代的是比较少的人运营的小公司,一般来说1~3个人运营的公司,也可以把它放到一人公司的范围以内。其他一些形式,比如说一个人再加上很多的兼职一块运营的公司,其实也可以看成一人公司。 + +所以从人数上来定义一个公司,实际上并不是很准确。我更喜欢另外一个层面的定义: + +「 一人公司就是建立在个人品牌之上的公司。」 + +这个定义更为准确,它是说整个公司的业务和品牌影响力都主要源于基于一个人。它周围可能有一些辅助运营的团队,有一些外包、有一些兼职,甚至全职助理的角色,那也是一人公司。 + +为什么要单独来观察这一类公司呢?因为我觉得它是以个体创造财富的典型。之前我翻译过一篇趋势报告,叫做「[百万美金的一人公司](https://weibo.com/ttarticle/p/show?id=2309404561766045581440)」。说的就是越来越多的一人公司,可以做到百万美金的价值。当然,直接盈利达到百万美金的不多,但是以 100 万美金估值卖掉的却不少,而且正变得越来越多。 + +## 一人公司的特点 + +### 优点 + +下面我们来看看一人公司的特点。先看优点。 + +第一个显而易见的优点就是成本低。因为整个公司只有一个人,所以无需办公场所等硬性成本;也没有长期雇员,所以它没有固定人工成本。 + +这里需要注意,固定人工成本,实际上是一个会引入风险的成本。很多程序员创业副业喜欢做外包,但是如果你做一家外包公司,就会纠结于固定人工成本。比如在你规模小的时候,接到几个大单子,就需要扩展人员来完成开发。但是如果做完这些项目以后,接不到同样数量的活,你还却依然需要支付同样的薪资来维持团队。这就成为了一个很高的风险。 + +你又不能把员工开掉,下次需要时再招。先不说这样干下次还能不能招到人,每次团队磨合和培养的成本就非常高。 + +回到低成本上来,因为你只有一个人,你不需要协同,所以没有沟通成本,很多事情可以保质保量的快速完成。 + +再一个,因为你没有团队,个人的话,想在哪个城市就可以在哪个城市。现在一些新一线和二线城市的生活成本非常低,生活环境也非常舒适,如果可以把业务放在一线城市,然后生活在其他城市的话,不但生活成本低,而且生活品质反而会得到提高,这也是一个非常划算的地方。 + +因为成本低,相应的对收入的压力就小。一个每月只能挣 10 万的业务,对大公司来讲可能成本都收不回来,但对于一人公司来讲,去掉成本和税都是自己的,很可能可以活得挺滋润。也正是因为存在这些结构性的市场空白,才让一人公司可以存在并得到发展。 + +### 缺点 + +#### 一个人的精力是有限的 + +说完优点,下面我们来说一下缺点。 + +首先就是一个人的时间和精力是非常有限的。因为如果我们一天工作10个小时,一周工作5天,那一周其实就50个小时的工作时间。如果把这50个小时的工作时间均摊到各种要做的事情上边,就会发现其实每一件事都分不了太多时间,这会造成整体业务进展慢。 + +同时,因为就一个人,所以必须在多种业务之间来回切换,这会带来一些额外成本。 + +比如说我们正在编程、正在做架构设计的时候,是在进行深度思考,如果这时候有一些紧急但不重要的事情插入进来,就会把我们从深度思考中拉出来,之后需要再花很多时间才能重新进入到这个状态里边去,甚至可能再也回不到当时的状态,从而丢失掉一些很好的想法。尤其是对一些创造性高的工作来讲,这是非常可惜的。 + + +#### 一个人需要做全部事 + +第二个缺点就是,一人公司往往要求我们一个人把整个链条上的所有事情都做了。原因很简单,因为整个公司就你一个人,你不做就没有人做。 + +这样带来的一个非常明显的问题,就是工作量的大额增加。即使很多没有难度的事情,处理细节也会消耗大量的时间。 + +另外还有一个更严重的问题,「麻雀虽小、五脏俱全」。它不但要求工作量,还对技能有要求。如果你缺乏特定的技能,就需要投入上百个小时的学习时间,而且还不一定能学得好。 + +更有一些大型公司具有的资源,一人公司可能是不具备的,比如像做运营和销售时候的人脉资源。如果持续解决不了,就只能调整策略去绕开。 + +### 矛盾和解决 + +这里就出现了一个非常明显的矛盾:一方面是我们个人的时间精力非常有限(一周就50~60个小时);另外一方面,我们又有非常大量的事情要做,因为公司就我们一个人,所有的事情都是要有人来做的。 + +这个矛盾不解决,一人公司就运转不好。怎么解决呢?还是从矛盾的双方分别入手。 + +#### 提升效率 + +第一个方向,一个人的时间和精力是有限的,那我们能不能提升效率。 + +这个对于其他的行业来讲,可能会比较难,但是对于程序员来讲,可以考虑自动化和人工智能。如果在这两个方向上有突破的话,我们就可以把个人的时间和精力从重复劳动里面解放出来,让机器高效率的去处理重复的事情,把我们仅有的精力放到创造性的、开创性的业务上面来。 + +对于通用业务而言,这个难度可能很大,但如果针对某些特定的业务,还是有可能构造出一人+机器人的效率放大结构的。这个结构一旦完成,就可以极大的提升效率。 + + +#### 选择要做的市场 + +另一个方面,我们还可以从选择要做的市场入手。虽然每个公司都有各种业务,但对于不同的市场,每一种业务的工作量是完全不同的。如果我们对进入的市场进行取舍,就可以把精力集中到那些工作量小的细分市场或者小众市场。比如我们只针对一个小众人群去做一个功能简单的软件,产品和开发的工作量就会小很多。 + +但小众市场往往伴随获客问题。 + +##### 通用渠道 + +首先是通用渠道的相对获客成本变高。比如同样是花一百万买开屏广告,面向大众的快消类产品,100 万人看,其中有 80 万都是潜在目标用户,最后点击可能是 20 万。但小众产品如果以同样价格去投放,100 万人中很可能只有 10 万人是目标用户,这样点击和转化就非常低了。相对而已,小众人群的获客成本反而高很多。 + +##### 定向投放 + +除了通用渠道,我们还可以考虑做定向投放。所谓定向投放是说,对这个小众市场的行业网站和社区投放广告,或者向这个小众市场相关的意见领袖(KOL)做营销推广,再或者购买搜索关键字来导流。这部分的效果会好一些,但成本就要看这个行业竞争如何了,竞争激烈的比通用渠道投放还要贵。 + +##### 自制内容 + +以上两种方式都是需要相当的市场预算的,对于一个刚刚启动还没有盈利的产品,更多的是没有什么预算的情况。这时候我们更多的会考虑自己来做内容、自媒体、成为 KOL。 + +但做内容是需要持续不断投入的事情,在精力上的投入比较大。如果我们是一个人的公司,那一周50个小时的时间,花在视频录制剪辑加字幕发布上的时间,很可能高达20个小时。40%的时间花在做视频上,而这个视频它还不是立竿见影的,需要很长的时间去积累用户。 + +这也是为什么你会看到很多的程序员,不是靠写软件挣钱,而是靠公众号卖广告挣钱。因为做内容就很费时间了,如果还要去开发一个软件,精力上很难支持住。 + +##### 自传播 + +除了做内容,我们还可以在产品设计上发力。如果我们能让产品做到自传播 —— 就是让用户能不断地邀请来新用户,我们就不用花自己的精力在上边了。 + +有网络效应类的产品比较适合做自传播相关功能,因为用户的收益和用户数量成正比的。有的产品不一定适合传播,比如定位是一个非常私密的个人数据类产品,就不一定适合通过分享内容来拉新。 + +当然除了直接整合在产品中,我们也可以通过积分、物质回报来激励。比如现在已经很常用的分销返利或者邀请用户送付费会员等。 + +##### 小结 + +对比以上方案,自传播应该是最好的渠道。需要付出的成本低,效果相对的也好。但它的问题在于如何优化产品,实现持续不断的自传播。这个是非常考验产品能力的。 + + +#### 选择成为平台或生态的一部分 + +除了选择市场以外,我们也可以选择成为平台或者生态的一部分。因为有平台在,我们就可以少做很多事情,甚至只需要关心业务逻辑。 + +对于早年的苹果市场来讲,只要会开发应用可能就OK了。苹果商店会帮你进行销售,其他的事情都不用管。 + +但这其实是理想状态,随着市场慢慢的从蓝海变成一个红海,我们会发现即使应用写完了,在市场里已经有很多同样的应用。我们又只能想办法去做营销相关的优化,在其他渠道去做一些推广。最后之前要做的事情,又回来了。因为对于每一个产品来讲,平台能提供的入口大家都能拿到,只能在这个基础上再竞争。用现在的词就是「内卷」,市场「卷」起来以后,我们就必须去做更多的事情。 + +当然我们也可以不做海,选择去做一个小池塘 —— 就是说这个市场非常小,不太可能变成红海,因为没有那么多的人看得上它。但相应的,这种市场一是很难发现,二是往往随着趋势的发展,它可能会消失掉。可能短期内还能挣点钱,但最后这个市场可能就没了,你又不得不从头来重新寻找新市场,这也是非常痛苦的。 + +苹果商店已经很成熟,所以比较卷。我们也可以去找一些新的平台和生态。比如 toB 的 SaaS 的话,国内可以看看企业微信和钉钉,国外的话可以看看 Airtable 这种新兴生态。如果进入的时间点合适,就能分到很多流量。 + +当然,还是想之前说的,一旦市场竞争变激烈后,红利就会消失,剩下的就是大家真刀真枪的竞争,要做的事情又会变多,如此往复。 + +#### 分离非核心业务 + +确定了市场以后,我们还可以对自己的业务进行取舍。比如,我们把非核心业务给分离出来。这些业务,我们可以外包、可以兼职。对于一些基础设施,我们可以「以租代建」。 + +所谓「以租代建」,就是说以前我们需要什么系统都要自己开发,但是现在有各种各样的云平台、行业SaaS、以及不少按量付费的商业服务。比如商品代发,就已经有平台可以帮你来做。只要付一点钱,就可以让他们帮发货,自己就不用再搞个仓库或者店面来做中转。 + +基础设施和制造业也正在逐渐的成熟和开放,比如3d打印、周边印制。最后它们都会抽象成一些API接口,我们在网上去调用它,付费,剩下的事情就自动完成了。这样的话,很多非核心的业务都可以被分离出来。当然这个是一个过程。不同国家和地区的市场、不同的行业成熟度都不同,需要自己去考察。 + +强调「以租代建」对于程序员有特殊意义,因为对我们来讲写程序是很容易的事情,自己建一套系统也很方便的,而租用别人的还要花钱。以租代建的核心是节省时间和精力,如果我们只是通过不断开发各种系统来省钱,那这样跟我们去接外包挣钱不会有太大的区别。 + +(这也是我自己经常犯的错误,需要时刻提醒自己) + +这里还有一个概念要明确,前面我们有提到说要分离非核心业务,那什么样的业务是核心业务呢。 + +这里有一个简单的判断标准。在我们做的这个业务中,最稀缺的资源应该成为我们的核心业务。比如对网课平台来讲,能持续不断生产优势课程的讲师就是稀缺资源,如何聚集和维护这个群体就是核心业务。只要保证这点,其他资源都会慢慢聚集过来。而其他的部分,比如课程平台的开发,就是非核心业务,可以通过租用或者购买的方式来解决。 + +### 增强优势 + +除了降低工作量,我们更需要想办法来增强优势。因为降低工作量只是保证我们能把产品完成,但如果产品和其他竞品一样的话,并不会具有优势。 + +从用户的角度来讲,大部分的用户并不关心产品背后的开发者是个人还是大企业,更看重付出的成本和得到的收益。所以我们最终还是要回到产品价值上来,为用户提供不可或缺的价值。 + +#### 从标准品到独立品类 + +我们可以给一些标准化的产品去添加独有的特色功能,从而把它变成一个独立的品类。比如我之前做过一个软件叫做[福利单词](https://ding.ftqq.com/works.post),它是一个背单词的软件。在任何一个市场上,这类软件都是一大堆。但福利单词有一个额外的功能,就是在输入单词正确时,会给你显示一张高清的萌妹子福利图。这就带来了完全不同的体验,在它和那些千篇一律的背单词软件中划出了界限,成为了一个同时融合叫教育和娱乐功能的独立品类。 + +如果你觉得这点小功能还不足使其以成为一个独立品类的话,可能我之前做的[学前端 RPG 游戏](https://weibo.com/1088413295/HEC4mqBbS) 更明显一些。 + +#### 副产品优势 + +另外一点就是,我之前在「从精益开发到精益副业」的[视频](https://www.bilibili.com/video/BV1xf4y1k7Be/) 中提到的「副产品优势」。 + +虽然是在运营一人公司,但不一定非要全职来做这件事情。也可以一边上班,一边把一人公司作为副业来做。 + +在这种情况下,我们就会多出来一个优势,我叫它「副产品优势」。核心是说,因为有主业,所以可以保证基本收入和生活品质;在主业工作里边产生的副产品,可以进一步加工为商品,作为副业来销售。这样既没有生活压力,又降低了副业的制作成本。虽然刚开始可能收益的绝对值不大,但可以慢慢把它做大,直到有了充足的现金流,再把它当成主业来做。 + +## 营销优先还是开发优先 + +除了上边提到的这些,在实际运营中,我们还经常会遇到很多其他需要选择的地方。比如,在优先度上,到底是应该营销优先还是开发优先。 + +对于大一点的公司,有足够的人力,营销和开发都是不同的部门去做,所以可能不存在这个问题。但是对于一人公司来讲,其实很难一边做营销,一边不停的去给产品开发新功能。因为营销和运营不是一个短时间的事情,需要持续不断的进行。如果你不去做,很可能流量就没有了,没有流量就没有转化、也就没有收益。 + +另一方面,如果我们不断的开发新功能,时间长了就会有一堆项目需要维护,维护成本累加起来会很大。假设有 50 个项目,平均每个项目一年升级维护一次,每次两天,那么就会花掉我们工作时间的 40%。如果这些项目是免费的还好,可以随时关闭。但如果每个项目都有那么几十个付费用户,既不挣钱就要不断的提供维护和客服,是非常麻烦的。 + +这之间的取舍,会对我们的一人公司的运营产生很大的影响。 + +#### 营销优先 + +营销优先模式是说,我们只开发一个很简单的产品,维持一个很小的功能集。然后不断的去为这个产品寻找新用户。 + +这个模式的优点是,我们开发的功能很少,维护成本比较低,不用不停地开发。 + +而它的缺点就在于,我们需要持续不断的进行营销,不断的获取新的用户。最后可能会发现,越来越多的精力都用到了营销上,用到了拉新上。最后完全变成了做内容或者做业务的竞争。 + +即使这样,如果能做好营销,那其实也不错。但大部分程序员并不喜欢和擅长做营销,而且在没有市场预算的情况下,要成为影响力不错的营销号是需要花很多的时间和精力,甚至还有运气的。 + +关于营销的难度,很多同学没有基本的概念。我这里有一个自己常用的参考转化率,是在以微博为主要流量入口的环境下测试得到的。从信息流展示次数到有效付费购买之间,转化率略为 1~5‰ 。当然,具体的数据会因为营销材料、产品需求有很大的不同(这其实是优化得不错的数据了),当你自己测试过后,可以得到自己的转化率数据。 + +如果你没有自己的数据,那么不妨以 1‰ 为基础简单评估营销难度。也就是说,如果想要获得 100 个购买,大概需要十万次的有效阅读,那么首先以 10 万的触达为基础思考如何达到。 + +#### 开发优先 + +另一种模式叫做开发优先。是说我的营销能力可能不够,那我就面向同一群用户,不做营销了;改为针对已有的这些用户,不断的为他们开发付费产品。 + +这其实就是凯文·凯利那篇《1000个铁杆粉丝》的文章中的逻辑。文章中说,如果你有1000个铁杆粉丝,无论你卖什么东西他们都会买的那种,那你只需要面向他们不断推出产品,就可以维持不错的生活。 + +这种模式的优点是,我们不用到处去做营销,不用过多的去做我们(可能)不擅长的领域。而缺点就是,开发很累,维护也很累。如果不能形成规模效应,就要不断的开发付费应用,每一个产品可能就会做得很浅。 + +你可能要问,为啥我要不断的开发应用,我只开发一个应用,然后不断的收钱不行么?答案当然是可以,但难度有点高。 + +为什么要这么说呢,我们来计算下。假设我们期望每个月的毛收入在 5 万(除去成本和税以后大概在 3 万),如果以 1000 个铁杆粉丝来算,那每一个用户,就需要每个月消费50块钱。 + +这其实是一个很高的费用。从开发者的角度来讲,你可能觉得这个费用不高,但从用户的角度来讲,是很高的。如果你收集下自己和周围的人在软件和互联网服务上的实际开销,就会明白。 + +我之前在微博上[发过一个提问](https://weibo.com/1088413295/ID79ctIwP?from=page_1005051088413295_profile&wvr=6&mod=weibotime),从评论来看,即使一年花销达到200左右的产品和服务都不太多,而且基本是资源导向的,比如视频音乐会员、电商外卖会员。很少有工具类软件能达到这个数的。所以,to C 的工具软件和 SaaS 里边,要找到每年能持续挣600块钱的需求,难度相当高。 + +to B 的服务在价格上相对容易上去,但是在获客成本和开发工作量上又相对较高。如果能在其中找到一个好的需求,倒是很不错。 + +总之,如果我们找不到这样的需求,就只能退而求其次,用多个付费服务来提升客单价。 + +## 实际操作 + +前面说了这么多的分析,但离落地还有一点点距离。在最后一部分里,我们就来思考下怎么落地。 + +1. 发现一个趋势 +2. 寻找一个小市场 +3. 针对这个市场 + 1. 面向 1000 个用户,提供一个每月 50 元定价的产品 + 2. 或者面向 10000 个用户,提供一个每月 5 元的产品 +4. 开发产品并持续运营 + +### 发现趋势 + +首先,我们应该集中精力在发现趋势上。以前创业的时候,我经常思考一个问题。凭什么一个创业公司可以以很小的团队,在很短的时间,用很少的资源崛起。以前的人都没这些人聪明吗?显然不是。后来在阅读一些创业方法论的时候才明白,这是因为创业公司发现了趋势,找到了变化。因为这些变化是新出来的,所以以前的商业虽然有能力,有资源,但难以未卜先知。新的趋势就像山脉的崛起,将原来严丝合缝的商业逻辑撑开,出现了新的商业路径。 + +发现趋势,就是要看到变化。个人的努力虽然重要,但也要考虑时代的进程。尤其对于一人公司来讲,跟上大趋势,才能放大自己有限的精力投入。 + +关于趋势发现,简单粗暴的方式是读研究报告。比如[艾瑞网](http://www.iresearch.com.cn/report.shtml)会定期更新一些简版报告,从里边的数据可以发现很多有意思的趋势。不过这些报告更多的是面向创业投资领域,未必适合一人公司。像我经常在微博上提到的 [Trends.vc](https://weibo.com/ttarticle/p/show?id=2309404559878248333577) 这种专门为独立开发者和一人公司准备的分析报告,就更有针对性一些。 + +### 寻找一个小市场 + +正在高速增长的赛道里往往有大量的巨头和创业公司,从资源上来讲,一人公司在这些领域很难占据优势。 + +但在这些赛道周边,通常都存在一些年收入最高几千万人民币的小市场,这些市场大厂和资本是看不上的,反而是一人公司很好的切入点。如果能结合趋势,选择到一个现在看起来很小,但是会随着趋势慢慢变大的市场,就能进一步保证将来的收益。早期进入,持续深耕,当这个市场成长起来时,即使是一人公司,也会具备很强的竞争力。 + +### 设计产品 + +然后就是针对这个市场设计产品了。根据自己的能力,可以有两个选择: + + 1. 面向 1000 个用户,提供一个每月 50 元定价的产品 + 2. 或者面向 10000 个用户,提供一个每月 5 元的产品 + +当然,其实你还可以进一步调节用户数和月定价,只要乘起来是 5 万就可以。而且 5 万也只是一个参考值,做不到还可以调低。如果一个产品做不到,可以把一个改成两个。这里量化数据的意义在于,给出一个清晰的模式,用来做前期的参考。 + +#### 参考依据 + +在设计的过程中,我们可以准备很多备选方向和产品,通过比较选出最适合自己的。以下是我觉得有用的参考依据: + +1. 市场安全性:发展趋势(是否快要没了)、竞争情况(是否红海) +2. 客户价值:MRR(每月经常收入预期)、LTV(客户生命期价值) +3. 获客渠道和成本:是否能够自传播,传播系数 +4. 工作量:MVP(最简可行产品)所需工时、迭代和升级维护成本 +5. 资源匹配度:是否有自己难以掌控的资源 + +### 开发和持续运营 + +接下来就是 MVP(最简可行产品) 的开发,PMF(产品市场契合) 的寻找以及后续的持续运营(或者转型)了。这一部分的内容可以参考[精益创业系列方法论](https://weibo.com/ttarticle/p/show?id=2309404359108563220763)。 + +## 一人公司的基础设施 + +### 无公司运营 +虽然写的是「一人公司」,但其实我们并不需要一开始就注册一家公司。因为会带来办公地址和记账的固定成本。一般来讲,最理想的方式是以个人身份运营业务,在有了稳定的现金流以后,再注册公司。 + +在国内,很多平台对个人主体并不友好,需要自行寻找替代方案。以 Web 业务为例,我们需要和平台对接的部分通常包括: + +1. 第三方用户登入(比如微信登入) +2. 支付(没有这个就没法收钱) +3. 消息触达(群发通知) + +其中,① 和 ③ 算是加分项,② 则是付费业务不可绕过的。 + +#### 个人支付解决方案 + +就我了解,在目前个人主题可用的支付方案中,唯一安全而且稳定的是「[小微商户](https://pay.weixin.qq.com/index.php/core/affiliate/micro_fqa)」及类似方案。这种方案其实是支付平台(比如微信、支付宝)在提供底层能力,只是通常为了防止被滥用,不开放直接申请,而改用服务商代理的形式。 + +正因如此,它可以做到资金完全走支付平台(而不是你的支付服务商),保证了资金的安全而且没有二次清算问题。 + +国内提供基于小微商户支付方案的有好几家,通过搜索可以发现有 [xorpay](https://xorpay.com?r=api2d) 、payjs 等服务商。但不少服务商不太厚道的自己搞了一个审核流程来收取审核费或者叫开通费。 + +我自己使用的是[面包多](https://mbd.pub/)推出的支付平台:[面包多Pay](https://p.mbd.pub/)。 + +官网注明的特点如下: + +1. 没有开通费,交易时才付费,非常适合启动期的项目,费率为每笔交易 0.1 + 2% +2. 支付完成以后可以显示文字、图片或者跳转到网址,一些简单场景就不用写代码来接入了 + +不过对我而言,最主要的考量还是平台稳定性,现在面包多每月结算数百万,这个支付平台其实就是其业务核心「闪电结算」平台的扩展,属于主业副产品,因此不挣钱应该也会维护下去。 + +一个 Tips:面包多Pay(其他平台我并未交费试用,因此不做评价)的支付接口里边,有一个获取 openid 的接口。它其实可以用来做微信体系下的用户登入。换句话说,无需认证公众号就可以实现微信用户的登入和支付。这就非常适合个人。 + +#### 消息触达 + +常规操作是,在登入时要求用户补全邮箱、手机号并将其作为消息触达主通道。但邮箱时效性差、短信被拦截可能性高,且费钱。因此微信成为了发送通知实时性和到达率最高的通道。但是未认证公众号只能被动回复消息,均不能主动发送消息。即使认证公众号,模板消息权限正在收回。 + +经过比较,我认为目前适合个人的消息触达方式是微信机器人/QQ机器人。通过关注机器人,发送 token 实现账号关联,之后就可以通过机器人推送消息给用户了。我知道的方案如下: + +- 微信机器人方案: [wechaty](https://wechaty.js.org/?utm_source=EasyChen&utm_medium=link&utm_campaign=one-person-businesses-methodology) (网页版协议免费,其他协议收费) +- QQ机器人方案:[mirai](https://github.com/mamoe/mirai) (未亲测) + +机器人方案除了可以用作消息推送,还可以用作登入。比起通过支付接口的 openid api 登入而言,没有因 openid 改变导致用户无法登入的风险。 + + +### 公司注册 +如果你不能找到满意的个人主体解决方案,那么就只能考虑注册公司了。需要留意的是,即使注册公司资质,其实也有个体工商户和公司两个选项。 + +个体工商户的申请流程虽然简单,但其背后是无限责任。而有限责任公司则以注册资金作为上限,更容易规避风险。 + +公司注册不是本文的内容范围,在此就不做展开了。 diff --git a/qrcode.jpeg b/qrcode.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e323940d0963ae3464e6502c9146005ccf635551 GIT binary patch literal 38281 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