我是 Javascript 方面的新手。这是我的问题:
我希望从读卡器捕获信用卡信息,然后对其进行处理。到目前为止,我已经能够在 HTML 文本框字段中捕获虚拟信用卡数据 - 实际上这并不是什么复杂的事情,因为读卡器输入只是在读卡器上刷卡时的一组键盘事件。问题是它仅cursor focus在文本字段上存在时才有效。如果我将文本字段变成只读框,它就不起作用 - 这正是我的要求。我应该能够屏蔽输入,显示几个*s 并且我应该能够使该字段不可编辑。我希望这可以使用div文本框上的透明内容来完成 - 但我不知道如何实现这一点。
我也对其他想法持开放态度。
在我们的应用程序中,我们使用商户终端提供的卡类型和最后 4 位数字作为客户的唯一标识符。例如VISA-1234。
由于卡号实际上不是随机的(基于lunh 算法),我们真的会得到最后 4 位数字的 10,000 种组合,还是较小的子集?如果是这样,是否可以计算甚至估计这个数字?
我在我帮助维护的网站上有一张信用卡登记表。后端编码为采用 MM/YY 格式的 2 位数到期月份和 2 位数年份。Chrome 似乎设置为以 MM/YYYY 格式应用信用卡信息,因此如果用户存储的 CC 过期日期为 05/2023,它将自动填充 05/20,并且由于 jquery 输入屏蔽将切断 23 部分。这会导致付款被拒绝,这是任何人都不愿意看到的。
这是表单的基本示例。
<form action="/">
<h3>Label</h3>
<div>
<input name="CardHolderName" placeholder="Cardholder Name" type="text">
</div>
<div>
<input name="CreditCardNumber" placeholder="Credit Card Number" type="tel">
</div>
<div>
<label for="ExpirationDate">Expirion Date</label>
<input id="ExpirationDate" name="ExpirationDate" placeholder="MM/YY" type="tel">
</div>
<div>
<input name="Cvv2" placeholder="CVC" type="tel">
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我扫描了https://wiki.whatwg.org/wiki/Autocomplete_Types和https://html.spec.whatwg.org/multipage/form-control-infrastruct.html#autofill并发现 autocomplete="cc-exp",以及一些关于格式的指导。
在已弃用的旧规范中,该格式在某种程度上与 Chrome 的做法相匹配,在 maxlength="7" 时提到了 MM/YYYY 格式。在这种情况下, maxlength="5" 应该给我我想要的,但它并不一致。例如,添加 maxlength="5" 在我的 jsfiddle 中有效,但在我们的网站上不起作用。然而,添加 autocomplete="cc-exp" 和 maxlength="5" 可以在桌面版 Chrome 上运行,但在 Android …
我想在 iOS 应用程序上扫描信用卡。我使用了 CardIO 框架,但它不适用于 ios13
guard let cardIOVC = CardIOPaymentViewController(paymentDelegate: self) else {
print("This device is incompatible with CardIO")
return
}
cardIOVC.collectCVV = false
cardIOVC.modalPresentationStyle = .overCurrentContext
present(cardIOVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
所以我想知道在提供 cardInfo 时,在不显示内置预加载视图的情况下实现 CardIO 的最佳方法是什么。
guard let cardIOVC = ScanViewController.createViewController(withDelegate: self) else {
print("This device is incompatible with CardScan")
return
}
cardIOVC.allowSkip = true
present(cardIOVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
因此 cardScan Library 但既不返回到期日期也不返回名片持有人。我不确定我开发的代码块是否错过了配置 creditInfo 回调的东西。
我还测试了 DyScan 框架作为 CardIO API 的更新,但是没有可用的podSpec:DyscanIntegrationGuide
iOS 是否为开发者提供任何公共 API …
该问题已在其他地方问过,但没有回答。谷歌浏览器认为我的输入
<input name="firstName" id="firstName" type="text" placeholder="John" font-size="16" class="sc-fznKkj XyZMK">
是一张信用卡,如自动完成字段检查器(实验标志 thingy)和提供已保存信用卡的自动完成所示。
它也在 lastName 字段和另一个数字类型字段以另一种形式执行此操作。
我不明白的是,它只是在我们的开发环境中按预期工作,并且只在暂存中变得疯狂(两者几乎都是相同的部署过程,相同的 s3 + cloudfront 托管,相同构建的相同代码)。
有什么线索吗?
它变得更奇怪:将name字段更改为first-name而不是firstName修复它。我不需要更改两个输入名称,只有第一个更改。但是我应该可以随意命名我的领域,不是吗?
我创建了以下代码来为我的客户获取所有卡片:
return stripe.customers.listSources(customerId, {
object: "card",
limit: 10
}).then(cards => {
if (cards) {
res.status(200).send({
cards: cards.data
});
return;
}
res
.status(500)
.send({ error: "error getting cards" });
})
.catch(error => {
console.log(error);
res.status(500).send({ error: "error getting cards" });
});
Run Code Online (Sandbox Code Playgroud)
遵循本文档:
https://stripe.com/docs/api/cards/list
我还向我的客户添加了测试卡,这些测试卡在仪表板中可见:
但 API 总是返回以下结果:
{
object: 'list',
data: [],
has_more: false,
url: '/v1/customers/<my_cus_id>/sources'
}
Run Code Online (Sandbox Code Playgroud) 我想从我的 Android 应用程序启动“扫描新卡”活动。此功能由 Google 提供,用于扫描并填写信用卡/借记卡号,EditText是 GMS 自动填充服务的一部分。
我的目的是提供一个按钮来启动此意图,而不是使用自动填充弹出窗口/Ime 选项中显示的现有选项。
我需要开发类似 Google Play 商店的添加付款方式和 Google 自动填充的添加付款方式的屏幕截图的内容。
我尝试过的:
我已尝试使用传统方法添加autofillHint="creditCardNumber",EditText从而显示使用自动填充服务启动的选项,但是,如果由于某种原因自动填充服务被禁用或未设置为“Google”,则“扫描”的自动填充选项新卡”没有出现。
我尝试使用从 中找到的活动和包名称直接启动意图Logcat,但是Permission Denied: Activity not exported抛出了 a 。
我的发现:
单击 Google 自动填充服务提供的“扫描新卡”选项时的 Logcat 输出:
START u0 {act=SCAN_PAYMENT_CARD cmp=com.google.android.gms/.autofill.ui.AutofillActivity (has extras)} from uid 10102
START u0 {act=com.google.android.gms.ocr.ACTION_CREDIT_CARD_OCR pkg=com.google.android.gms cmp=com.google.android.gms/.ocr.SecuredCreditCardOcrActivity (has extras)} from uid 10102
Run Code Online (Sandbox Code Playgroud)
直接使用 Activity 和 Package 名称启动上述 Intent 时的 Logcat 输出:
Permission Denial: starting …Run Code Online (Sandbox Code Playgroud) 我目前正在为客户创建一个应用程序,允许他们自动向客户收取信用卡账单.
我很好奇什么是安全存储和访问信用卡信息的最佳做法,以及任何其他敏感信息,如社会安全号码,帐号等.
我假设将使用某种类型的加密,但在我深入挖掘之前,我想看看其他人如何处理这些类型的要求.
这并不重要,但我们正在使用Microsoft SQL Server为数据库设计软件,并使用C#和ASP.NET.
在rails项目上工作,其中有一个订单确认字符串,其中包含除最后四位数之外的所有信用卡号码.做字符串替换的正确方法是什么?
得到这个的操作是什么?
credit_card_number = "1111111111111111"
Run Code Online (Sandbox Code Playgroud)
这个?
credit_card_number = "************1111"
Run Code Online (Sandbox Code Playgroud)
谢谢,
贤治
我知道卡号的前6位代表卡的发卡行识别网络(IIN),而这些信息应该反过来标识原产国.
在处理交易之前,Braintree是否提供任何API来解码此信息?我目前还不知道有任何服务.我想知道在完成交易之前卡片的来源,因为这可能对我的特定用例中的交易费用,佣金等有重大影响.
同样,我希望能够区分借记卡和信用卡,尽管通过考虑IIN似乎并不是严格可行的.
credit-card ×10
html ×3
javascript ×2
android ×1
autofill ×1
autosuggest ×1
braintree ×1
forms ×1
frameworks ×1
ios ×1
node.js ×1
ocr ×1
reactjs ×1
ruby ×1
scanning ×1
security ×1
string ×1
swift ×1