Introduktion til OAuth2 og tokens i OnPay

Kort introduktion til første gangs autorisation mod OnPay med OAuth2.
Når denne proces er gennemført, vil man være i besiddelse af access og refresh tokens, som fremover benyttes i en custom API implementering.


Udløb for tokens

Access token = 24 timer.
Refresh token = 3 måneder.
Bemærk: Udløb for tokens forlænges straks der foretages en request til OnPay.
Bemærk: Tokens kan ikke genskabes men kræver at man gentager processen herunder, for at rekvirere et nyt sæt tokens.

Klient

For at tilgå OnPay via API skal man først anmode om et accces og refresh token. Dette kan gøres via en række klienter, som allerede forefindes på nettet (f.eks Postman eller Curl mv.).

Eksempel i Postman

Postman er en klient der kan foretage en række requests, bla. OAuth2, som er praktisk da softwaren understøtter alle steps i proceduren.
Download og installér klienten via https://www.getpostman.com

Princippet

  • Man sender en anmodning til den angivne OnPay URL.
  • Herefter får Postman et response tilbage og åbner login siden til OnPay, som er tilknyttet denne session.
  • I dialogen logger man ind med sin OnPay bruger, hvorefter OnPay spørger om man vil godkende den request man lige har sendt (standard OAuth2 procedure).
  • Herefter får man sit access og refresh token.

Brug OnPay API med Postman

1 Start Postman og klik på "Auth"

2 Vælg typen "OAuth 2.0"

3 Klik på Get New Access Token

Postman OAuth2 setup

4 I dialogen indsættes nedenstående værdier: Auth URL, Access Token URL, Client ID og Scope. Resten kan undlades Postman i dialogen.

Værdier fra OnPay til indsætning i Postman: Man laver en forespørgsel ved at benytte følgende værdier, som forefindes i OnPays dokumentation:

Værdi Forklaring
Authorize_url https://manage.onpay.io/{gateway_id}/oauth2/authorize (Husk at angive Gateway ID og fjerne curly brackets)
Access_url https://api.onpay.io/oauth2/access_token
Client ID Navnet som associeres med de genererede tokens i OnPay, og kan senere ses med udløbsdato i OnPay, under Aktive API tokens.
Scope full (eneste værdi, der supporteres af OnPay i øjeblikket)

Link til OnPay dokumentationen hvor ovenstående forefindes: https://onpay.io/docs/technical/api_v1.html

Postman OAuth2 ny access token

5 Herefter foretages requesten som præsenterer OnPay login siden, hvor brugernavn og adgangskode indtastes:

Postman OAuth2 log ind

6 Efterfølgende præsenteres en dialog om gennemførsel af autorisationen, klik på godkend:

Postman OAuth2 godkend adgang

7 Når dette er gjort modtager Postman access og refresh tokens, som man kopierer og gemmer til brug i sin applikation:

Postman manage OAuth2 tokens


Hvordan ser tokens ud?

Access Token

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI4IjcyMWY5ZjNjZWJlODExMWZlYmM1ZDQ4MTFhY2RlNjExNGIxNDk1NzQwMTFhYzVlYWUyNGRiNDcw YzIxNzQxZWE0MTI0ZjFhMzE4YjA2ZmFiIn0.eyJhdWQiOiJURVNUIiwianRpIjoiNzIxZjlmM2NlYmU4MTExZmViYzVkNDgxMWFjZGU2MTE0YjE0OTU3NDAxM WFjNWVhZTI0ZGI0NzBjMjE3NDFlYTQxMjRmMWEzMThiMDZmYWIiLCJpYXQiOjE1NTA4MzMxOTAsIm5iZiI6MTU1MDgzMzE5MCwiZXhwIjoxNTUwOTE5NT kwLCJzdWIiOiIzMDE4MDgzNTAxNjE1NTc0Iiwic2NvcGVzIjpbImZ1bGwiXX0.lderOX78mHVxFuAChzhKqcGTBY_SHipNzRZV882Fj3OdK-3gJ2ajn7e-dENJSxVl rmiIqBKGUQD6_42Sa7K36Z2oVm9t8F2FDlfzajc0jrXcCsQsgbxVrSRuhX7YZVfdqS4Wtq4y2VFNK_TD17yzCcpmf_MH-s5v9SNY29Vi6hm0Xc-FjutNYK8mTW3 A9vIrWEjJguhRtjYFceRg7khXrq89sP4MG_4SROwq-Jp6hY5eAUPtzasw7IoWRQXqaH6u5Zks9g2xmP1k7CyVO-sA5K_eXNfvqGBXKE8t9dOxYNl5n7F8juzQxq EPkmcohcVxcoJF7mgbrMiSRlxJe8nMxA

Refresh Token

def50200dd3a2d8a07de6e7e28a73975f94339281211261d12f319d35e43b0c04a88e5a34b3b46ac8124a3bd4b985ac8a2b8b07e47926e9a419195906142453e73ba c8d9b1d52fa6afb8325e5db99adff016bf39be4fa2e1cf1bbb9fea436ef7590039fef1a2aa692bae837bf7a1fa6f4feaf11b2c5ca1c63dc5288510af79ec2ea2470b5868afd71 da5228803fda0add7531619acae132cdf33a2fa2c996d61a004945b14ce4ff6b01fd055f19a192ee0c9d3fcf44f81e643eda01a5817092a4e7eb6f7cbf9c9d84818f819215 92d8a2f532e65b8d0117694949fda243af01117b8d75a7230911309f5df0290a60a0f2b6d65a0cbf6e8013a62ed7de6074b646380c32abf6a8637f342ac740f88b032e0b8 6390b018e86bbe17375f43920a979ce480836be247dfd2d9a5edd10b762cafa2e99d4b42c9cc31ea566a94a308be3f9bcaeee086750a22ca6bdf791592068439253f430 14a98964eed2807a0db56786b40779600c9ba02fecb326b957b382b6b9c0a940fa21d240cea

Om man laver en API integration i PHP eller .NET mv. spiller ingen rolle, når først man har sine tokens, som benyttes til at lave forespørgsler imod OnPay's API.


Software development kits mv.

PHP SDK
https://github.com/onpayio/php-sdk

OAuth2 Client (PHP klient) som kan anvendes til OAuth2 integration i PHP applikationer
https://oauth2-client.thephpleague.com/usage/

.NET SDK
https://github.com/onpayio/dotnet-onpay

.NET eksempel
https://github.com/PI-Applications/pi.onpay

OnPay API dokumentation
https://onpay.io/docs/technical

OAuth2 konceptet
https://dev.to/anabella/dancing-with-oauth-emp