Si tienes que añadir esos atributos vía javascript, quizá debas también iniciar el script de esa manera, para que los valores de esos atributos estén presentes cuando el script sea cargado:
Código PHP:
<script>
let id = "lau";
let src = "https://checkout.wompi.co/widget.js";
let data = new Map();
data.set('render', 'button');
data.set('public-key', 'pub_test_X0zDA9xoKdePzhd8a0x9HAez7HgGO2fH');
data.set('currency', 'COP');
data.set('amount-in-cents', 100);
data.set('reference', new Date());
let signatureIntegrity = '37c8407747e595535433ef8f6a811d853cd943046624a0ec04662b17bbf33bf5';
let sc = document.createElement('script');
sc.id = id;
sc.src = src;
data.forEach(
(valor, clave) => {
sc.setAttribute('data-' + clave, valor);
}
);
sc.setAttribute('data-signature:integrity', signatureIntegrity);
document.documentElement.append(sc);
</script>