diff --git a/packages/opencommerce/.env.template b/packages/opencommerce/.env.template index cf92d6262..e1808adc2 100644 --- a/packages/opencommerce/.env.template +++ b/packages/opencommerce/.env.template @@ -3,4 +3,3 @@ COMMERCE_PROVIDER=@vercel/commerce-opencommerce OPENCOMMERCE_STOREFRONT_API_URL= OPENCOMMERCE_PRIMARY_SHOP_ID= OPENCOMMERCE_IMAGE_DOMAIN= -OPENCOMMERCE_STRIPE_API_KEY= \ No newline at end of file diff --git a/packages/opencommerce/src/api/endpoints/checkout/submit-checkout.ts b/packages/opencommerce/src/api/endpoints/checkout/submit-checkout.ts index 84e06e85f..01504325d 100644 --- a/packages/opencommerce/src/api/endpoints/checkout/submit-checkout.ts +++ b/packages/opencommerce/src/api/endpoints/checkout/submit-checkout.ts @@ -1,16 +1,9 @@ -import Stripe from 'stripe' - -import type { CardFields } from '../../../types/customer/card' import { LineItem } from '../../../types/cart' import placeOrder from '../../mutations/place-order' import setEmailOnAnonymousCart from '../../mutations/set-email-on-anonymous-cart' import getCartCookie from '../../utils/get-cart-cookie' import type { CheckoutEndpoint } from '.' -const stripe = new Stripe(process.env.OPENCOMMERCE_STRIPE_API_KEY as string, { - apiVersion: '2020-08-27', -}) - const submitCheckout: CheckoutEndpoint['handlers']['submitCheckout'] = async ({ res, body: { item, cartId }, @@ -27,69 +20,45 @@ const submitCheckout: CheckoutEndpoint['handlers']['submitCheckout'] = async ({ }, }) - const card = item.card as CardFields - - const pm = await stripe.paymentMethods.create({ - type: 'card', - card: { - number: card.cardNumber, - exp_month: Number(card.cardExpireDate.split('/')[0]), - exp_year: Number(card.cardExpireDate.split('/')[1]), - cvc: card.cardCvc, - }, - } as Stripe.PaymentMethodCreateParams) - - const result = await stripe.paymentIntents.create({ - confirm: true, - amount: Math.round(item.checkout.cart.checkout.summary.total.amount * 100), - currency: item.checkout.cart.currency.code, - capture_method: 'manual', - metadata: { - integration_check: 'accept_a_payment', - }, - payment_method: pm.id, - }) - - if (result.status === 'succeeded' || result.status === 'requires_capture') { - const { data } = await fetch(placeOrder, { - variables: { - input: { - payments: { - data: { stripePaymentIntentId: result.id }, - amount: item.checkout.cart.checkout.summary.total.amount, - method: 'stripe_payment_intent', - }, - order: { - cartId, - currencyCode: item.checkout.cart.currency.code, - email: 'opencommerce@test.com', + const { data } = await fetch(placeOrder, { + variables: { + input: { + payments: { + data: { fullName: 'Open Commerce Demo Site' }, + amount: item.checkout.cart.checkout.summary.total.amount, + method: 'iou_example', + }, + order: { + cartId, + currencyCode: item.checkout.cart.currency.code, + email: 'opencommerce@test.com', + shopId, + fulfillmentGroups: { shopId, - fulfillmentGroups: { - shopId, - data: item.checkout.cart.checkout.fulfillmentGroups[0].data, - items: item.checkout.cart.lineItems.map((item: LineItem) => ({ - price: item.variant.price, - quantity: item.quantity, - productConfiguration: { - productId: item.productId, - productVariantId: item.variantId, - }, - })), - type: item.checkout.cart.checkout.fulfillmentGroups[0].type, - selectedFulfillmentMethodId: - item.checkout.cart.checkout.fulfillmentGroups[0] - .selectedFulfillmentOption.fulfillmentMethod._id, - }, + data: item.checkout.cart.checkout.fulfillmentGroups[0].data, + items: item.checkout.cart.lineItems.map((item: LineItem) => ({ + price: item.variant.price, + quantity: item.quantity, + productConfiguration: { + productId: item.productId, + productVariantId: item.variantId, + }, + })), + type: item.checkout.cart.checkout.fulfillmentGroups[0].type, + selectedFulfillmentMethodId: + item.checkout.cart.checkout.fulfillmentGroups[0] + .selectedFulfillmentOption.fulfillmentMethod._id, }, }, }, - }) + }, + }) + + res.setHeader('Set-Cookie', [ + getCartCookie(cartCookie), + getCartCookie(anonymousCartTokenCookie), + ]) - res.setHeader('Set-Cookie', [ - getCartCookie(cartCookie), - getCartCookie(anonymousCartTokenCookie), - ]) - } res.status(200).json({ data: null, errors: [] }) } diff --git a/site/.env.template b/site/.env.template index a7c522c31..5eab31d0a 100644 --- a/site/.env.template +++ b/site/.env.template @@ -53,7 +53,6 @@ NEXT_PUBLIC_COMMERCEJS_DEPLOYMENT_URL= OPENCOMMERCE_STOREFRONT_API_URL= OPENCOMMERCE_PRIMARY_SHOP_ID= OPENCOMMERCE_IMAGE_DOMAIN= -OPENCOMMERCE_STRIPE_API_KEY= SFCC_CLIENT_ID= SFCC_CLIENT_SECRET= diff --git a/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx b/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx index bec57c739..951a8540e 100644 --- a/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx +++ b/site/components/checkout/PaymentMethodView/PaymentMethodView.tsx @@ -68,7 +68,6 @@ const PaymentMethodView: FC = () => { name="cardNumber" className={s.input} defaultValue={cardFields.cardNumber} - required />