Add accepted payment

This commit is contained in:
goncy
2021-09-20 14:36:11 -03:00
parent ad5d2da980
commit 44b5ec9464

View File

@@ -1,10 +1,10 @@
import type { CustomerCardEndpoint } from '.' import type { CustomerCardEndpoint } from '.'
import type { OredercloudCreditCard } from '../../../../types/customer/card' import type { OredercloudCreditCard } from '../../../../types/customer/card'
import Stripe from "stripe" import Stripe from 'stripe'
const stripe = new Stripe(process.env.STRIPE_SECRET as string, { const stripe = new Stripe(process.env.STRIPE_SECRET as string, {
apiVersion: "2020-08-27" apiVersion: '2020-08-27',
}) })
const addItem: CustomerCardEndpoint['handlers']['addItem'] = async ({ const addItem: CustomerCardEndpoint['handlers']['addItem'] = async ({
@@ -29,30 +29,31 @@ const addItem: CustomerCardEndpoint['handlers']['addItem'] = async ({
} }
// Get token // Get token
const token = await stripe.tokens.create({ const token = await stripe.tokens
card: { .create({
number: item.cardNumber, card: {
exp_month: item.cardExpireDate.split('/')[0], number: item.cardNumber,
exp_year: item.cardExpireDate.split('/')[1], exp_month: item.cardExpireDate.split('/')[0],
cvc: item.cardCvc exp_year: item.cardExpireDate.split('/')[1],
} cvc: item.cardCvc,
}).then((res: {id: string}) => res.id) },
})
.then((res: { id: string }) => res.id)
// Register credit card // Register credit card
const creditCard = await restFetch('POST', `/me/creditcards`, { const creditCard = await restFetch('POST', `/me/creditcards`, {
"Token": token, Token: token,
"CardType": "credit", CardType: 'credit',
"PartialAccountNumber": item.cardNumber.slice(-4), PartialAccountNumber: item.cardNumber.slice(-4),
"CardholderName": item.cardHolder, CardholderName: item.cardHolder,
"ExpirationDate": item.cardExpireDate ExpirationDate: item.cardExpireDate,
}).then( }).then((response: OredercloudCreditCard) => response.ID)
(response: OredercloudCreditCard) => response.ID
)
// Assign payment to order // Assign payment to order
await restFetch('POST', `/orders/Outgoing/${cartId}/payments`, { await restFetch('POST', `/orders/Outgoing/${cartId}/payments`, {
"Type": "CreditCard", Accepted: true,
CreditCardID: creditCard Type: 'CreditCard',
CreditCardID: creditCard,
}) })
return res.status(200).json({ data: null, errors: [] }) return res.status(200).json({ data: null, errors: [] })