Я создал OrderCreateRequest PayPal на стороне сервера (nodejs), и у меня есть ссылка подтверждения "https://www.sandbox.paypal.com/checkoutnow?token=88K34845N63744150". Мне нужно одобрить эту ссылку одобрения. Как мне это сделать? Моя клиентская сторона Reactjs. Что у меня есть:
на стороне сервера
оплата. js
import paypal from "@paypal/checkout-server-sdk";
const clientId = "CLIENT_ID";
const clientSecret = "SECRET";
const environment = new paypal.core.SandboxEnvironment(clientId, clientSecret);
const client = new paypal.core.PayPalHttpClient(environment);
export const processInvoicePaypalPayment = async (user, data) => {
let request = new paypal.orders.OrdersCreateRequest();
try{
request.body = {
intent: "CAPTURE",
redirect_urls: {
return_url: "http://localhost:3000",
cancel_url: "http://localhost:3000"
},
purchase_units: [
{
amount: {
currency_code: "USD",
value: "**AMOUNT***"
},
description: "This is the payment transaction description."
}]};
const createOrder = async () => {
const response = await client.execute(request);
console.log(`Order: ${JSON.stringify(response.result)}`);// This response.result.links contain approval links
return { ok: true, data: { payment: response.result } };
}
const result = await createOrder();
return result;
}catch(err){}
ClientSide (React js)
test. js
onSuccess = (paymt, details) => {
const {
payment, // This contained the data which retured from server ie links
processInvoicePaypalPayment
} = this.props;
let links = {};
payment.paypalDetails.payment.links.forEach(linkObj => {
links[linkObj.rel] = {
href: linkObj.href,
method: linkObj.method
};
});
if (links.approve) {
window.open(links.approve.href, "windowName", "height=400,width=400"); // Here i try to approve that approval link.
}
}
Поскольку я новичок в этом, я обеспокоен тем, что это правильный способ одобрить ссылку. Если это не так, как я могу сделать sh это? Таким образом, открытие нового всплывающего окна фактически дает мне, что после того, как я войду в систему и завершу процесс оплаты, он не будет перенаправлен обратно на мой сайт. что я получаю:
Как я могу решить эту проблему?