@vigilio/payments
Version:
Payments niubiz, paypal, etc.
198 lines • 8.78 kB
JavaScript
import { __awaiter, __generator } from "tslib";
// https://developer.paypal.com/docs/api/orders/v2/
function usePaypal(authProps) {
function accessToken() {
return __awaiter(this, void 0, void 0, function () {
var params, auth, tokenResponse, tokenResult, token;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
params = new URLSearchParams();
params.append("grant_type", "client_credentials");
auth = btoa("".concat(authProps.client_id, ":").concat(authProps.secret_key));
return [4 /*yield*/, fetch("".concat(authProps.sandbox, "/v1/oauth2/token"), {
method: "POST",
body: params,
headers: {
"Content-Type": "application/json",
Authorization: "Basic ".concat(auth),
},
})];
case 1:
tokenResponse = _a.sent();
return [4 /*yield*/, tokenResponse.json()];
case 2:
tokenResult = _a.sent();
token = tokenResult.access_token;
return [2 /*return*/, token];
}
});
});
}
function createOrder(props) {
return __awaiter(this, void 0, void 0, function () {
var token, response, result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, accessToken()];
case 1:
token = _a.sent();
return [4 /*yield*/, fetch("".concat(authProps.sandbox, "/v2/checkout/orders"), {
method: "POST",
body: JSON.stringify(props),
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ".concat(token),
},
})];
case 2:
response = _a.sent();
return [4 /*yield*/, response.json()];
case 3:
result = _a.sent();
return [2 /*return*/, result];
}
});
});
}
function showOrder(id) {
return __awaiter(this, void 0, void 0, function () {
var token, response, result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, accessToken()];
case 1:
token = _a.sent();
return [4 /*yield*/, fetch("".concat(authProps.sandbox, "/v2/checkout/orders/").concat(id), {
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ".concat(token),
},
})];
case 2:
response = _a.sent();
return [4 /*yield*/, response.json()];
case 3:
result = _a.sent();
return [2 /*return*/, result];
}
});
});
}
function updateOrder(id, props) {
return __awaiter(this, void 0, void 0, function () {
var token, response, result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, accessToken()];
case 1:
token = _a.sent();
return [4 /*yield*/, fetch("".concat(authProps.sandbox, "/v2/checkout/orders/").concat(id), {
method: "PATCH",
body: JSON.stringify(props),
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ".concat(token),
},
})];
case 2:
response = _a.sent();
return [4 /*yield*/, response.json()];
case 3:
result = _a.sent();
return [2 /*return*/, result];
}
});
});
}
function confirmOrder(id, props) {
return __awaiter(this, void 0, void 0, function () {
var token, response, result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, accessToken()];
case 1:
token = _a.sent();
return [4 /*yield*/, fetch("".concat(authProps.sandbox, "/v2/checkout/orders/").concat(id, "/confirm-payment-source"), {
method: "PATCH",
body: JSON.stringify(props),
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ".concat(token),
},
})];
case 2:
response = _a.sent();
return [4 /*yield*/, response.json()];
case 3:
result = _a.sent();
return [2 /*return*/, result];
}
});
});
}
function authorizeOrder(id, props) {
return __awaiter(this, void 0, void 0, function () {
var token, response, result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, accessToken()];
case 1:
token = _a.sent();
return [4 /*yield*/, fetch("".concat(authProps.sandbox, "/v2/checkout/orders/").concat(id, "/authorize"), {
method: "POST",
body: JSON.stringify(props),
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ".concat(token),
},
})];
case 2:
response = _a.sent();
return [4 /*yield*/, response.json()];
case 3:
result = _a.sent();
return [2 /*return*/, result];
}
});
});
}
function captureOrder(id, props) {
return __awaiter(this, void 0, void 0, function () {
var token, response, result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, accessToken()];
case 1:
token = _a.sent();
return [4 /*yield*/, fetch("".concat(authProps.sandbox, "/v2/checkout/orders/").concat(id, "/capture"), {
method: "POST",
body: JSON.stringify(props),
headers: {
"Content-Type": "application/json",
Authorization: "Bearer ".concat(token),
},
})];
case 2:
response = _a.sent();
return [4 /*yield*/, response.json()];
case 3:
result = _a.sent();
return [2 /*return*/, result];
}
});
});
}
return {
accessToken: accessToken,
createOrder: createOrder,
showOrder: showOrder,
confirmOrder: confirmOrder,
authorizeOrder: authorizeOrder,
updateOrder: updateOrder,
captureOrder: captureOrder,
};
}
export default usePaypal;
//# sourceMappingURL=paypal.js.map