我最初可以通过执行Luhn检查算法来检查以确定我是否有有效的支付卡号.
但是我需要确定它是信用卡还是借记卡来相应地执行下一个任务.我明白这取决于前四个字符,但我不确定确切的范围.
如果有人可以解释或提供一个解释这将是伟大的链接.谢谢.
编辑...
在这两个stackoverflow链接中我没有看到我的问题得到解答.因此,这对于任何这些都不是重复的.
在我的情况下,它不会使用读卡器读取卡,而是使用卡号,CVV和exp日期来完成付款(用户插入这些东西).
同样"是"我可以检查以确定它是Visa卡,万事达卡还是美国运通卡.但无法找到它的卡Credit或Debit卡.(例如,如果卡是Visa卡,那我怎么知道Visa卡是"信用卡"还是"借记卡".这是确切的问题) .
我对Stripe有一个奇怪的问题(在Rails上,但Rails部分可能无关紧要).
当我在生产中使用语法上有效但非工作的卡号填写我的注册表单时(例如4242424242424242),当我尝试创建令牌时,我收到此响应:
sjsonp1389885476573({
"error": {
"message": "Your card was declined.",
"type": "card_error",
"code": "card_declined"
}
}
, 402)
Run Code Online (Sandbox Code Playgroud)
在开发中我使用"始终返回card_declined"卡号(4000000000000002),Stripe将其视为非常好:
sjsonp1389885473743({
"id": "tok_3JvncLYlEZ5NMF",
"livemode": false,
"created": 1389885584,
"used": false,
"object": "token",
"type": "card",
"card": {
"id": "card_3Jvnr4MtIxzzd5",
"object": "card",
"last4": "0002",
"type": "Visa",
"exp_month": 2,
"exp_year": 2020,
"fingerprint": "dWQBpXrSXnyqoOxe",
"customer": null,
"country": "US",
"name": null,
"address_line1": null,
"address_line2": null,
"address_city": null,
"address_state": null,
"address_zip": null,
"address_country": null,
"address_line1_check": null,
"address_zip_check": null,
"cvc_check": null
}
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Stripe管理帐户,我可以毫无问题地创建和检索帐户,但我无法将信用卡添加到任何条带帐户.我正在Stripe.js处理卡创建过程,所以在视图中我收集卡片字段,让Stripe.js做验证和处理的脏工作.如果一切正常,我会stripeToken从我的控制器中使用Stripe 收到最终将管理帐户和信用卡关联起来.
但是我收到此错误:
Error creating card: (Status 400) You must provide a card that has the 'currency' field set when adding a card to a Stripe account.
因此我假设我需要currency在卡片表单中添加字段,所以我再次尝试然后我遇到了这个错误:
This card doesn't appear to be a debit card. (when submitting currency from views)
我已经尝试搜索错误,但不知何故没有真正的参考或以前的答案.
有谁知道如何解决这个问题?
提前致谢!
细节
由于我在我的本地机器上测试,我使用的是Stripe的测试卡号:
4242424242424242它接受任何expiration date和CVC
这是一些代码:
这是我创建托管帐户的方式:
def create_account(email)
Stripe::Account.create(
{
:country => "US",
:managed => true,
:email => email,
:default_currency => "USD"
} …Run Code Online (Sandbox Code Playgroud) 寻找与多个商家网关接口的ac#库.至少应该能够处理PayPal和授权.
我正在开发一个电子商务网站,一些客户将频繁在线购物.话虽如此,我试图找到一个解决方案,允许我使用Website Payments Pro安全地存储信用卡信息,因此客户无需在每次购买时重新输入信用卡信息.我知道像Braintree这样的信用卡"令牌化"服务,但它们要求您使用他们的整个支付平台.PayPal已经确认有第三方购物车与Website Payments Pro合作,可以安全地存储信用卡信息(只要我符合PCI标准),但不会指向我的方向.
有谁知道第三方服务能满足我的需求吗?感谢您的时间和帮助!
大卫
如果我有一个Web应用程序,我收到通过HTTPS浏览器通过POST请求传输的信用卡数据,并立即打开套接字(SSL)到远程PCI编辑卡处理器转发数据并等待响应,我是允许这样做?或者这是否与我的应用程序接收数据并转发它已经处理"处理信用卡数据"?
如果我创建一个在客户端浏览器中显示的iframe来输入cc数据,并且这个iframe通过HTTPS将数据发布到远程卡处理器(直接!)这已经是处理信用卡数据的情况了吗?即使我的应用程序代码"没有触及"任何事件处理程序输入的数据?
我对"信用卡数据处理"的定义感兴趣.什么时候开始成为cc数据处理应用程序?有人可能会指出我在PCI-DSS标准中明确定义何时开始"成为处理应用程序"的那一部分?
谢谢,
我正在开发一个使用ASP.net和C#的Web应用程序
需要提供用户可通过其卡支付的功能(信用卡,万事达卡,Visa卡,借记卡等)
我如何处理交易,意味着当用户输入付款细节并点击付款按钮时,
我之前从未处理过付款,所以我从哪里开始?
我正在使用Authorize.net的Customer Information Manager API(CIM).我的测试用例以用户在结账时给出错误的地址为中心.
每次用户提交表单时,我的应用程序都会尝试创建客户配置文件:
$txrq = new AuthorizeNetCIM;
$txrsp = $txrq->createCustomerProfileTransaction("AuthCapture", $transaction, 'x_duplicate_window=0');
Run Code Online (Sandbox Code Playgroud)
我已经尝试过x_duplicate_window如上所述设置传递给"额外选项",在SDK中,它是请求的以下部分:
<extraOptions><![CDATA[' . $this->_extraOptions . ']]></extraOptions>
Run Code Online (Sandbox Code Playgroud)
无论我为x_duplicate_window使用什么值,authorize.net将始终返回错误,直到默认时间过去.
AuthorizeNet Error: Response Code: 3 Response Subcode: 1 Response Reason Code: 11 Response Reason Text: A duplicate transaction has been submitted.
Run Code Online (Sandbox Code Playgroud)
我担心,如果我们的(潜在)用户之一尝试提交错误的地址,意识到他或她的错误,那么在事务超时发生时会再遇到3分钟的错误.
php credit-card authorize.net payment-gateway payment-processing
我已经编写了一个函数库,根据ISO/IEC 7813解析了磁道上的磁条(信用卡,ID等)中的磁道1和磁道2的数据.我希望严格测试这个磁带库的一些有效(但显然不是真正的信用卡')追踪2个数据.我只能在网上找到一些示例字符串.我的代码与这些示例完美配合,但我喜欢测试不同的卡发行商等,以确保代码真的可以用于生产.有任何想法吗?我知道http://www.getcreditcardnumbers.com/提供测试信用卡号码,类似于track2数据的东西是理想的.
包含CC号,有效期和其他信息的标准音轨2字符串如下所示:; 1111222233334444 = 9912101xxxxxxxxxxxxx?
我想运行一个程序,可以根据输入的数字确定信用卡号的验证和类型.编译器显示我的编码中有错误的通知,但我无法检测它在哪里.该程序也无法运行.下面是编码,
import java.util.*;
public class CreditCard {
public static void main(String args[]) {
String CType;(String number) {
if (number.startsWith("4"))
return "Visa";
else if (number.startsWith("5"))
return "MasterCard";
else if (number.startsWith("6"))
return "Discover";
else if (number.startsWith("37"))
return "American Express";
else
return "Unknown type";
};
Scanner input = new Scanner(System.in);
System.out.println("Enter a credit card number: ");
long number = input.nextLong();
long total = sumOfEvenPlaces(number) + (sumOfOddPlaces(number)*2);
if (isValid(total)) {
System.out.println("The "+CType+" card number is valid");
} else {
System.out.println("The "+CType+" card number is …Run Code Online (Sandbox Code Playgroud)