authorize.net hello world收费信用卡错误:响应无效

时间:2017-07-25 16:59:37

标签: php authorize.net

尝试让Authorize.net的Hello World示例正常工作

这里安装的Composer是json。几乎与他们的例子相同。

{
"require": {
    "symfony/console": "^3.3",
    "php": ">=5.6",
    "ext-curl": "*",
    "authorizenet/authorizenet": ">=1.9.3"    
}
}

以下内容被切断&从ssh粘贴

>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files

我在Hello World PHP示例中唯一改变的是我的沙箱登录ID和事务密钥以及vendor / autoload.php的路径。

我在这里错过了让这个例子返回

以外的东西

充值信用卡错误:响应无效

1 个答案:

答案 0 :(得分:0)

解决这个问题非常简单。在此发布解决方案以支付它。首先,这就是你需要的基本工作composer.json

{
"require": {
    "symfony/console": "^3.3",
    "authorizenet/authorizenet": ">=1.9.3"    
}
}

你可能甚至不需要交响乐。顺便说一句,我运行了PHP 5.6和TLS 1.2,这是必需的。

其次,示例代码中存在范围问题。以下是收费信用卡示例代码的前几行,它在authorize.net浏览器沙盒中正常工作。

function chargeCreditCard($amount)
{

$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName(\SampleCode\Constants::MERCHANT_LOGIN_ID);
$merchantAuthentication->setTransactionKey(\SampleCode\Constants::MERCHANT_TRANSACTION_KEY);

以下是我在我的PHP脚本中将其更改为无法正常工作的内容。

    function chargeCreditCard(){

    $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
    $merchantAuthentication->setName($AuthorizeLoginID);
    $merchantAuthentication->setTransactionKey($AuthorizeTransKey); 

以下是我改变它的工作原理。

    function chargeCreditCard(){

    global $AuthorizeLoginID, $AuthorizeTransKey;

    $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
    $merchantAuthentication->setName($AuthorizeLoginID);
    $merchantAuthentication->setTransactionKey($AuthorizeTransKey); 

有点因为没有及早看到凭证的范围问题而对自己感到生气,但我最终通过消除过程弄明白了。