🪔

Vipps

På tide å bli kjent med Vipps sine APIer. De er jo “Vipps MobilePay” nå. Mannen til Eva snakket om det på NDC, han jobber i Vipps. De kjøpte opp MobilePay for et år siden, finner jeg på nettsidene deres. Dette handlet til dels om å få integrert med CBDCene som er på vei. Men det er fint, da er Vipps på topp og det er bare å integrere med dem.

Ser de har såkalt “partnerprogram” for utviklere som lager løsninger på vegne av merchants. Da får jeg én API-nøkkel fra Vipps, en “partnernøkkel”, som lar bruke et eget “Management API” der jeg kan integrere Vipps på merchants’ vegne uten å måtte logge inn på bedriftsportalene deres. Regner med at merchants da inngår avtale med Vipps om samarbeidet med meg, så blir jeg tildelt tilgangene jeg trenger.

Men jeg trenger noen API-nøkler for å få testet integrasjonen. Det var mulig å lage konto med BankId og et gammelt enkeltpersonforetak og opprette test-salgssted, der var det nøkler.

Forresten så er visst partnernøkler kun for “Partner Pluss” og så videre, hvis du har 30+ merchants eller over ganske mye i omsetning. Innen den tid er det mulig for merchants å gi meg brukertilgang i portalen sin: https://developer.vippsmobilepay.com/docs/partner/add-portal-user/

Når man er “Platform partner” (som er typen partner som passer for meg) skal merchants onboardes slik: https://developer.vippsmobilepay.com/docs/partner/#how-to-sign-up-new-merchants

Best practices: Vipps anbefaler å sjekke return-responsen fra hvert API-kall. I tillegg anbefales det å benytte seg av API-dashboardet på vippsportalen: https://developer.vippsmobilepay.com/docs/developer-resources/api-dashboard/

Wow, implementere Vipps i backenden etter hvert?: https://developer.vippsmobilepay.com/docs/SDKs/node-sdk/

Eksterne script i Next

Man kan inkludere Scripts fra next/scripts for å legge til eksterne scripts med src. Det legger seg i header, eller man kan sette parametre som bestemmer hvor det legger seg.

Man kan da kalle elementer i scriptet, men Typescript vil klage på de ukjente typene. Så man må legge til egne typespesifikasjoner som Typescript leser i henhold til include-direktivet i tsconfig.json.

Jeg laget en ny mappe “/types” med en “custom-elements.d.ts”:

declare namespace JSX {
    interface IntrinsicElements {
      [elemName: string]: any;
    }
  }

Da tillater Typescript alle custom-elementer, typ <vipps-checkout-button variant="orange" branded="false" /> fra Vipps.

Man kunne vært mer spesifikk og bevart typesikkerhet på alle andre custom-elementer:

declare namespace JSX {
  interface IntrinsicElements {
    'vipps-checkout-button': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> & {
      variant?: string;
      branded?: boolean;
    };
  }
}