question

ziaulhaq avatar image
ziaulhaq asked emmasnow22 answered

How to integrate clover rest API with ASP.NET Core with global developer account

I'd like to integrate the Clover payment gateway into my current web application. The Clover team has set up a global developer account and a merchant account for me, but I need guidance on creating and configuring an app within the global developer account and linking it with the merchant account. Additionally, I'm seeking assistance on how to make API calls to the Clover API from our ASP.NET Core REST APIs.


OrdersREST APIAPI Token
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

bryanvargas avatar image
bryanvargas answered ziaulhaq commented

We have our Clover Docs that will go through our REST APIs and setting up your app: https://docs.clover.com/docs/clover-development-basics-web-app

1 comment
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

ziaulhaq avatar image ziaulhaq commented ·

The initial step in payment process through the WebAPI approach is to create the OAuth token. When using the sandbox account details, when generating the OAuth token its redirecting to the clover sandbox environment to login. Once the login is successfully its creating the OAuth token.

Just need to clarify the will it be the same behavior in the actual PROD environment setup or its different behavior? How we can prevent redirect to login to the clover login page?

0 Likes 0 ·
bryanvargas avatar image
bryanvargas answered

it will be the same if the merchant is not logged into their dashboard and is trying to access your app. If they are logged into the web dashboard and download>install>open your app they will successfully go through Oauth automatically and you will get a token

10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

andrew321 avatar image
andrew321 answered andrew321 edited
  • Set up your VidMate app in Clover's global developer account
  • Link it to your merchant account.
  • Use HttpClient in ASP .NET Core for API calls.
  • Wanna video editing tools in PC, go with Alight Motion PC
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

emmasnow22 avatar image
emmasnow22 answered

To integrate the Clover REST API with an ASP.NET Core application using a global developer account, follow these steps to set up seamless communication with Clover, similar to how Forge Rechner optimizes calculations. Here’s a structured approach:


1. **Register a Clover Developer Account**:

- Sign up for a global developer account on the [Clover Developer Portal](https://www.clover.com/developers/).

- Create an app in the developer dashboard to obtain your API keys (client ID and secret), which will authorize API requests.


2. **Configure ASP.NET Core**:

- In your ASP.NET Core project, create a configuration section in `appsettings.json` for storing Clover API credentials:

```json

"CloverSettings": {

"ClientId": "your-client-id",

"ClientSecret": "your-client-secret",

"BaseUrl": "https://api.clover.com/v3/"

}

```


3. **Add a Clover Service for API Communication**:

- Create a service class, `CloverService`, to manage Clover API requests.

- Use `HttpClient` to make REST API calls, setting headers for authorization and managing tokens as needed.


```csharp

public class CloverService

{

private readonly HttpClient _httpClient;

private readonly IConfiguration _configuration;


public CloverService(HttpClient httpClient, IConfiguration configuration)

{

_httpClient = httpClient;

_configuration = configuration;

_httpClient.BaseAddress = new Uri(_configuration["CloverSettings:BaseUrl"]);

_httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {GetAccessToken()}");

}


private string GetAccessToken()

{

// Logic to retrieve or refresh access token

return "your-access-token";

}


public async Task<string> GetMerchantDetailsAsync()

{

var response = await _httpClient.GetAsync("merchants/YOUR_MERCHANT_ID");

response.EnsureSuccessStatusCode();

return await response.Content.ReadAsStringAsync();

}

}

```


4. **Register Clover Service in `Startup.cs`**:

- Add the `CloverService` to the DI container in `ConfigureServices`:

```csharp

public void ConfigureServices(IServiceCollection services)

{

services.AddHttpClient<CloverService>();

services.Configure<CloverSettings>(Configuration.GetSection("CloverSettings"));

}

```


5. **Implement OAuth2 Authentication**:

- Follow Clover's OAuth2 flow to obtain access tokens. This includes:

- Redirecting users to Clover's authorization URL.

- Exchanging the authorization code for an access token.

- Storing tokens securely for session use.


6. **Call the Clover API in Controllers**:

- Inject `CloverService` into your controller to access API data, similar to how you’d fetch and display values in Forge Rechner:

```csharp

public class CloverController : Controller

{

private readonly CloverService _cloverService;


public CloverController(CloverService cloverService)

{

_cloverService = cloverService;

}


public async Task<IActionResult> Index()

{

var merchantDetails = await _cloverService.GetMerchantDetailsAsync();

return View(merchantDetails);

}

}

```


This setup enables seamless interaction with Clover’s REST API through your ASP.NET Core app, bringing a streamlined experience like Forge Rechner provides for users, enhancing data access and management in your application.

10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Welcome to the
Clover Developer Community