Actualizacion de Diseño Logins y Parte de Registro Negocios
This commit is contained in:
@@ -0,0 +1,217 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Payment;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use net\authorize\api\contract\v1 as AnetAPI;
|
||||
use net\authorize\api\controller as AnetController;
|
||||
use App\Models\CombinedOrder;
|
||||
use App\Models\CustomerPackage;
|
||||
use App\Models\SellerPackage;
|
||||
use App\Http\Controllers\CustomerPackageController;
|
||||
use App\Http\Controllers\SellerPackageController;
|
||||
use App\Http\Controllers\WalletController;
|
||||
use App\Http\Controllers\CheckoutController;
|
||||
use Auth;
|
||||
use Session;
|
||||
|
||||
class AuthorizenetController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct() {
|
||||
//$this->middleware('auth'); // later enable it when needed user login while payment
|
||||
}
|
||||
|
||||
// start page form after start
|
||||
public function pay() {
|
||||
return view('frontend/authorize_net/pay');
|
||||
}
|
||||
|
||||
public function handleonlinepay(Request $request) {
|
||||
$input = $request->input();
|
||||
$user = Auth::user();
|
||||
$invoiceNumber = '';
|
||||
$lastName = '';
|
||||
$address = '';
|
||||
$city = '';
|
||||
$zip = '';
|
||||
$country = '';
|
||||
|
||||
if(Session::get('payment_type') == 'cart_payment'){
|
||||
$database_order = CombinedOrder::findOrFail(Session::get('combined_order_id'));
|
||||
$first_order = $database_order->orders->first();
|
||||
|
||||
$invoiceNumber = time().$database_order->id;
|
||||
$lastName = json_decode($first_order->shipping_address)->name;
|
||||
$address = json_decode($first_order->shipping_address)->address;
|
||||
$amount = $database_order->orders->sum('grand_total');
|
||||
$city = json_decode($first_order->shipping_address)->city;
|
||||
$zip = json_decode($first_order->shipping_address)->postal_code;
|
||||
$country = json_decode($first_order->shipping_address)->country;
|
||||
}
|
||||
|
||||
elseif (Session::get('payment_type') == 'wallet_payment') {
|
||||
$invoiceNumber = rand(10000,99999);
|
||||
$amount= Session::get('payment_data')['amount'];
|
||||
$lastName = $user->name;
|
||||
}
|
||||
|
||||
elseif (Session::get('payment_type') == 'customer_package_payment') {
|
||||
$invoiceNumber = rand(10000,99999);
|
||||
$customer_package = CustomerPackage::findOrFail(Session::get('payment_data')['customer_package_id']);
|
||||
$amount = $customer_package->amount;
|
||||
$lastName = $user->name;
|
||||
}
|
||||
|
||||
elseif (Session::get('payment_type') == 'seller_package_payment') {
|
||||
$invoiceNumber = rand(10000,99999);
|
||||
$seller_package = SellerPackage::findOrFail(Session::get('payment_data')['seller_package_id']);
|
||||
$amount = $seller_package->amount;
|
||||
$lastName = $user->name;
|
||||
}
|
||||
|
||||
/* Create a merchantAuthenticationType object with authentication details
|
||||
retrieved from the constants file */
|
||||
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
|
||||
$merchantAuthentication->setName(env('MERCHANT_LOGIN_ID'));
|
||||
$merchantAuthentication->setTransactionKey(env('MERCHANT_TRANSACTION_KEY'));
|
||||
|
||||
// Set the transaction's refId
|
||||
$refId = 'ref' . time();
|
||||
$cardNumber = preg_replace('/\s+/', '', $input['cardNumber']);
|
||||
|
||||
// Create the payment data for a credit card
|
||||
$creditCard = new AnetAPI\CreditCardType();
|
||||
$creditCard->setCardNumber($cardNumber);
|
||||
$creditCard->setExpirationDate($input['expiration-year'] . "-" .$input['expiration-month']);
|
||||
$creditCard->setCardCode($input['cvv']);
|
||||
|
||||
// Add the payment data to a paymentType object
|
||||
$paymentOne = new AnetAPI\PaymentType();
|
||||
$paymentOne->setCreditCard($creditCard);
|
||||
|
||||
// Create order information
|
||||
$order = new AnetAPI\OrderType();
|
||||
$order->setInvoiceNumber($invoiceNumber);
|
||||
// $order->setDescription("Golf Shirts");
|
||||
|
||||
// Set the customer's Bill To address
|
||||
$customerAddress = new AnetAPI\CustomerAddressType();
|
||||
$customerAddress->setFirstName("");
|
||||
$customerAddress->setLastName($lastName);
|
||||
$customerAddress->setAddress($address);
|
||||
$customerAddress->setCity($city);
|
||||
$customerAddress->setZip($zip);
|
||||
$customerAddress->setCountry($country);
|
||||
|
||||
// Set the customer's identifying information
|
||||
$customerData = new AnetAPI\CustomerDataType();
|
||||
$customerData->setId($user->id);
|
||||
$customerData->setEmail($user->email);
|
||||
|
||||
// Create a TransactionRequestType object and add the previous objects to it
|
||||
$transactionRequestType = new AnetAPI\TransactionRequestType();
|
||||
$transactionRequestType->setTransactionType("authCaptureTransaction");
|
||||
$transactionRequestType->setAmount($amount);
|
||||
$transactionRequestType->setPayment($paymentOne);
|
||||
$transactionRequestType->setOrder($order);
|
||||
$transactionRequestType->setPayment($paymentOne);
|
||||
$transactionRequestType->setBillTo($customerAddress);
|
||||
$transactionRequestType->setCustomer($customerData);
|
||||
|
||||
// Assemble the complete transaction request
|
||||
$requests = new AnetAPI\CreateTransactionRequest();
|
||||
$requests->setMerchantAuthentication($merchantAuthentication);
|
||||
$requests->setRefId($refId);
|
||||
$requests->setTransactionRequest($transactionRequestType);
|
||||
|
||||
// Create the controller and get the response
|
||||
$controller = new AnetController\CreateTransactionController($requests);
|
||||
if (get_setting('authorizenet_sandbox') == 1) {
|
||||
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
|
||||
} else {
|
||||
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
|
||||
}
|
||||
|
||||
// dd($response);
|
||||
if ($response != null) {
|
||||
// Check to see if the API request was successfully received and acted upon
|
||||
if ($response->getMessages()->getResultCode() == "Ok") {
|
||||
// Since the API request was successful, look for a transaction response
|
||||
// and parse it to display the results of authorizing the card
|
||||
$tresponse = $response->getTransactionResponse();
|
||||
|
||||
if ($tresponse != null && $tresponse->getMessages() != null) {
|
||||
// echo " Successfully created transaction with Transaction ID: " . $tresponse->getTransId() . "\n";
|
||||
// echo " Transaction Response Code: " . $tresponse->getResponseCode() . "\n";
|
||||
// echo " Message Code: " . $tresponse->getMessages()[0]->getCode() . "\n";
|
||||
// echo " Auth Code: " . $tresponse->getAuthCode() . "\n";
|
||||
// echo " Description: " . $tresponse->getMessages()[0]->getDescription() . "\n";
|
||||
$payment_detalis = json_encode(
|
||||
array(
|
||||
'transId' => $tresponse->getTransId(),
|
||||
'authCode' => $tresponse->getAuthCode(),
|
||||
'accountType' => $tresponse->getAccountType(),
|
||||
'accountNumber' => $tresponse->getAccountNumber(),
|
||||
'refId' => $response->getRefId(),
|
||||
)
|
||||
);
|
||||
$message_text = $tresponse->getMessages()[0]->getDescription().", Transaction ID: " . $tresponse->getTransId();
|
||||
$msg_type = "success_msg";
|
||||
|
||||
if(Session::get('payment_type') == 'cart_payment'){
|
||||
return (new CheckoutController)->checkout_done(Session::get('combined_order_id'), $payment_detalis);
|
||||
}
|
||||
elseif (Session::get('payment_type') == 'wallet_payment') {
|
||||
return (new WalletController)->wallet_payment_done(Session::get('payment_data'), $payment_detalis);
|
||||
}
|
||||
elseif (Session::get('payment_type') == 'customer_package_payment') {
|
||||
return (new CustomerPackageController)->purchase_payment_done(Session::get('payment_data'), $payment_detalis);
|
||||
}
|
||||
elseif (Session::get('payment_type') == 'seller_package_payment') {
|
||||
return (new SellerPackageController)->purchase_payment_done(Session::get('payment_data'), $payment_detalis);
|
||||
}
|
||||
|
||||
} else {
|
||||
$message_text = 'There were some issue with the payment. Please try again later.';
|
||||
$msg_type = "error_msg";
|
||||
|
||||
if ($tresponse->getErrors() != null) {
|
||||
$message_text = $tresponse->getErrors()[0]->getErrorText();
|
||||
$msg_type = "error_msg";
|
||||
}
|
||||
}
|
||||
// Or, print errors if the API request wasn't successful
|
||||
} else {
|
||||
$message_text = 'There were some issue with the payment. Please try again later.';
|
||||
$msg_type = "error_msg";
|
||||
|
||||
$tresponse = $response->getTransactionResponse();
|
||||
|
||||
if ($tresponse != null && $tresponse->getErrors() != null) {
|
||||
$message_text = $tresponse->getErrors()[0]->getErrorText();
|
||||
$msg_type = "error_msg";
|
||||
} else {
|
||||
$message_text = $response->getMessages()->getMessage()[0]->getText();
|
||||
$msg_type = "error_msg";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$message_text = "No response returned";
|
||||
$msg_type = "error_msg";
|
||||
}
|
||||
|
||||
Session::forget('combined_order_id');
|
||||
flash(translate($message_text))->success();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
|
||||
public function cardType(){
|
||||
return (new AnetAPI\CreditCardType())->cardType();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user