Introduzione
Tieni il tuo team aziendale aggiornato con notifiche di pagamento in tempo reale in Microsoft Teams. L’integrazione fornisce eventi di pagamento come schede Adaptive ricche, perfette per ambienti aziendali in cui Teams è lo strumento principale di collaborazione.
Questa guida presuppone che tu abbia accesso da amministratore per creare webhook nel tuo spazio di lavoro di Microsoft Teams.
Iniziare
Apri la sezione Webhook
Nel tuo dashboard di Dodo Payments, vai a Webhook → + Aggiungi Endpoint ed espandi il menu a discesa delle integrazioni.
Seleziona Microsoft Teams
Scegli la scheda di integrazione Microsoft Teams .
Crea Webhook Teams
In Teams, vai al tuo canale → ⋯ → Connettori → Incoming Webhook → Configura. Copia l’URL del webhook.
Incolla l'URL del Webhook
Incolla l’URL del webhook di Teams nella configurazione dell’endpoint.
Personalizza la Trasformazione
Modifica il codice di trasformazione per formattare i messaggi come schede Adaptive per Teams.
Testa e Crea
Testa con payload di esempio e clicca su Crea per attivare.
Fatto!
🎉 Il tuo canale Teams riceverà ora aggiornamenti di Dodo Payments come schede Adaptive.
Scheda di Pagamento di Base
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: "✅ Payment Successful" ,
weight: "Bolder" ,
size: "Medium"
},
{
type: "FactSet" ,
facts: [
{ title: "Amount" , value: `$ ${ ( p . total_amount / 100 ). toFixed ( 2 ) } ` },
{ title: "Customer" , value: p . customer . email },
{ title: "Payment ID" , value: p . payment_id }
]
}
]
}
}]
};
}
return webhook ;
}
See all 31 lines
Gestione degli Abbonamenti
function handler ( webhook ) {
const s = webhook . payload . data ;
switch ( webhook . eventType ) {
case "subscription.active" :
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: "📄 Subscription Activated" ,
weight: "Bolder" ,
color: "Good"
},
{
type: "FactSet" ,
facts: [
{ title: "Customer" , value: s . customer . email },
{ title: "Product" , value: s . product_id },
{ title: "Amount" , value: `$ ${ ( s . recurring_pre_tax_amount / 100 ). toFixed ( 2 ) } / ${ s . payment_frequency_interval } ` },
{ title: "Next Billing" , value: new Date ( s . next_billing_date ). toLocaleDateString () }
]
}
]
}
}]
};
break ;
case "subscription.cancelled" :
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: "⚠️ Subscription Cancelled" ,
weight: "Bolder" ,
color: "Warning"
},
{
type: "FactSet" ,
facts: [
{ title: "Customer" , value: s . customer . email },
{ title: "Product" , value: s . product_id },
{ title: "Cancelled At" , value: new Date ( s . cancelled_at ). toLocaleDateString () }
]
}
]
}
}]
};
break ;
}
return webhook ;
}
See all 61 lines
Avvisi di Controversia
function handler ( webhook ) {
if ( webhook . eventType . startsWith ( "dispute." )) {
const d = webhook . payload . data ;
const color = d . dispute_status === "won" ? "Good" : d . dispute_status === "lost" ? "Attention" : "Warning" ;
const title = d . dispute_status === "won" ? "🏆 Dispute Won" : d . dispute_status === "lost" ? "❌ Dispute Lost" : "🚨 Dispute Update" ;
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: title ,
weight: "Bolder" ,
color: color
},
{
type: "FactSet" ,
facts: [
{ title: "Payment ID" , value: d . payment_id },
{ title: "Amount" , value: `$ ${ ( d . amount / 100 ). toFixed ( 2 ) } ` },
{ title: "Status" , value: d . dispute_status },
{ title: "Stage" , value: d . dispute_stage }
]
}
]
}
}]
};
}
return webhook ;
}
See all 35 lines
Suggerimenti
Usa schede Adaptive per una formattazione ricca e interattiva
Scegli colori appropriati: Buono (verde), Avviso (giallo), Attenzione (rosso)
Mantieni i set di fatti concisi e leggibili
Testa con il tester del webhook di Teams prima di distribuire
Risoluzione dei Problemi
Nessun messaggio in Teams
Verifica che l’URL del webhook sia corretto e attivo
Controlla che la trasformazione restituisca un JSON di scheda Adaptive valido
Assicurati che il webhook abbia il permesso di postare nel canale
Problemi di formattazione della scheda