@pix.js/qrcode
Version:
A set of utilities for working with Pix QRCode
101 lines (98 loc) • 3.76 kB
JavaScript
// src/dynamic.ts
import { PixQrCodeType, PointOfInitiationMethod, dynamicPixSchema, toDynamicPix } from "@pix.js/core";
import { toDataURL } from "qrcode";
var createDynamic = (params) => {
const payloadWithDefaultValues = {
merchantAccountInfo: {
gui: params.merchantAccountInfo.gui ?? "br.gov.bcb.pix",
url: params.merchantAccountInfo.url,
merchantAdditionalInfo: params.merchantAccountInfo.merchantAdditionalInfo,
fss: params.merchantAccountInfo.fss
},
pointOfInitiationMethod: params.pointOfInitiationMethod ?? PointOfInitiationMethod.OnTimeOnly,
merchantCategoryCode: params.merchantCategoryCode ?? "0000",
transactionCurrency: params.transactionCurrency ?? "986",
countryCode: params.countryCode ?? "BR",
merchantName: params.merchantName ?? "",
merchantCity: params.merchantCity ?? "",
additionalData: {
txId: params.additionalData?.txId ?? "***"
},
value: params.value,
postalCode: params.postalCode,
unreservedTemplate: {
gui: params.unreservedTemplate?.gui,
url: params.unreservedTemplate?.url
}
};
const parsed = dynamicPixSchema.parse(payloadWithDefaultValues);
const brcode = toDynamicPix(parsed);
return {
brcode,
toBase64: () => toDataURL(brcode),
toDataUrl: () => toDataURL(brcode),
type: PixQrCodeType.Dynamic,
getPayload: async (getPayloadParams) => {
const url = new URL(`https://${params.merchantAccountInfo.url}`);
if (getPayloadParams?.dpp) url.searchParams.append("dpp", getPayloadParams.dpp);
if (getPayloadParams?.codMun) url.searchParams.append("codMun", getPayloadParams.codMun);
const res = await fetch(url.toString());
const jwt = await res.text();
const parts = jwt.split(".").map((b64) => Buffer.from(b64, "base64").toString("utf-8"));
const header = JSON.parse(parts[0]);
const payload = JSON.parse(parts[1]);
return { payload, header };
}
};
};
// src/static.ts
import { PixQrCodeType as PixQrCodeType2, getPixKeyType, staticPixSchema, toStaticPix } from "@pix.js/core";
import { toDataURL as toDataURL2 } from "qrcode";
var createStatic = (params) => {
const payloadWithDefaultValues = {
merchantAccountInfo: {
gui: params.merchantAccountInfo.gui ?? "br.gov.bcb.pix",
key: params.merchantAccountInfo.key,
merchantAdditionalInfo: params.merchantAccountInfo.merchantAdditionalInfo,
fss: params.merchantAccountInfo.fss
},
merchantCategoryCode: params.merchantCategoryCode ?? "0000",
transactionCurrency: params.transactionCurrency ?? "986",
countryCode: params.countryCode ?? "BR",
merchantName: params.merchantName ?? "",
merchantCity: params.merchantCity ?? "",
additionalData: {
txId: params.additionalData?.txId ?? "***"
},
value: params.value,
postalCode: params.postalCode ?? "",
unreservedTemplate: {
gui: params.unreservedTemplate?.gui,
url: params.unreservedTemplate?.url
}
};
const parsed = staticPixSchema.parse(payloadWithDefaultValues);
const brcode = toStaticPix(parsed);
return {
brcode,
toBase64: toDataURL2(brcode),
type: PixQrCodeType2.Static,
keyType: getPixKeyType(params.merchantAccountInfo.key)
};
};
// src/index.ts
export * from "@pix.js/core";
// src/types.ts
var DynamicStatus = /* @__PURE__ */ ((DynamicStatus2) => {
DynamicStatus2["Ativa"] = "ATIVA";
DynamicStatus2["Concluida"] = "CONCLUIDA";
DynamicStatus2["RemovidaPeloUsuarioRecebedor"] = "REMOVIDA_PELO_USUARIO_RECEBEDOR";
DynamicStatus2["RemovidaPeloPsp"] = "REMOVIDA_PELO_PSP";
return DynamicStatus2;
})(DynamicStatus || {});
export {
DynamicStatus,
createDynamic,
createStatic
};
//# sourceMappingURL=index.js.map