Paypal integration improvements
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user