现代信用卡处理系统是不是允许在持卡人姓名中使用变音符号?

Posted

技术标签:

【中文标题】现代信用卡处理系统是不是允许在持卡人姓名中使用变音符号?【英文标题】:Do modern credit card processing systems allow diacritics in cardholder names?现代信用卡处理系统是否允许在持卡人姓名中使用变音符号? 【发布时间】:2014-04-28 23:38:43 【问题描述】:

背景:很多人的名字都带有无法用 ASCII 表示的变音符号,例如 JOSÉ GONZÁLEZ

似乎有some evidence,磁条上的编码只能处理持卡人姓名中不带重音的拉丁字母A-Z。

这导致很多人阅读question 2004532,现在已经有几年了,并得出结论,他们不应该让人们在信用卡表格的“持卡人姓名”字段中添加变音符号。

这里的实际最佳做法是什么? Stripe / Braintree 等“现代”支付 API 是否需要、允许或禁止带有变音符号的持卡人姓名?

【问题讨论】:

【参考方案1】:

从我们的项目来看,Adyen、DataCash、EcorePay、EMP、MPI、NetPay、SafeCharge、SoEasyPay、Transact24、WireCard、LPS、Nerex、Authorize.NET 接受变音符号。 但是 LPS、Nerex、Authorize.NET 分别需要持卡人的名字和姓氏,这可能会导致问题。

NetGate Asia(日本卡处理器)的最大问题 - 它要求名字和姓氏只能在 [a-zA-Z] 中,没有撇号 ',并且不允许使用偶数。

【讨论】:

【参考方案2】:

这是一个很好的问题,我相信它会因处理器而异。但如果我们想从更大的角度来看,我认为可能是“还没有”

四处搜索后发现:

PDF from UniCredit Bank Czech Republic and Slovakia, a.s. 建议省略变音符号(参见第 7 页) Authorize.Net does not support them (2) Realx Payments does not support them

我无法从 Braintree 或 Stripe 中找到任何具体内容,因为他们的 API 文档没有明确提及有效字符(至少我可以在搜索时找到。我没有实现任何 API,所以我不了解它们) .

更新

我给 Braintree 发了电子邮件,这是他们的回复:

我们允许客户和持卡人姓名使用特殊字符,例如变音符号。需要注意的是,客户 ID 不允许使用特殊字符。

更新 2

刚收到 Authorize.Net 的回复(我添加的链接):

我们支持ISO/IEC 8859-1 character set 中的字符。

更新 3

刚刚收到 Stripe 的回复:

Stripe 的一切都使用 UTF-8,所以变音符号不会成为问题。

【讨论】:

我在布伦特里工作。由于大多数处理器不支持 UTF-8,因此我们会在必要时对输入进行清理,然后再通过它。通常会保留变音符号,因为某些处理器支持 8 位编码,例如 ISO/IEC 8859-1 (Latin-1)。 John 所有有趣的东西,但是这些网关/处理器在提交结算文件中的数据时必须处理(并丢失)变音符号。我找不到任何证据表明 MasterCard/Visa 等已更新其系统以支持变音符号。 @agf,当您谈论保留编码时,是在发送给进一步处理器的消息中,还是您直接将结算提交给商家银行/卡方案。【参考方案3】:

我想说最好的做法仍然是清理输入。

在幕后,在授权过程中不使用持卡人姓名,而是在日终结算时提交(有时,取决于交易类型)。这意味着您提供的名称对授权没有任何影响。

提交结算时,它不得超过 26 个 ITU-T.50 字符,范围为​​十六进制 20-5F。您可以在此处查看此表:http://www.zytrax.com/tech/ia5.html

此信息来自 APACS 70 标准第 3 册。无法在线获取

现代支付 API 仍然必须符合银行标准,而这些标准实际上已有数十年的历史。使用这些标准的系统数量众多,几乎不可能进行现代化改造。如果支付处理方确实允许使用变音符号(如 @agf 在此处的评论中指出的那样),则必须由处理方在提交给商业银行之前对其进行清理。

【讨论】:

由于越来越多的信用处理器允许这些字符,也许更好的方法是在输入中保留和存储特殊字符,并且 - 就像 Braintree 所做的那样 - 在通过 必要时。毕竟,Braintree 允许变音符号等特殊字符,Authorize.Net 支持 ISO/IEC 8859-1 字符集中的字符,Stripe 使用 UTF-8。当您的合作伙伴开始支持更好的字符集时,这种方法将使您的系统更加面向未来并准备好使用良好的数据。

以上是关于现代信用卡处理系统是不是允许在持卡人姓名中使用变音符号?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Elements 将持卡人姓名添加到 Stripe 结账?

信用卡验证:卡名可以包含非 ASCII 字符吗?

特权帐户和 PCI/DSS

如何将 CVV 字段添加到 Magento 结帐页面

招商银行信用卡可靠吗

android 信用卡扫描库或任何 API(Card.io 除外)