Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

88 linhas
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();
  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]["NamaPemesan"],
  38. "gross_amount": parameters["DATA"]["bookings"][0]["hargaTotal"],
  39. "order_id":"Trx-Ord-2545343543",
  40. // "gross_amount":33750000,
  41. }, "credit_card": {
  42. "secure": true
  43. },
  44. "customer_details": {
  45. "first_name": parameters["DATA"]["bookings"][0]["namaPemesan"],
  46. "phone": parameters["DATA"]["bookings"][0]["teleponPemesan"],
  47. // "first_name":"Yusmar",
  48. // "phone":"087797315685",
  49. "billing_address":
  50. {
  51. "first_name": parameters["DATA"]["bookings"][0]["namaPemesan"],
  52. "phone": parameters["DATA"]["bookings"][0]["teleponPemesan"],
  53. "email": parameters["DATA"]["bookings"][0]["emailPemesan"],
  54. // "first_name":"Yusmar",
  55. // "phone":"087797315685",
  56. // "address":"THAMRIN INDRAPURA JL.AIPDA KAREL SATSUIT TUBUN,17 ILIR, KEC.ILIR TIM.I, PALEMBANG, KOTA PALEMBANG - ILIR TIMUR II, SUMATERA SELATAN, ID 30114"
  57. },
  58. },
  59. };
  60. await snap.createTransaction(parameter)
  61. .then((transaction) => {
  62. // transaction token
  63. transactionToken = transaction.token;
  64. console.log('transactionToken:', transactionToken);
  65. // transaction redirect url
  66. let transactionRedirectUrl = transaction.redirect_url;
  67. console.log('transactionRedirectUrl:', transactionRedirectUrl);
  68. })
  69. .catch((e) => {
  70. console.log('Error occured:', e.message);
  71. });
  72. }
  73. return {
  74. props: { transactionToken, review, backend }, // will be passed to the page component as props
  75. };
  76. }