Operasi umum

Halaman ini memberikan contoh beberapa operasi umum yang mungkin Anda lakukan dengan Library Reseller Android Umum, termasuk:


Membuat objek ResellerService

Gunakan class factory Samsung dan Google untuk membuat objek ResellerService. Dengan objek ResellerService, tersedia serangkaian metode umum untuk mendaftar Samsung dan perangkat Android lainnya.

Perangkat Samsung

Contoh di bawah ini menunjukkan cara membuat objek ResellerService menggunakan Class SamsungResellerServiceFactory untuk mengelola perangkat Samsung.

Sebelum dapat melakukannya, Anda harus melakukan aktivasi dengan Program Deployment Knox (KDP).

ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);

Perangkat Android lain

Contoh di bawah ini menunjukkan cara membuat objek ResellerService menggunakan Class GoogleResellerServiceFactory untuk mengelola Android (non-Samsung) lainnya perangkat. Sebelum dapat melakukannya, Anda harus mengikuti langkah-langkah di artikel Memulai untuk pendaftaran zero-touch untuk mendapatkan resellerId dan kunci akun layanan Anda.

ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);

Membuat objek Customer

Seorang pelanggan yang membeli perangkat Samsung dan non-Samsung memerlukan dua ID pelanggan.

Perangkat Samsung

Untuk mengelola perangkat Samsung, Anda menggunakan ID Pelanggan Knox pelanggan. Untuk mendapatkan ID Pelanggan Knox, Anda harus membuat objek Customer terlebih dahulu. Untuk melakukannya, panggil createCustomer menggunakan SamsungResellerService yang dibuat dari SamsungResellerServiceFactory. Berikut contohnya:

CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
    .setCustomerName("TestCustomer") .addPrimaryEmails("superAdmin@gmail.com")
    .putVendorParams("country", "US") .putVendorParams("firstName", "Avery")
    .putVendorParams("lastName", "Yamada") .putVendorParams("service", "KME")
    .build();
CreateCustomerResponse response = samsungResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();

Jika berhasil, permintaan akan menampilkan objek CreateCustomerResponse yang Anda dapat mengekstrak ID Pelanggan Knox.

Perangkat Android lain

Untuk perangkat Android lain, pelanggan memerlukan pendaftaran zero-touch ID pelanggan. Jika pelanggan sudah menggunakan pendaftaran zero-touch dengan platform lain reseller, Anda dapat menggunakan ID pelanggan mereka yang sudah ada. Jika tidak, Anda perlu membuat Objek Customer. Untuk melakukannya, panggil createCustomer menggunakan ResellerService yang dibuat dari GoogleResellerServiceFactory. Berikut contohnya:

CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
    .setCustomerName("TestCustomer")
    .addPrimaryEmails("owner@gmail.com")
    .addSecondaryEmails("admin@gmail.com")
    .build();
CreateCustomerResponse response = googleResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();

Jika berhasil, permintaan akan menampilkan objek CreateCustomerResponse. Anda dapat untuk mengambil ID pelanggan dari respons.


Mengklaim sejumlah perangkat

Mengklaim perangkat akan menciptakan hubungan antara perangkat dan pelanggan. Sebagai Misalnya, jika Anda menjual sekumpulan perangkat kepada pelanggan, Anda akan mengklaim untuk pelanggan tersebut.

Contoh ini menunjukkan salah satu cara untuk memproses batch perangkat yang mencakup pesanan perangkat dari berbagai produsen (Samsung dan Android lainnya perangkat) dari beberapa pelanggan.

Langkah 1: Atur perangkat dan pelanggan

Berdasarkan tabel IMEI, produsen, dan ID pelanggan perangkat perangkat dijual, salah satu cara untuk mengelola pesanan adalah dengan mengaturnya menjadi dua daftar: Pesanan perangkat Samsung dan pesanan perangkat Android (non-Samsung) lainnya. Kemudian, untuk setiap daftar, kelompokkan perangkat berdasarkan pelanggan. Contoh:

Perangkat Samsung

Nama pelanggan ID pelanggan Samsung Knox Produsen IMEI
Perusahaan ABC 11 Samsung

1234567801

1234567802

Perangkat Android lain

Nama pelanggan ID Pelanggan Produsen IMEI
Perusahaan ABC 21 Google 1234567803
Perusahaan XYZ 22 Sony

1234567804

1234567805

Langkah 2: Buat objek ClaimDevicesRequest

Perangkat Samsung

// Note: You can only claim devices for a single customer in each request.
ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567801")
                   .setManufacturer("Samsung")
                   .build())
       .build())
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567802")
                   .setManufacturer("Samsung")
                   .build())
           .build())
   .build();

Perangkat Android lain

ClaimDevicesRequest claimGoogleDevicesRequest = ClaimDevicesRequest.newBuilder()
    .addClaims(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("21")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .setManufacturer("Google")
                    .build())
            .build())
    .addClaims(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("22")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567804")
                    .setManufacturer("Sony")
                    .build())
            .build())
    .addClaims(
         DeviceClaim.newBuilder()
             .setCustomer(
                 CompanyReference.newBuilder()
                     .setVendor(Vendor.GOOGLE)
                     .setCompanyId("22")
                     .build())
             .setDeviceIdentifier(
                 DeviceIdentifier.newBuilder()
                     .setImei("1234567805")
                     .setManufacturer("Sony")
                     .build())
             .build())
    .build();

Langkah 3: Klaim perangkat untuk pelanggan

Untuk mengklaim perangkat untuk pelanggan, hubungi ClaimDevicesAsync. Contoh ini memerlukan dua permintaan terpisah: satu dari objek ResellerService Samsung dan satu dari objek ResellerService Google.

// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);

Permintaan ClaimDevicesAsync menampilkan daftar objek Operation, yang berisi status permintaan (dalam proses, selesai, lengkap dengan kesalahan, atau gagal). Untuk memeriksa status operasi (misalnya, jika respons ditampilkan IN_PROGRESS), panggil getOperation.

// Samsung devices
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

// Other Android devices
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

Batalkan klaim batch perangkat

Membatalkan klaim perangkat akan memisahkannya dari pelanggan. Anda mungkin tidak perlu mengklaim perangkat jika pesanan perangkat dibatalkan atau pengiriman perangkat tidak berhasil diselesaikan. Untuk membatalkan klaim batch perangkat, ikuti langkah-langkah berikut:

Langkah 1: Buat objek UnclaimDevicesRequest

Perangkat Samsung

// Each request can only unclaim devices belonging to a single customer. The request must also
// include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .putVendorParams("customerId", "11")
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567801")
                    .build())
        .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567802")
                    .build())
            .build())
    .build();

Perangkat Android lain

UnclaimDevicesRequest unclaimGoogleDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567804")
                    .build())
            .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567805")
                    .build())
            .build())
    .build();

Langkah 2: Batalkan klaim perangkat

Untuk membatalkan klaim perangkat, panggil UnclaimDevicesAsync. Contoh ini memerlukan dua permintaan terpisah: satu dari objek ResellerService Samsung dan satu dari objek ResellerService Google.

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);

Permintaan UnclaimDevicesAsync menampilkan daftar objek Operation, yang berisi status permintaan (dalam proses, selesai, lengkap dengan kesalahan, atau gagal) Untuk memeriksa status operasi (misalnya, jika respons menampilkan IN_PROGRESS), panggil getOperation.

Perangkat Samsung

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Perangkat Android lain

GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

Tukar perangkat Samsung

Jika perangkat perlu diganti karena alasan apa pun, Anda dapat menukarnya. Ini contoh mengasumsikan bahwa Anda bertukar perangkat Samsung dengan perangkat Samsung perangkat seluler.

Langkah 1: Buat objek UnclaimDeviceRequest

// Note: The request must include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .putVendorParams("customerId", "11")
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567801")
                    .build())
        .build())
    .build();

Langkah 2: Panggil UnclaimDeviceAsync

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);

Permintaan UnclaimDevicesAsync menampilkan daftar objek Operation, yang berisi status permintaan (dalam proses, selesai, lengkap dengan kesalahan, atau gagal). Untuk memeriksa status operasi (misalnya, jika respons ditampilkan IN_PROGRESS), panggil getOperation:

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Langkah 3: Buat objek ClaimDeviceRequest

ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567806")
                   .setManufacturer("Samsung")
                   .build())
       .build())
   .build();

Langkah 4: Panggil ClaimDeviceAsync

ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

Permintaan ClaimDevicesAsync menampilkan daftar objek Operation, yang berisi status permintaan (dalam proses, selesai, lengkap dengan kesalahan, atau gagal). Untuk memeriksa status operasi (misalnya, jika respons ditampilkan IN_PROGRESS), panggil getOperation:

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Bertukar perangkat Android (non-Samsung)

Jika perangkat perlu diganti karena alasan apa pun, Anda dapat menukarnya. Ini contoh mengasumsikan bahwa Anda bertukar perangkat Android (non-Samsung) untuk perangkat Android (non-Samsung) lainnya.

Langkah 1: Buat objek UnclaimDeviceRequest

UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
    .setUnclaim(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .build();

Langkah 2: Panggil UnclaimDevice

googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);

Langkah 3: Buat objek ClaimDeviceRequest

ClaimDeviceRequest claimGoogleDeviceRequest = ClaimDeviceRequest.newBuilder()
    .setClaim(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("21")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567807")
                    .setManufacturer("Google")
                    .build())
            .build())
       .build();

Langkah 4: Panggil ClaimDevice

ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);

Jika berhasil, panggilan akan menampilkan objek ClaimDeviceResponse yang berisi deviceId. Jika tidak, pengecualian umum yang berisi kode error akan ditampilkan.