【问题标题】:How can I write software that does bank account transfers? [closed]如何编写银行账户转账软件? [关闭]
【发布时间】:2010-09-13 15:35:42
【问题描述】:

您知道那些让您输入支票帐号和路由号码的网站,然后他们就可以在您的帐户中转入和转出资金吗?

它是如何工作的?有什么好的服务或 API 可以做到这一点吗?有什么陷阱吗?

【问题讨论】:

    标签: banking


    【解决方案1】:

    非常简单的 ACH 转账方式 - https://www.dwolla.com/white-label

    根据您希望应用程序执行的操作,您需要不同的功能。

    如果您想支付(贷记)银行账户。这很简单。以下是步骤: 1.创建会员 2. 创建资金来源 3. 创建转移

    如果您想借记和贷记银行帐户,它会变得更复杂一些。以下是步骤: 1.创建会员 2.获得资金来源授权 3. 创建转移

    授权较难的唯一原因是您必须通过 2 存款方式或某种类型的验证流程。使用 Dwolla.js 会更容易 - https://www.dwolla.com/dwollajs-bank-verification

    【讨论】:

      【解决方案2】:

      Stripe Connect 允许您通过一个统一的 API 将资金转入银行账户并接受付款。截至 2015 年 12 月,与其他答案中提到的大多数公司相比,它们提供了更全面的文档,并且总体上似乎是开发人员中更受欢迎的选择。

      请参阅https://stripe.com/docs/connect 了解更多信息。

      【讨论】:

        【解决方案3】:

        银行确实有用于执行此操作的 API,但只有获得批准的人员/公司才能与这些系统交互。因为它实际上涉及转移资金,所以就您如何处理系统上的帐号而言,安全要求非常高。

        许多提供此功能来购买商品的网站实际上使用第三方系统来处理向其帐户的实际汇款。这减少了实现 API 的麻烦,并将安全负担交给了处理汇款的第三方。

        如果您认真考虑建立一个可以接受银行帐号和兑换资金的系统,您应该联系您的银行,了解实施此类系统的实际要求。每家银行都有自己的系统,以及关于这些交易成本的自己的费率。

        我知道的一些第三方是

        我在加拿大,但我认为 Moneris 和 Cactus 在美国经营。我认为 Beanstream 没有。同样,您可以与您的银行联系,他们可能会让您与第三方帮助您进行交易。

        【讨论】:

        • 还有相当多的关于电子交易的联邦法律。
        • 你知道第三者之一的例子吗?
        【解决方案4】:

        您可以使用 Moneris US eSELECTplus 商家帐户执行此操作 - 您只需在您的商家帐户上启用自动清算所 (ACH)(遗憾的是,目前加拿大没有与 ACH 等效的功能)。

        以下是 Moneris US 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 USA 的 API 文件和集成指南可在以下网址获得:

        http://developer.moneris.com(需要免费注册)

        Moneris 美国 - ACH:

        http://www.monerisusa.com/payment-processing-services/ach-direct-debit.aspx

        【讨论】:

          【解决方案5】:

          如果您希望能够在不同金融机构的账户之间发起资金转账(使用账户和路由号码),您需要找到一家提供 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) 的规则和规定,并通过严格的认证。这是一项相当大的投资,因此除非您有数十亿美元的支持,否则我不建议您尝试这样做。

          【讨论】:

            【解决方案6】:

            Paypal 有一个相当容易访问的 API,您可以在您的程序中使用它来完成其中的一些任务。

            【讨论】:

            • 使用paypal,我可以将钱从我的银行账户转移到另一个人的银行账户吗?我猜收件人也必须在贝宝上注册?
            • 这是最简单的事情,但我相信 paypal 可以进行电子存款,也可以切开并邮寄支票。他们有很多不同的服务。
            • paypal 与银行转账无关。它们只是一个支付处理器(信用卡、电子支票)。
            猜你喜欢
            • 2013-09-05
            • 2011-06-10
            • 2014-08-27
            • 1970-01-01
            • 2019-07-22
            • 2020-10-26
            • 1970-01-01
            • 2023-04-04
            • 1970-01-01
            相关资源
            最近更新 更多