Service: KodyPayTerminalService
Method: Terminals()
Request: TerminalsRequest
Response: TerminalsResponse
<?php
require __DIR__ . '/../vendor/autoload.php';
use Com\Kodypay\Grpc\Pay\V1\KodyPayTerminalServiceClient;
use Com\Kodypay\Grpc\Pay\V1\TerminalsRequest;
use Grpc\ChannelCredentials;
// Configuration
$HOSTNAME = "grpc-staging.kodypay.com";
$API_KEY = "your-api-key";
// Step 1: Initialize SDK client with SSL credentials
$client = new KodyPayTerminalServiceClient($HOSTNAME, [
'credentials' => ChannelCredentials::createSsl()
]);
// Step 2: Set authentication headers with your API key
$metadata = ['X-API-Key' => [$API_KEY]];
// Step 3: Create TerminalsRequest and set store ID
$request = new TerminalsRequest();
$request->setStoreId('your-store-id');
// Step 4: Call Terminals() method and wait for response
list($response, $status) = $client->Terminals($request, $metadata)->wait();
// Step 5: Handle gRPC response status
if ($status->code !== \Grpc\STATUS_OK) {
echo "Error: " . $status->details . PHP_EOL;
exit;
}
// Step 6: Process terminals from response
foreach ($response->getTerminals() as $terminal) {
echo "Terminal ID: " . $terminal->getTerminalId() . PHP_EOL;
echo "Online: " . ($terminal->getOnline() ? 'Yes' : 'No') . PHP_EOL;
}
?>
import com.kodypay.grpc.pay.v1.KodyPayTerminalServiceGrpc;
import com.kodypay.grpc.pay.v1.TerminalsRequest;
import com.kodypay.grpc.pay.v1.TerminalsResponse;
import io.grpc.ManagedChannelBuilder;
import io.grpc.Metadata;
import io.grpc.stub.MetadataUtils;
public class ListTerminalsExample {
public static final String HOSTNAME = "grpc-staging.kodypay.com";
public static final String API_KEY = "your-api-key";
public static void main(String[] args) {
// Step 1: Create metadata with API key
Metadata metadata = new Metadata();
metadata.put(Metadata.Key.of("X-API-Key", Metadata.ASCII_STRING_MARSHALLER), API_KEY);
// Step 2: Build secure channel and create client
var channel = ManagedChannelBuilder.forAddress(HOSTNAME, 443)
.useTransportSecurity()
.build();
var client = KodyPayTerminalServiceGrpc.newBlockingStub(channel)
.withInterceptors(MetadataUtils.newAttachHeadersInterceptor(metadata));
// Step 3: Create TerminalsRequest and set store ID
TerminalsRequest request = TerminalsRequest.newBuilder()
.setStoreId("your-store-id")
.build();
// Step 4: Call Terminals() method and get response
TerminalsResponse response = client.terminals(request);
// Step 5: Process terminals from response
response.getTerminalsList().forEach(terminal -> {
System.out.println("Terminal ID: " + terminal.getTerminalId());
System.out.println("Online: " + terminal.getOnline());
});
}
}
import grpc
import kody_clientsdk_python.pay.v1.pay_pb2 as kody_model
import kody_clientsdk_python.pay.v1.pay_pb2_grpc as kody_client
def list_terminals():
# Configuration
HOSTNAME = "grpc-staging.kodypay.com:443"
API_KEY = "your-api-key"
# Step 1: Create secure channel
channel = grpc.secure_channel(HOSTNAME, grpc.ssl_channel_credentials())
# Step 2: Create client and set metadata with API key
client = kody_client.KodyPayTerminalServiceStub(channel)
metadata = [("x-api-key", API_KEY)]
# Step 3: Create TerminalsRequest and set store ID
request = kody_model.TerminalsRequest(store_id="your-store-id")
# Step 4: Call Terminals() method and get response
response = client.Terminals(request, metadata=metadata)
# Step 5: Process terminals from response
for terminal in response.terminals:
print(f"Terminal ID: {terminal.terminal_id}")
print(f"Online: {terminal.online}")
if __name__ == "__main__":
list_terminals()
using Grpc.Core;
using Grpc.Net.Client;
using Com.Kodypay.Pay.V1;
class Program
{
static async Task Main(string[] args)
{
// Configuration
var HOSTNAME = "grpc-staging.kodypay.com";
var API_KEY = "your-api-key";
// Step 1: Create secure channel
var channel = GrpcChannel.ForAddress("https://" + HOSTNAME);
// Step 2: Create client
var client = new KodyPayTerminalService.KodyPayTerminalServiceClient(channel);
// Step 3: Set authentication headers with API key
var metadata = new Metadata
{
{ "X-API-Key", API_KEY }
};
// Step 4: Create TerminalsRequest and set store ID
var request = new TerminalsRequest { StoreId = "your-store-id" };
// Step 5: Call Terminals() method and get response
var response = await client.TerminalsAsync(request, metadata);
// Step 6: Process terminals from response
foreach (var terminal in response.Terminals)
{
Console.WriteLine($"Terminal ID: {terminal.TerminalId}");
Console.WriteLine($"Online: {terminal.Online}");
}
}
}