PHP - 接受多个支付网关

Posted

技术标签:

【中文标题】PHP - 接受多个支付网关【英文标题】:PHP - accepting multiple payment gateways 【发布时间】:2012-04-19 06:26:36 【问题描述】:

我正在创建一个网站,我将在其中销售单件商品,并希望能够通过 Paypal、Google Checkout 和亚马逊接受付款,但不想只为一件商品使用一些繁重的电子商务软件。

我正在寻找一个好的 php 解决方案,它可以轻松实现所有 3 个,例如 Django-Merchant for Django。

谢谢

【问题讨论】:

你不能自己实现这些吗?这样你就可以避免更多的“沉重”:) 上述所有供应商都将有 PHP 的示例代码及其 SDK 下载。 您将为每个支付网关设置一个控制器,然后使用用户选择的支付网关控制器。 【参考方案1】:

如果您期待有关解决方案架构设计的建议,

首先,您需要创建一个接口,其中包含所有网关所必需的所有方法

interface PaymentGateway 
   public function processPayment();
   public function authorize();

然后为每个支付网关创建具体的类

public class GoogleCheckoutGateway extends PaymentGateway 
     public function processPayment() 
        //Code to process google checkout payment
     


//Same like other payment gateways like paypal
public class PaypalCheckoutGateway extends PaymentGateway 
     public function processPayment() 
        //Code to process paypal payment
     

然后创建一个业务逻辑方法通过处理不同的网关来处理支付

public class PaymentProcessor 
     public function processPayment(string gateway) 
        //Create the respective object depending upon gateway
        $gateway = getGateway(type);
        $response = $gateway->processPayment();
     

此设计将帮助您稍后添加其他网关

【讨论】:

不能扩展接口。你可以实现它。【参考方案2】:

在可预见的未来单品?这些第 3 方结帐替代方案中的每一个(只是区分术语“网关”,它在信用卡支付方面具有不同的含义)都提供了一个 API 和示例代码/SDK。

我认为查找它们是一种很好的做法,这样您就可以“第一手”了解每项工作的工作原理,这将进一步帮助您在需要一些软件包时继续前进 - 回复:您可以修改您的需求和/或知道如何处理问题,如果/何时发生。

可能还发现,每个提供的任何“订单管理界面”都是您真正需要使用的(re: 单个项目) - 被抓的经典案例在开发者和企业主之间(知道你真正想做和/或完成的事情)。

【讨论】:

以上是关于PHP - 接受多个支付网关的主要内容,如果未能解决你的问题,请参考以下文章

带有外部支付网关的电子商务库存管理

通过支付网关接受 EBT/食品券

贝宝支付网关接受信用卡或使用贝宝账户

经常性配置文件 magento 支付网关印度

用于多个支付网关的最佳模式

如何将 KNET 支付网关与 php 集成 [关闭]