尝试让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的路径。
我在这里错过了让这个例子返回
以外的东西充值信用卡错误:响应无效
答案 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);
有点因为没有及早看到凭证的范围问题而对自己感到生气,但我最终通过消除过程弄明白了。