| 
<?php
 /*************************************************************************************************
 
 Use this function to retrieve a form token which can be used to request the Authorize.Net Accept
 hosted payment page.
 
 SAMPLE REQUEST
 --------------------------------------------------------------------------------------------------
 {
 "getHostedPaymentPageRequest": {
 "merchantAuthentication": {
 "name": "",
 "transactionKey": ""
 },
 "transactionRequest": {
 "transactionType": "authCaptureTransaction",
 "amount": "20.00",
 "profile": {
 "customerProfileId": "123456789"
 },
 "customer": {
 "email": "[email protected]"
 },
 "billTo": {
 "firstName": "Ellen",
 "lastName": "Johnson",
 "company": "Souveniropolis",
 "address": "14 Main Street",
 "city": "Pecan Springs",
 "state": "TX",
 "zip": "44628",
 "country": "USA"
 }
 },
 "hostedPaymentSettings": {
 "setting": [{
 "settingName": "hostedPaymentReturnOptions",
 "settingValue": "{\"showReceipt\": true, \"url\": \"https://mysite.com/receipt\", \"urlText\": \"Continue\", \"cancelUrl\": \"https://mysite.com/cancel\", \"cancelUrlText\": \"Cancel\"}"
 }, {
 "settingName": "hostedPaymentButtonOptions",
 "settingValue": "{\"text\": \"Pay\"}"
 }, {
 "settingName": "hostedPaymentStyleOptions",
 "settingValue": "{\"bgColor\": \"blue\"}"
 }, {
 "settingName": "hostedPaymentPaymentOptions",
 "settingValue": "{\"cardCodeRequired\": false, \"showCreditCard\": true, \"showBankAccount\": true}"
 }, {
 "settingName": "hostedPaymentSecurityOptions",
 "settingValue": "{\"captcha\": false}"
 }, {
 "settingName": "hostedPaymentShippingAddressOptions",
 "settingValue": "{\"show\": false, \"required\": false}"
 }, {
 "settingName": "hostedPaymentBillingAddressOptions",
 "settingValue": "{\"show\": true, \"required\": false}"
 }, {
 "settingName": "hostedPaymentCustomerOptions",
 "settingValue": "{\"showEmail\": false, \"requiredEmail\": false, \"addPaymentProfile\": true}"
 }, {
 "settingName": "hostedPaymentOrderOptions",
 "settingValue": "{\"show\": true, \"merchantName\": \"G and S Questions Inc.\"}"
 }, {
 "settingName": "hostedPaymentIFrameCommunicatorUrl",
 "settingValue": "{\"url\": \"https://mysite.com/iFrameCommunicator.html\"}"
 }]
 }
 }
 }
 
 SAMPLE RESPONSE
 --------------------------------------------------------------------------------------------------
 {
 "token": "FCfc6VbKGFztf8g4sI0B1bG35quHGGlnJx7G8zRpqV0gha2862KkqRQ/NaGa6y2SIhueCAsP/CQKQDQ0QJr8mOfnZD2D0EfogSWP6tQvG3xlv1LS28wFKZHt2U/DSH64eA3jLIwEdU+++++++++++++shortened_for_brevity++++++++WC1mNVQNKv2Z+ 1msH4oiwoXVleb2Q7ezqHYl1FgS8jDAYzA7ls+AYf05s=.89nE4Beh",
 "messages": {
 "resultCode": "Ok",
 "message": [
 {
 "code": "I00001",
 "text": "Successful."
 }
 ]
 }
 }
 
 *************************************************************************************************/
 
 namespace Authnetjson;
 
 use Exception;
 
 require '../../config.inc.php';
 
 try {
 $request = AuthnetApiFactory::getJsonApiHandler(
 AUTHNET_LOGIN,
 AUTHNET_TRANSKEY,
 AuthnetApiFactory::USE_DEVELOPMENT_SERVER
 );
 $response = $request->getHostedPaymentPageRequest([
 "transactionRequest" => [
 "transactionType" => "authCaptureTransaction",
 "amount" => "20.00",
 "profile" => [
 "customerProfileId" => "123456789"
 ],
 "customer" => [
 "email" => "[email protected]"
 ],
 "billTo" => [
 "firstName" => "Ellen",
 "lastName" => "Johnson",
 "company" => "Souveniropolis",
 "address" => "14 Main Street",
 "city" => "Pecan Springs",
 "state" => "TX",
 "zip" => "44628",
 "country" => "USA"
 ]
 ],
 "hostedPaymentSettings" => [
 "setting" => [[
 "settingName" => "hostedPaymentReturnOptions",
 "settingValue" => "{\"showReceipt\": true, \"url\": \"https://mysite.com/receipt\", \"urlText\": \"Continue\", \"cancelUrl\": \"https://mysite.com/cancel\", \"cancelUrlText\": \"Cancel\"}"
 ], [
 "settingName" => "hostedPaymentButtonOptions",
 "settingValue" => "{\"text\": \"Pay\"}"
 ], [
 "settingName" => "hostedPaymentStyleOptions",
 "settingValue" => "{\"bgColor\": \"blue\"}"
 ], [
 "settingName" => "hostedPaymentPaymentOptions",
 "settingValue" => "{\"cardCodeRequired\": false, \"showCreditCard\": true, \"showBankAccount\": true}"
 ], [
 "settingName" => "hostedPaymentSecurityOptions",
 "settingValue" => "{\"captcha\": false}"
 ], [
 "settingName" => "hostedPaymentShippingAddressOptions",
 "settingValue" => "{\"show\": false, \"required\": false}"
 ], [
 "settingName" => "hostedPaymentBillingAddressOptions",
 "settingValue" => "{\"show\": true, \"required\": false}"
 ], [
 "settingName" => "hostedPaymentCustomerOptions",
 "settingValue" => "{\"showEmail\": false, \"requiredEmail\": false, \"addPaymentProfile\": true}"
 ], [
 "settingName" => "hostedPaymentOrderOptions",
 "settingValue" => "{\"show\": true, \"merchantName\": \"G and S Questions Inc.\"}"
 ], [
 "settingName" => "hostedPaymentIFrameCommunicatorUrl",
 "settingValue" => "{\"url\": \"https://mysite.com/iFrameCommunicator.html\"}"
 ]]
 ]
 ]);
 } catch (Exception $e) {
 echo $e;
 exit;
 }
 ?>
 
 <!doctype html>
 <html lang="en">
 <head>
 <meta charset="utf-8">
 <title>Hosted Accept.js Payment Form</title>
 </head>
 <body>
 <form id="paymentForm" method="POST" action="<?= AuthnetAcceptJs::SANDBOX_HOSTED_PAYMENT_URL ?>">
 <input type="hidden" name="token" id="token" value="<?= $response->token ?>" />
 <button onclick="sendPaymentDataToAnet()">Go to Authorize.Net hosted payment form</button>
 </form>
 </body>
 </html>
 
 |