如何在cakephp中使用授权API?

How to use authorize API in cakephp?

我正在使用 cakephp 2.6.7。我想将 Authorize Api(http://www.authorize.net/) 集成到我的 cakephp 应用程序中。我在本地主机中由 composer 设置了 api。它工作正常。这是文件结构:

这里的 charge-credit-card.php 是 运行 的最终脚本。在这个文件中,我包含了一些先决条件文件,如下所示:

require 'authorize/autoload.php';
use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;

现在我把 authorize 文件夹放在 cakephp 的 Vendor 文件夹中:

然后我在paymentsController.php中添加autoload.php如下:

require_once(APP . 'Vendor' . DS . 'authorize' . DS . 'autoload.php');

但是我对

感到困惑
use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;

替换。我应该如何替换 cakephp 控制器中的这两行?这是我的完整代码:

<?php

require_once(APP . 'Vendor' . DS . 'authorize' . DS . 'autoload.php');

use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;

define("AUTHORIZENET_LOG_FILE", "phplog");

class PaymentsController extends AppController {

    var $layout = 'admin';

    // public $components = array('Auth');
    public function isAuthorized($user = null) {
        $sidebar = $user['Role']['name'];
        $this->set(compact('sidebar'));
        return true;
    }

    public function beforeFilter() {
        parent::beforeFilter();
        // Allow users to register and logout.
        $this->Auth->allow('process');
    }

}

?> 

感谢您的宝贵时间。

我猜你的问题是特定于 php 别名而不是 ANet sdk 本身?

这里有一个关于制作全局可访问别名的问题。似乎没有直接的方法来做到这一点。 PHP Global namespace aliases

相关: http://grokbase.com/t/php/php-general/10a38hape9/is-it-possible-to-create-a-global-namespace-alias


默认方法是定义...

use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;

... 在每个需要使用别名的文件中。 (你必须知道,一旦自动加载,命名空间就可以全局访问)

这应该可以让您的应用程序正常工作。