这个系列是我随便写的,想到一点是一点。构建支付系统的时候可以参考。有些地方设计技术,也只是谈个大概;有些地方完全就是产品形态设计。
站点是一个影响本地化、支付等的综合概念。
站点往往和现实中的国家或者地区一一对应,又或者是某几个小国家小地区的集合体。一个站点的覆盖范围内,往往使用同一种货币,同一种语言。
而另外一个不为人注意的点在于,某一个站点内部,其政策应该是一致的。这种政策体现在税收(含关税),物流,隐私,数据,金融等方面。
其中金融里面和支付相关的政策尤其重要。比如说,大多数国家并不会允许资金池的存在,因此在资金流转的时候,要千万注意合规性。
但是严格一致是难以达成的。例如,就税收而言,美国各州都有各自的政策。但是并不会每个州设计一个站点。
站点对本地化的影响
一般的站点,只会使用一种语言。但是由于一些历史原因,一些国家或地区会包含两种及以上的官方语言。
如加拿大,如印度。
这个时候,一个站点显示什么语言,实际上取决于打开这个站点的人知道什么语言。
如果在用户已经登录的情况下,我们会考虑使用用户设置的语言——一般来说是注册时候使用的语言;而在游客模式下,即我们没有用户信息的时候,如果能够拿到用户的定位信息,那么对应的语言可以使用该地区的主流语言;而在任何信息都不具备的时候,应该使用该站点最多人使用的语言。
在语言不同的时候,数字格式、日期格式和货币格式都会有所不同。
站点对货币的影响
前面提到,一个站点覆盖的地区,往往只会使用一种货币。卖家上架的产品计价,是以该货币为准;买家支付的货币,也以该货币为计量单位。
从一个交易的角度出发,站点有:
- 卖家注册站点;
- 商品上架站点;
- 交易站点;
- 买家注册站点;
如果我们认为,商品只能在它上架的站点购买,那么上架站点和交易站点将保持一致。同时我们也认为,注册站点的货币就是卖家或者买家使用的货币。
于是最极端的情况下,可能出现三个站点都不同的情况。如一个美国卖家在德国站上发布了一个商品,一个香港注册的买家在德国站上购买了该商品。
考虑到货币的情况,我们会发现,卖家使用美元,德国站以欧元计价,而香港买家使用港币。
在这种情况下,香港买家在支付的时候,由他的信用卡银行将他支付的港币转换为欧元,而后支付给交易平台。
这是一幅简图。其中买家支付的100元最终变成欧元40,是通过银行自身来完成的。对于平台来说,它并不能感知到这个过程。
而因为卖家在平台上声称自己接收货币美元,所以当平台收到欧元40之后,在最终结算的时候,会将欧元转换成美元结算给卖家。
当然,如果平台本身允许卖家持有多个不同币种的账号,那么这种转换是可以省去的。
站点与独立域名
站点使用的域名有两种:
- 使用和主站点下的分域名。例如
hk.your-site.com
,而www.your-site.com
则是主站点; - 另外一种就是采取独立域名。例如
www.your-site.cn
作为中国大陆地区的域名;
在第二种模式下,会引入另外一个问题,即跨站点登录。这种情况比较不常见,但是在有部分卖家是跨站点经营的时候,那么跨站点登录就很有必要,否则在做身份验证,交易认证的时候,卖家可能被迫重复多次登录。
在技术上,我们一般采用单点登录来解决。但是单点登录一般只能应用于模式1之下。因为单点登录涉及到的一个问题是携带 token
。早起的很多单点登录方案都是将 token
放置在 cookie
里面的,而在跨域名——并非子域名——的情况下,无法把 cookie
传递过去。
可以在设置cookie的时候设置影响的域名,但是只能影响子域名,完全不同的域名是设置不了的
而且实际中,除了登录状态,还有很多技术手段都依赖于使用 cookie
传递数据。在这种独立域名的模式下,它们都会遇到奇怪的问题。