我该如何编写可以进行银行账户转账的软件?
你知道那些允许你输入你的支票账号和路由号码的网站,然后他们可以将钱转入和转出你的账户吗?我该如何编写可以进行银行账户转账的软件?
这是如何工作的?任何良好的服务或API来做到这一点?任何陷阱?
银行确实有这样做的API,但只有获准的人员/公司才被允许与这些系统进行交互。因为它实际上涉及转移资金,所以在您如何处理系统上的账号方面,安全性要求非常高。
许多网站提供此功能用于购买商品实际上使用第三方系统来处理实际汇款到他们的账户。这降低了实施API的麻烦,并且降低了处理汇款的第三方的安全负担。
如果您对建立一个可以接受银行账户号码和兑换资金的系统非常认真,那么您应该联系您的银行,并了解实施此类系统的实际要求。每家银行都有自己的系统,以及他们自己的这些交易费用。
一些第三方我所知道的是
我在加拿大,虽然我觉得Moneris和仙人掌在美国的运作。我认为Beanstream不会。再次,您可以与您的银行交谈,他们可能会让您与第三方联系,第三方将帮助您完成交易。
贝宝有一个相当易于使用的API,你可以在你的程序中使用它来完成其中的一些。
如果您希望能够在不同金融机构(使用账户和路由号码)的账户之间启动资金转账,则需要找到提供ACH(http://en.wikipedia.org/wiki/Automated_Clearing_House)转账服务的付款处理公司。通常这些公司是已经可以使用ACH的金融机构的子公司。例如。一家这样的公司是ACH Direct(http://www.achdirect.com/)。虽然我不能保证它的服务或可靠性,但我只是把它作为你需要搜索什么类型公司的例子。
当然,从技术上讲,您可以尝试直接连接到ACH。但是,为此,您需要在编写软件并通过严格的认证时遵循NACHA(http://en.wikipedia.org/wiki/NACHA-The_Electronic_Payments_Association)的规则和规定。这是一笔相当大的投资,所以除非你有几个亿美元的支持,否则我不会建议尝试这个。
您可以使用Moneris US eSELECTplus商户账户进行此操作 - 您只需要在您的商户账户上启用自动清算所(ACH)(遗憾的是,没有与加拿大当前可用的ACH相同的功能)。
这里是一个什么样的借记交易貌似Moneris美国PHP API中的一个例子:
<?php
require "../mpgClasses.php";
/************************ Request Variables **********************************/
$store_id='monusqa002'; //account credentials
$api_token='qatoken';
/************************ Transaction Object******************************/
$txnArray=array(type=>'us_ach_debit',
order_id=>'ach-'.date("dmy-G:i:s"),
cust_id=> 'my cust id',
amount=>'1.00'
);
$achTemplate = array(
sec =>'ppd',
cust_first_name => 'Bob',
cust_last_name => 'Smith',
cust_address1 => '101 Main St',
cust_address2 => 'Apt 102,
cust_city => 'Chicago',
cust_state => 'IL',
cust_zip =>'123456',
routing_num => '490000018',
account_num => '23456',
check_num => '100',
account_type => 'savings'
);
$mpgAchInfo = new mpgAchInfo ($achTemplate);
$mpgTxn = new mpgTransaction($txnArray);
$mpgTxn->setAchInfo($mpgAchInfo);
$mpgRequest = new mpgRequest($mpgTxn);
$mpgHttpPost = new mpgHttpsPost($store_id,$api_token,$mpgRequest);
/************************ Response Object **********************************/
$mpgResponse=$mpgHttpPost->getMpgResponse();
print("\nCardType = " . $mpgResponse->getCardType());
print("\nTransAmount = " . $mpgResponse->getTransAmount());
print("\nTxnNumber = " . $mpgResponse->getTxnNumber());
print("\nReceiptId = " . $mpgResponse->getReceiptId());
print("\nTransType = " . $mpgResponse->getTransType());
print("\nReferenceNum = " . $mpgResponse->getReferenceNum());
print("\nResponseCode = " . $mpgResponse->getResponseCode());
print("\nMessage = " . $mpgResponse->getMessage());
print("\nAuthCode = " . $mpgResponse->getAuthCode());
print("\nComplete = " . $mpgResponse->getComplete());
print("\nTransDate = " . $mpgResponse->getTransDate());
print("\nTransTime = " . $mpgResponse->getTransTime());
print("\nTicket = " . $mpgResponse->getTicket());
print("\nTimedOut = " . $mpgResponse->getTimedOut());
?>
为Moneris美国的API文件和集成指南,请访问:
http://developer.moneris.com(需要免费注册)
Moneris美国 - ACH:
http://www.monerisusa.com/payment-processing-services/ach-direct-debit.aspx
Stripe Connect允许您将钱汇入银行账户并通过统一的API接受付款。截至2015年12月,他们提供了更全面的文档,并且在开发人员中似乎比其他答案中提到的大多数公司更受欢迎。
请参阅https://stripe.com/docs/connect了解更多信息。
做ACH转账非常简单的方式 - https://www.dwolla.com/white-label
根据您希望您的应用程序做什么,你需要不同的功能。
如果你想支付(贷款)银行账户。这非常简单。以下是具体步骤: 1.创建一个成员 2.创建一个资金来源 3.创建一个传递
如果你想借记和贷记银行账户就有点复杂。以下是具体步骤: 1.创建一个成员 2.获取资金来源授权 3.创建一个传递
的唯一原因的授权是有点困难,是因为你必须要经过一个2存款方式或某种类型的验证流程。这使得Dwolla.js变得更容易 - https://www.dwolla.com/dwollajs-bank-verification
关于电子交易也有相当数量的联邦法律。 – davenpcj 2008-09-27 01:35:29
你知道其中一个第三方的例子吗? – 2008-09-27 01:35:46