mirror of
https://github.com/vercel/commerce.git
synced 2025-07-22 20:26:49 +00:00
Add accepted payment
This commit is contained in:
@@ -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: [] })
|
||||||
|
Reference in New Issue
Block a user