Paypal integration improvements

This commit is contained in:
Joao Ramos
2024-03-07 11:18:48 +00:00
parent 0cff310354
commit 330c177ff9
4 changed files with 125 additions and 85 deletions

View File

@@ -32,16 +32,29 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
return res.status(401).json({ ok: false, reason: "Missing tracking id!" });
const url = `${process.env.PAYPAL_ACCESS_TOKEN_URL}/v2/checkout/orders`;
const amount = {
currency_code: currencyCode,
value: price.toString(),
};
const data = {
purchase_units: [
{
invoice_id: `INV-${v4()}`,
amount: {
currency_code: currencyCode,
value: price.toString(),
...amount,
breakdown: {
item_total: amount,
},
},
reference_id: v4(),
items: [
{
name: "Encoach Subscription",
quantity: "1",
category: "DIGITAL_GOODS",
unit_amount: amount,
},
],
},
],
payment_source: {
@@ -74,7 +87,13 @@ async function handler(req: NextApiRequest, res: NextApiResponse) {
})
);
const request = await axios.post<OrderResponseBody>(url, data, headers);
res.status(request.status).json(request.data);
axios
.post<OrderResponseBody>(url, data, headers)
.then((request) => {
res.status(request.status).json(request.data);
})
.catch((err) => {
console.error(err.response.status, err.response.data);
res.status(err.response.status).json(err.response.data);
});
}