Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 

87 rader
3.2 KiB

  1. import React, { useState } from 'react';
  2. import Navbar from "@/components/_App/NavbarHome";
  3. import Footer from "@/components/_App/Footer";
  4. import ReviewContent from '@/components/Booking/review';
  5. import GetReviewItem from "api/Booking/booking";
  6. const Checkout = function ({ transactionToken, backend, review, ...props }) {
  7. return (
  8. <>
  9. <Navbar /><br /><br />
  10. <ReviewContent review={review} transactionToken={transactionToken} />
  11. <Footer />
  12. </>
  13. )
  14. }
  15. export default Checkout;
  16. export async function getServerSideProps(context) {
  17. var { query } = context;
  18. var review = [];
  19. const backend = process.env.BACKEND_SERVER_URI;
  20. var res = await GetReviewItem.getReview(query.s || 0);
  21. if (res["STATUS"] === 1) {
  22. review = res["DATA"]["bookings"];
  23. }
  24. // midtrans
  25. var parameters = await GetReviewItem.getReview(query.s || 0);
  26. console.log("parameters", parameters);
  27. var transactionToken = [];
  28. if (parameters["STATUS"] === 1) {
  29. const midtransClient = require('midtrans-client');
  30. let snap = new midtransClient.Snap({
  31. isProduction: false,
  32. serverKey: 'SB-Mid-server-SfBhLkXXlTxCBx7EYP5T2k3d',
  33. clientKey: 'SB-Mid-client-srx674LjNbEybd4-'
  34. });
  35. let parameter = {
  36. "transaction_details": {
  37. "order_id": parameters["DATA"]["bookings"][0]["transactionID"],
  38. "gross_amount": parameters["DATA"]["bookings"][0]["hargaTotal"],
  39. }, "credit_card": {
  40. "secure": true
  41. },
  42. "customer_details": {
  43. "first_name": parameters["DATA"]["bookings"][0]["namaPemesan"],
  44. "phone": parameters["DATA"]["bookings"][0]["teleponPemesan"],
  45. "email": parameters["DATA"]["bookings"][0]["emailPemesan"],
  46. // "first_name":"Yusmar",
  47. // "phone":"087797315685",
  48. "billing_address":
  49. {
  50. "first_name": parameters["DATA"]["bookings"][0]["namaPemesan"],
  51. "phone": parameters["DATA"]["bookings"][0]["teleponPemesan"],
  52. "email": parameters["DATA"]["bookings"][0]["emailPemesan"],
  53. // "first_name":"Yusmar",
  54. // "phone":"087797315685",
  55. // "address":"THAMRIN INDRAPURA JL.AIPDA KAREL SATSUIT TUBUN,17 ILIR, KEC.ILIR TIM.I, PALEMBANG, KOTA PALEMBANG - ILIR TIMUR II, SUMATERA SELATAN, ID 30114"
  56. },
  57. },
  58. };
  59. await snap.createTransaction(parameter)
  60. .then((transaction) => {
  61. // transaction token
  62. transactionToken = transaction.token;
  63. console.log('transactionToken:', transactionToken);
  64. // transaction redirect url
  65. let transactionRedirectUrl = transaction.redirect_url;
  66. console.log('transactionRedirectUrl:', transactionRedirectUrl);
  67. })
  68. .catch((e) => {
  69. console.log('Error occured:', e.message);
  70. });
  71. }
  72. return {
  73. props: { transactionToken, review, backend }, // will be passed to the page component as props
  74. };
  75. }