🪔

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;
    };
  }
}