@rsc-labs/medusa-square-payment
Version:
Square payment provider for Medusa
85 lines • 6.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@medusajs/framework/utils");
const square_1 = require("square");
const crypto_1 = require("crypto");
class SquarePaymentProviderService extends utils_1.AbstractPaymentProvider {
constructor(container, options) {
super(container, options);
this.logger_ = container.logger;
this.options_ = options;
this.eventBusService_ = container.event_bus;
this.square_ = new square_1.SquareClient({
token: this.options_.token,
environment: this.options_.environment === 'sandbox' ? square_1.SquareEnvironment.Sandbox : square_1.SquareEnvironment.Production
});
}
static validateOptions(options) {
if (!options.token) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "token is required in the provider's options.");
}
if (options.environment) {
if (options.environment !== 'production' && options.environment !== "sandbox") {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "environment needs to be either production or sandbox");
}
}
}
async capturePayment(paymentData) {
return {
data: paymentData,
};
}
async authorizePayment(paymentData) {
return {
...paymentData,
status: paymentData.data && paymentData.data.status === 'COMPLETED' ? 'captured' : 'pending',
};
}
async cancelPayment(paymentData) {
throw new Error("cancelPayment Method not implemented.");
}
async initiatePayment(paymentData) {
const result = await this.square_.payments.create({
idempotencyKey: (0, crypto_1.randomUUID)(),
sourceId: paymentData.data.token,
amountMoney: {
currency: paymentData.currency_code.toUpperCase(),
// currency: "USD",
amount: BigInt(paymentData.amount * 100)
}
});
if (result.payment && result.payment.id) {
return {
id: result.payment.id,
data: {
...paymentData,
status: result.payment.status,
}
};
}
throw new Error("initpayment no context provided");
}
async deletePayment(paymentSessionData) {
throw new Error("deletePayment Method not implemented.");
}
async getPaymentStatus(paymentData) {
throw new Error("getPaymentStatus Method not implemented.");
}
async refundPayment(paymentData) {
throw new Error("refundPayment Method not implemented.");
}
async retrievePayment(paymentSessionData) {
throw new Error("retrievePayment Method not implemented.");
}
async updatePayment(context) {
throw new Error("updatePayment Method not implemented.");
}
async getWebhookActionAndData(data) {
return {
action: utils_1.PaymentActions.NOT_SUPPORTED
};
}
}
SquarePaymentProviderService.identifier = "square-payment";
exports.default = SquarePaymentProviderService;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3F1YXJlLXBheW1lbnQvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFnRztBQUdoRyxtQ0FBaUU7QUFDakUsbUNBQW9DO0FBWXBDLE1BQU0sNEJBQTZCLFNBQVEsK0JBRTFDO0lBUUMsWUFDRSxTQUErQixFQUMvQixPQUFnQjtRQUVoQixLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBRXpCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQTtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQTtRQUUzQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUkscUJBQVksQ0FBQztZQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLO1lBQzFCLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLDBCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMEJBQWlCLENBQUMsVUFBVTtTQUNoSCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF5QjtRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDhDQUE4QyxDQUMvQyxDQUFBO1FBQ0gsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxZQUFZLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUs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