This repository contains a sample application which demonstrates connecting to Authorize.Net using the OAuth 2.0 authentication standard.
- Clone or download this repository.
- Open solution OAuthDemo.sln in Visual Studio and set OAuthDemo as StartUp project
- Run OAuthDemo.sln from Visual studio to launch the application. Application runs on local IIS server.
- ClientId and ClientSecret values can be obtained by contacting Authorize.Net support team at [email protected] and providing a RedirectUri(This is the page that the merchant is redirected back to after granting permissions) for your application.
Sample ClientId and ClientSecret shown in the below screen can be used for the demo purpose and can later be replaced in the code with newly obtained ClientId and ClientSecret.
File - DemoModel.cs
public Demo()
{
ClientId = "4dp5b7gRqk";
ClientSecret = "fa3a5b16753d09b24bb44243605a4a98";
- Click Continue to go to the next step to obtain OAuth code.
-
ClientId and RedirectUri values are used to get OAuth code.
-
Check/Uncheck Read and Write boxes to specify the level of access that the application is requesting.
-
State value is echoed back in the response to protect against malicious interception.
-
Sub value should be oauth.
-
Click Redirect to Authorize.net
- Login with your Authorize.net credentials to allow access.
- Click Allow. Page will be redirected to https://developer.authorize.net with generated authorization code in the url. Copy the authorization code to obtain access and refresh token.
- Go back to OAuth demo application. Click Continue. Use the authorization code obtained from previous step. Click Submit Token Request.
- Access Token and Refresh Token will be part of Response.Copy Access Token from Response. Click Continue.
Sample Response-
{
"access_token": "eyJraWQiOiI5YzIwNzk0MGJiNzhkODc5MDAwMDAwMDA1NGNjY2Q2NyIsImFsZyI6IlJTMjU2In0.eyJqdGkiOiJkYmM0YzMyYS1jN2FhLTQ5ZTgtYmY3NS02NzI2Y2VjMmNjYzAiLCJzY29wZXMiOlsicmVhZCIsIndyaXRlIl0sImlhdCI6MTUyMjEwNDUwOTE4MCwiYXNzb2NpYXRlZF9pZCI6IjM4MDQiLCJjbGllbnRfaWQiOiI0ZHA1YjdnUnFrIiwibWVyY2hhbnRfaWQiOiI2NDg4NzkiLCJhZGRpdGlvbmFsSW5mbyI6IntcImFwaUxvZ2luSWRcIjpcIjJrS2h0RWQzMlQgICAgICAgICAgXCIsXCJyb3V0aW5nSWRcIjpcIiQkMmtLaHRFZDMyVCQkXCJ9IiwiZXhwaXJlc19pbiI6MTUyMjEzMzMwOTE4MCwiZ3JhbnRfdHlwZSI6ImF1dGhvcml6YXRpb25fY29kZSJ9.O90k3olrVYXj61m4_m0OfSFvJcy7mTcl4qb6rsrsSBlt3hwcOFYgItfseKqVMLr6lTilHxtmCzwpPVwjQ7hp3UbNMTtEtp8WBj68Va_B7Va0q1ylK7gJDqubI9tpeX16DVLHBbLxK0TSRz2xnqluwTHZng6WIQh4LDGboawYzplcNhr4wakJdlPeIrnVsRdnxIbneGV2eF52zvq9ZC1kTYXwVVMNZ-3Z8QThZsk8JW8_eMdDcFJEU0XU9euoPOoQpIc9D9PcV_UfZDp7m6jkrswIpfeMLLKlWnljbuzipqsYB7YtUYzhqENqpdSyL3M_kSsDVOA321wxRzuDY6hXsA",
"token_type": "bearer",
"refresh_token": "eyJraWQiOiI5YzIwNzk0MGJiNzhkODc5MDAwMDAwMDA1NGNjY2Q2NyIsImFsZyI6IlJTMjU2In0.eyJqdGkiOiIzMDY1MDg2Yy1iYTlmLTQ1NzctYmQ0Ny1mM2E3M2JjZjYwN2UiLCJzY29wZXMiOlsicmVhZCIsIndyaXRlIl0sImlhdCI6MTUyMjEwNDUwOTE2NCwiYXNzb2NpYXRlZF9pZCI6IjM4MDQiLCJjbGllbnRfaWQiOiI0ZHA1YjdnUnFrIiwibWVyY2hhbnRfaWQiOiI2NDg4NzkiLCJhZGRpdGlvbmFsSW5mbyI6IntcImFwaUxvZ2luSWRcIjpcIjJrS2h0RWQzMlQgICAgICAgICAgXCIsXCJyb3V0aW5nSWRcIjpcIiQkMmtLaHRFZDMyVCQkXCJ9IiwiZXhwaXJlc19pbiI6MTUyMjEzMzMwOTE2NCwidG9rZW5fdHlwZSI6InJlZnJlc2hfdG9rZW4iLCJncmFudF90eXBlIjoiYXV0aG9yaXphdGlvbl9jb2RlIn0.inttrtVxgrlq-NusLxmbNNJDcLE69BtFACjwxVo1rByuWHX9pVy4FDrKy_SB8p_yX1TlB_RX0EmwojYY0gGQspP5F9H2ozPJoZaQoJM5idAYIHh38oduJEHTrBLNDjqWpAf4TBNKoSJlqvi5w9_0uun5G9r7b-MMt9cMrKaKOyDbLuJ51I7OOqUDUh3kS0RQa8BJmPRkTIRrAH_VKbaBL3sxyz-vdBMxsc5ILbWxOKnFn_azcTt1ORLzoBTP6BJFaTIpMdxCvruf8M_isJhbsJKQwaUa7yu89JJ0yXbEKVSFRZhlnwn0RaTgo7foxqX-9emG1dh5SdFAfgV7gZD9YA",
"expires_in": 28799,
"scope": "read write",
"refresh_token_expires_in": 28799,
"client_status": "active"
}
- Use the Access Token to authenticate transactions. Test Write and Read transaction APIs using Access Token.
- To retrieve a new pair of tokens, use the refresh token obtained in Retrieve step.
- Use the refreshed Access Token for subsequent requests.
- To revoke permissions. Click Redirect to Revoke.
Refresh Token is revoked immediately. Any previously issued Access Token will be valid till they expire.
- Click Revoke Permissions
- Click Revoke Permissions
Note: If the OAuthDemo application is running on a network which is behind a proxy, you may have to add below settings in the web.config file of the OAuth Demo application project to access the API endpoint.
<system.net>
<defaultProxyuseDefaultCredentials="true"enabled="true">
</defaultProxy>
</system.net>