【发布时间】:2016-07-15 19:20:25
【问题描述】:
我正在尝试使用 PHP SDK 将 authorize.net 集成到我的 laravel 购物车中。我目前只在沙盒环境中。我让它处理交易(我可以在管理员中看到它并收到电子邮件),但返回的响应都是空值。
代码还是有点脏
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;
class PaymentController extends Controller
{
//
public function authnet_chargeCard()
{
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName(env('AUTHNET_ID'));
$merchantAuthentication->setTransactionKey(env('AUTHNET_KEY'));
$refId = 'ref' . time();
define("AUTHORIZENET_LOG_FILE", "phplog");
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber("4111111111111111");
$creditCard->setExpirationDate("1226");
$creditCard->setCardCode("123");
$paymentOne = new AnetAPI\PaymentType();
$paymentOne->setCreditCard($creditCard);
$order = new AnetAPI\OrderType();
$order->setInvoiceNumber("COW-100");
$order->setDescription("New Item");
//create a transaction
$amount=100;
$transactionRequestType = new AnetAPI\TransactionRequestType();
$transactionRequestType->setTransactionType( "authCaptureTransaction");
$transactionRequestType->setAmount($amount);
$transactionRequestType->setOrder($order);
$transactionRequestType->setPayment($paymentOne);
$request = new AnetAPI\CreateTransactionRequest();
$request->setMerchantAuthentication($merchantAuthentication);
$request->setRefId( $refId);
$request->setTransactionRequest($transactionRequestType);
$controller = new AnetController\CreateTransactionController($request);
$response = $controller->executeWithApiResponse( \net\authorize\api\constants\ANetEnvironment::SANDBOX);
//dd($response);
if ($response != null)
{
$tresponse = $response->getTransactionResponse();
if (($tresponse != null) && ($tresponse->getResponseCode()== \SampleCode\Constants::RESPONSE_OK) )
{
echo "Charge Credit Card AUTH CODE : " . $tresponse->getAuthCode() . "\n";
echo "Charge Credit Card TRANS ID : " . $tresponse->getTransId() . "\n";
}
else
{
echo "Charge Credit Card ERROR : Invalid response\n";
}
}
else
{
echo "Charge Credit card Null response returned";
}
}
}
每次我的回复都是这样的:
CreateTransactionResponse {#352 ▼
-transactionResponse: null
-profileResponse: null
-refId: null
-messages: null
-sessionToken: null
}
我什至尝试过将 $VERIFY_PEER 临时设置为 false
【问题讨论】:
-
另外...如果这有什么不同的话,我会在 laravel homestead vagrant build 上运行它。
标签: php laravel-5 authorize.net