Linux 和电子商务

作者:Yermo Lamers

通过使用 Linux、开放工具和一些商业组件,我的公司构建了一个可靠的电子商务解决方案,其灵活性使我们能够提高业务效率,并探索原本无法触及的机会。

实施这种系统所需的能力曾经完全掌握在能够负担大量现金支出和专门人员的大型组织手中。Linux 改变了这一点,它使高质量的开放平台几乎免费可用。

背景

最初,我们通过第三方销售我们的 Windows 共享软件库存跟踪软件 Personal Stock Monitor。很快,我们清楚地认识到这项服务无法提供我们需要的灵活性。在考虑其他选择时,我们意识到没有第三方能够做到我们想要的事情。首先,我们希望能够做到以下几点:

  • 使购买过程尽可能简单快捷。

  • 更好地了解我们的客户,并借此机会获得更多来自他们的反馈。

  • 尝试各种商业想法,改变我们的定价,提供升级激励,提供折扣等等。

  • 通过多个分销渠道跟踪销售情况,并更好地了解人们购买我们软件的方式和原因,更重要的是,了解人们不购买的原因。

显然,我们需要一个更好的解决方案,它可以在需要时快速更改,而无需花费大量精力或费用。作为一家小公司,我们受到有限资源的制约。但是,我们确信自己开展电子商务是业务上的必要。

Linux 的商业案例

在考察了许多方案之后,我们选择构建自己的解决方案并将其基于 Linux,这既有技术方面的原因,也有业务方面的原因,包括:

  • 我们可以使用廉价的硬件并在多项任务之间共享它。这意味着我们不需要购买额外的机器,也不需要升级我们现有的机器。

  • 我们可以像从本地键盘一样轻松地远程管理服务器。对于像我们这样的小公司来说,这是我们甚至不考虑使用 Windows NT 的众多原因之一。

  • Linux 非常可靠。正如八个月的运营经验表明,Linux 似乎从不崩溃。它只是运行,因此,我们有更多时间专注于业务。

  • 我们所需的所有开发工具和应用程序都可以在 Linux 上使用,并且它们大多数是开源的或带有 GPL 许可证。所有这些都具有高质量。

  • Linux 的“开放性”提供了显著的商业利益。我们总能在我们需要的任何时候免费获得我们需要的答案。在使用 Linux 时,我们从未因缺乏信息而受到阻碍。

  • 我们所需的所有关键应用程序都可以在 Linux 上使用。

我们可以选择其他同样有效的方案,但它们会花费更多的钱,并且需要更昂贵的硬件。对于我们的特定需求,我们找不到任何我们认为可以在任何价格下做得更好的方案。

电子商务解决方案的组成部分

一旦我们决定使用 Linux,系统的其余部分就水到渠成了。

交易服务

我们首先需要的是一种授权交易的方式。我们考察了许多不同成熟度的电子商务工具提供商。事实证明,这些电子商务公司提供的服务相当于您在便利店看到的信用卡机。这意味着所有的订单跟踪、会计功能、对账、人口统计报告、反馈收集以及与客户的互动,以及您需要的大部分管理功能都留给您自己提供。

出于技术原因,我们最终选择了 Cybercash 服务。这提供了一个在 Linux 下支持的 C 例程库和 Perl 模块。Cybercash 将此软件开发工具包 (SDK) 称为其 Merchant Connection Kit。它本质上是一个信用卡交易 SDK,并且不对您的其余业务做任何假设。它提供了我们需要的灵活性。

Cybercash 账户没有预付费用,但确实有交易费。更多信息请访问他们的网站 http://www.cybercash.com/

我们特别喜欢它没有与 Web 界面捆绑在一起。它只是一个 SDK,您可以使用它构建自己的电子商务桌面应用程序、CGI 脚本或服务器模块。它是一个非常灵活的工具包,正是我们一直在寻找的。

商户账户

我们需要的第二个组件是支持我们选择的交易服务的商户账户。为了处理信用卡交易,您需要有一个商户账户,作为您的银行账户和您客户的信用卡公司之间的中介。获得商户账户需要大量的文书工作、信用检查和设置费。

除了找到一个支持 Cybercash 的商户账户外,我们没有看到产品之间有太大差异,除了成本。通常有设置费和固定交易费。然后信用卡公司会抽取他们的分成。但是,当所有交易费用加起来时,您通常仍然低于 4%。与第三方电子商务公司通常收取的费用相比,这种差异可能会累积成可观的金额。在我们的案例中,基于这种百分比差异,我们在几个月内就赚回了我们用于设置基于 Linux 的电子商务解决方案的资金。通常,共享软件的在线软件商店将收取 15% 到 40% 的费用。

SSL 服务器

我们需要的下一个组件是 SSL(安全套接字层)服务器,它可以加密与 Web 服务器之间的流量。它可以增强客户的信心并提高在线交易的安全性。我们对 Apache Web 服务器感到满意,因此我们希望找到一个基于 Apache 的 SSL 服务器。我们考察了几家供应商,最终根据价格做出了决定。我们选择了 Raven SSL Web 服务器,它为我们工作得很好。他们的技术支持非常乐于助人。今天,还有许多其他选项可供选择。

证书颁发机构

为了设置 SSL 服务器,您需要从第三方(称为证书颁发机构)获得“证书”。SSL 供应商将为您提供一个临时的无效密钥,用于测试目的。

该证书旨在验证您和您公司的身份。它向客户保证他们实际上是在与您的公司打交道。不幸的是,获得证书可能需要大量的文书工作,因为您必须向证书颁发机构验证您的身份。这通常意味着向他们提供您的公司注册文件。在我们的案例中,证书流程花费了稍多于两周的时间。然后,证书颁发机构通过邮件向您颁发证书密钥。它只是一个加密的文本块,您可以将其剪切并粘贴到您的 SSL 服务器设置中。

我们最终选择 Thawte 作为我们的证书,因为它们更便宜。我们遇到的唯一问题是较旧的浏览器不再识别证书颁发机构。这会产生一些虚假的错误。但是,由于每天使用 Netscape 和 MS Internet Explorer 3.x 版本的人越来越少,我们不认为这是一个主要问题。

数据库

我们希望我们的电子商务解决方案不仅仅是处理固定的交易。我们希望拥有一个可以随着需求的出现而轻松扩展的系统。此外,我们希望跟踪各种变量,以便我们可以回答许多问题,例如:

  • 购买过程是否足够容易?

  • 客户从哪里听说我们的?

  • 哪个版本卖得更好?

  • 我们的定价是否有效?

  • 我们的销售额中是否有任何趋势可以揭示我们客户的一些信息?

因此,我们需要一个强大而灵活的数据库后端来存储和组织所有这些数据。我们需要在数据库后端的速度和可伸缩性与可靠性和编程简易性之间取得平衡。此外,我们需要轻松访问数据以及动态更改结构的能力。除此之外,我们不想花太多钱。

我们决定使用 MySQL (https://mysqlserver.cn/)。它速度极快、多线程、灵活,并支持 SQL 标准的很大一部分子集。它是 Web 应用程序非常流行的数据库,并且有很好的 Perl 接口可用。此外,许可非常灵活,在许多情况下,您可以免费使用它。他们的网站上提供了活跃的邮件列表和大量信息。

与 SSL 服务器或商户账户不同,我们对数据库的选择最终成为一个关键的选择,因为它是使我们在着手新的商业想法时有所作为的组件之一。

Perl

我们讨论了用 C 或 C++ 实现“商业级”电子商务解决方案。这意味着大量的开发工作,如果我们以后决定修改它,还需要做很多工作。

由于害怕将自己锁定在一个我们无法轻易更改的解决方案中,我们选择用 Perl 开发,这为我们节省了大量时间,但牺牲了一些运行时速度。我们认为,由于我们在 Linux 下运行,使用 Perl 增加的开销可以忽略不计,并且到它成为问题时,我们将赚到足够的钱来购买更快的机器。

用 Perl 开发的另一个关键优势是代码可以快速且轻松地更改。在线业务变化如此之快,很难跟上。任何可以使我们自己更容易的事情都符合我们的商业利益。

将所有部分组合在一起

一旦我们确定了所有部分,将它们组合在一起就相当容易了。只剩下两段代码要编写。第一段代码管理客户访问我们网站下订单时的体验。第二段代码是一个管理界面,使我们能够执行一些维护任务。我们的解决方案的第一个版本按如下方式工作:

  • 在安全服务器上显示一个表单,允许用户输入他们的信用卡信息。它链接到一个 CGI 脚本,该脚本完成大部分工作。

  • 在 Perl CGI 脚本中,验证 FORM 字段,并确保所有必填字段都填充了有意义的值。如果出现错误,请告知用户,将错误记录在数据库中,并向管理员发送电子邮件通知。我们想知道用户在我们订单表单上的表现如何。由于这种跟踪,我们最终显著改进了订单流程。

  • 如果在表单中未发现错误,则使用所有相关字段格式化 Cybercash 交易包,并将其传递给 Cybercash Perl 模块以提交给 Cybercash 服务器。

  • 查看来自 Cybercash 的响应代码。返回了相当多的字段,但关键字段是交易状态和 AVS(地址验证服务)代码。

  • 如果交易未获得授权,则将错误记录在数据库中,告知客户,并向管理员发送电子邮件消息。

  • 如果交易已获得授权,请检查代码,这是一个旨在减少欺诈交易的简单测试。它将客户提供的地址和邮政编码中的数字与信用卡公司记录中的地址和邮政编码进行比较。原因是,如果有人偷了您的信用卡,他们不太可能也拥有您的地址。AVS 代码包括“Y”表示一切都匹配正确,“A”表示仅地址匹配,“Z”表示仅邮政编码匹配,“N”表示没有任何匹配。不幸的是,AVS 系统仅适用于美国地址。

  • 通过电子邮件向客户发送感谢信,将交易记录在数据库中以供稍后查阅,并向管理员发送电子邮件,表明交易已获得授权。

管理界面允许我们手动输入电话订单、邮寄订单和传真订单的订单。它还允许我们编辑个人记录并查看所有交易和错误。我们每天都使用此界面手动检查每笔交易是否有欺诈迹象。(对欺诈检测的完整讨论超出了本文的范围。)我们看到的欺诈率约为 1-2%,我们被告知这大约是行业平均水平。

根据我们系统的设置方式,交易会“获得授权”,但在我们有机会审查它们之前不会自动“结算”。可以自动化整个过程,无需人工参与,但我们更喜欢在让所有交易通过之前对其进行检查。

运营经验/经验教训

拥有我们自己的基于可靠平台和灵活工具构建的电子商务解决方案意味着我们可以更改我们的系统,以尝试各种改进业务的方法。

首先,我们通过我们在系统中构建的所有错误跟踪注意到,相当多的客户会来到订单表单,尝试输入一次他们的信息,犯一些简单的错误,例如未填写邮政编码,然后不再返回。我们对数据输入表单进行了一些更改,并将字段数量减少到最低限度。这似乎大大改善了情况——销售额明显增加。

一天下午,我们决定在订单表单中添加一个“评论”框,以获得更多来自我们客户的反馈。奇怪的是,我们发现客户在订购我们的产品时比在任何其他时候都更愿意向我们提供详细的反馈。因为我们选择使用 MySQL 和 Perl 构建系统,所以添加此选项实际上只需 30 分钟的工作,并为我们提供了一个了解客户的全新机会。事实证明,这非常有价值。

我们通过实验学到的另一个教训是,使我们的产品易于购买对我们的销售数量产生了令人难以置信的影响。您可以拥有出色的产品,但如果许可证不易获得,那么很少有人会购买它。同样,我们选择的工具的灵活性使我们能够尝试多种不同的方法,直到找到一种适合我们的方法。

1998 年 10 月 20 日,我们推出了 3.0 版本的股票跟踪应用程序。基于许多不同的参数,其中最重要的是客户的评论,我们决定更改我们的定价并推出两个版本的产品:标准版和黄金版。我们还意识到我们可以在线提供“升级”激励。我们最终采用了我们的单一产品电子商务解决方案,并对其进行了快速修改,以销售本质上四种产品:两个版本和两个升级,每个版本和升级都有不同的价格点。

运行我们自己的电子商务解决方案并能够针对新情况快速修改它的另一个有趣的副作用是“联盟交易”。我们获得了一些机会,让其他公司从他们的网站和他们的 CD 上推广我们的软件。显然,如何核算销售额的问题出现了。同样,我们选择的工具的灵活性使我们能够应对这些新机会。如果我们没有选择 Linux 和这套工具,我们将无法追逐这项新业务。

结论

选择构建基于 Linux 的电子商务解决方案为我们的业务提供了关键的好处,并使我们能够有效地应对不断的变化。

Yermo Lamers (yml@dtlink.com/) 是 DTLink Software (http://www.dtlink.com/) 的联合创始人,该公司开发和分销用于 MS Windows 的 Personal Stock Monitor,这是一款基于互联网的股票跟踪应用程序。自 SLS .99pl14 时代以来,他已经在 Linux 之上构建并许可了相当多的创收服务器系统,并期待着 Wine 可以用于在 Linux 上运行 Personal Stock Monitor 的那一天。

加载 Disqus 评论