Browse Source

add new user

feature/cart
Dslak 4 years ago
parent
commit
fc20369cef
  1. 1
      .env
  2. 42
      api/user_add.php
  3. 4
      components/checkout/checkout.html
  4. 33
      components/checkout/checkout.js
  5. 5
      components/checkout/checkout.scss
  6. 23
      src/js/index.js

1
.env

@ -5,6 +5,7 @@ PP_ACCOUNT=dslaky-seller@gmail.com
PP_CLIENTID=AfnGR9VCjtBF_M0TemwikSG7q0sIm0mE4maIWw9vhiT1-X7vd9ONTvf-D3mEw1AaG9t2CWjoNbHIltI8
PP_SECRET=ENR4dvs4Y4836E-rDGUUMRIY6QEsCzOLsy16yoIBUrDpyt-Jfqi9PwNzBIDeKUpTuTbZUxQBvIe44jC0
PP_CANCEL=http://iolovolio.local/checkout
PP_RETURN=http://iolovolio.local/thankyou
PP_AUTH_URL=https://api-m.sandbox.paypal.com/v1/oauth2/token
PP_ORDER_URL=https://api-m.sandbox.paypal.com/v2/checkout/orders

42
api/user_add.php

@ -0,0 +1,42 @@
<?php
session_start();
include_once './config.php';
include_once './database.php';
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
$databaseService = new DatabaseService();
$conn = $databaseService->getConnection();
$data = json_decode(file_get_contents("php://input"));
$query = "INSERT INTO `users`
(`id`, `first_name`, `last_name`, `email`, `phone`, `address`, `city`, `zip_code`, `province`, `password`)
VALUES (NULL, '".trim($data->first_name)."', '".trim($data->last_name)."', '".trim($data->email)."',
'".trim($data->phone)."', '".trim($data->address)."', '".trim($data->city)."',
'".trim($data->zip_code)."', '".trim($data->province)."', '".md5(trim($data->password))."')";
$stmt = $conn->prepare($query);
if($stmt->execute()) {
http_response_code(200);
echo json_encode(
array(
"status" => 200,
"profile" => $data
));
} else {
http_response_code(400);
echo json_encode(
array(
"status" => 400,
"message" => "Error inserting new user"
));
}
?>

4
components/checkout/checkout.html

@ -14,7 +14,7 @@
<div class="col-12 col-md-8 pb-5">
<span class="title">Dettagli fatturazione</span>
<span class="subtitle">Sei già nostro cliente? Accedi</span>
<span class="subtitle">Sei già nostro cliente? <span class="toggle-login">Accedi</span></span>
<div class="row">
<div class="col-12 col-md-6 pr-2 pr-md-4">
@ -179,5 +179,3 @@
</div>
</div>
<!--
<script src="https://www.paypal.com/sdk/js?client-id=AUHeOuSaPRdDP3z_Qtm2tNLG1UAuY25EYXVyJ0UmfEFKxinjHN8RQ5M8N17EPxYBCTPl4RrsTntuR3kv"></script>-->

33
components/checkout/checkout.js

@ -8,12 +8,18 @@ $(document).ready( () => {
const place = component.find('.place-order')
const extraAddress = component.find('.different-address')
const extraAddressRadio = component.find('input[name="other_address"]')
const toggleLogin = $('.toggle-login')
let hasExtraAddress = false
let isNewUser = true
place.off('.click').on('click.click', () => {
checkForm()
})
toggleLogin.off('.click').on('click.click', () => {
isNewUser = !isNewUser
})
extraAddressRadio.off('.click').on('click.click', (e) => {
const checked = $(e.currentTarget).val()
hasExtraAddress = checked == 'yes'
@ -102,23 +108,13 @@ $(document).ready( () => {
body[name] = input.val()
}
})
// placeOrder()
}
const profile = {
first_name: 'Carmine',
last_name: 'De Rosa',
address: 'C.so Sempione, 76',
city: 'Milano',
province: 'MI',
zip_code: '20154'
}
placeOrder(profile)
placeOrder(body, isNewUser)
}
}
const placeOrder = (profile) => {
const placeOrder = (profile, isNewUser) => {
Apis.getCart().then( (data) => {
const cartItems = data.cart
@ -147,7 +143,16 @@ $(document).ready( () => {
Apis.placeOrder(cart, token).then( (data) => {
const capture = data.links.find(item => item.rel == 'capture')
const approve = data.links.find(item => item.rel == 'approve')
window.location = approve.href
if(isNewUser) {
Apis.addUser(profile).then( (data) => {
console.log(data)
window.location = approve.href
}).catch( (error) => {
console.error(error)
})
} else {
window.location = approve.href
}
}).catch( (error) => {
console.error(error)
})

5
components/checkout/checkout.scss

@ -18,6 +18,11 @@
height: 40px;
}
.toggle-login {
color: $brown;
cursor: pointer;
}
.label {
display: block;
@include font-style($font-sans, 700, $font-16);

23
src/js/index.js

@ -57,6 +57,26 @@ window.Apis.getCart = (body) => {
})
}
window.Apis.addUser = (body) => {
return new Promise((resolve, reject) => {
$.ajax({
type: 'POST',
url: apiUrl + `/user_add.php?buster=${new Date().getTime()}`,
data: JSON.stringify(body),
dataType: 'json',
async: true,
contentType: 'application/json; charset=utf-8',
success: (data) => {
resolve(data)
},
error: (error) => {
reject(error)
}
})
})
}
window.Apis.getToken = () => {
return new Promise((resolve, reject) => {
$.ajax({
@ -84,7 +104,7 @@ window.Apis.placeOrder = (cart, token) => {
brand_name: 'IoLovOlio',
locale: 'it-IT',
return_url: ENV.PP_RETURN,
cancel_url: ENV.PP_RETURN
cancel_url: ENV.PP_CANCEL
},
purchase_units: cart
}
@ -107,4 +127,3 @@ window.Apis.placeOrder = (cart, token) => {
})
})
}

Loading…
Cancel
Save