عملیات مشترک

این صفحه نمونه هایی از برخی از عملیات رایجی را که ممکن است با کتابخانه مشترک فروشندگان Android انجام دهید، ارائه می دهد، از جمله:


اشیاء ResellerService ایجاد کنید

از کلاس های کارخانه سامسونگ و گوگل برای ایجاد اشیاء ResellerService استفاده کنید. با اشیاء ResellerService ، مجموعه ای متداول از روش ها برای ثبت نام سامسونگ و سایر دستگاه های Android در دسترس است.

دستگاه های سامسونگ

مثال زیر نحوه ایجاد یک شی ResellerService را با استفاده از کلاس SamsungResellerServiceFactory برای مدیریت دستگاه های سامسونگ نشان می دهد.

قبل از اینکه بتوانید این کار را انجام دهید، باید با برنامه استقرار Knox (KDP) همراه شوید .

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

سایر دستگاه های اندرویدی

مثال زیر نحوه ایجاد یک شی ResellerService را با استفاده از کلاس GoogleResellerServiceFactory برای مدیریت سایر دستگاه های Android (غیر سامسونگ) نشان می دهد. قبل از اینکه بتوانید این کار را انجام دهید، باید مراحل ثبت نام بدون لمس را در Get Start دنبال کنید تا resellerId و کلید حساب سرویس خود را دریافت کنید.

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

ایجاد اشیاء Customer

مشتری در حال خرید دستگاه های سامسونگ و غیرسامسونگ به دو شناسه مشتری نیاز دارد.

دستگاه های سامسونگ

برای مدیریت دستگاه های سامسونگ، از شناسه مشتری Knox مشتری استفاده می کنید. برای دریافت شناسه مشتری ناکس، ابتدا باید یک شیء Customer ایجاد کنید. برای انجام این کار، با استفاده از SamsungResellerService ایجاد شده از SamsungResellerServiceFactory با createCustomer تماس بگیرید. در اینجا یک مثال است:

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();

در صورت موفقیت آمیز بودن، درخواست یک شی CreateCustomerResponse را برمی گرداند که می توانید شناسه مشتری Knox را از آن استخراج کنید.

سایر دستگاه های اندرویدی

برای سایر دستگاه‌های Android، مشتری به شناسه مشتری ثبت‌نام بدون لمس نیاز دارد. اگر مشتری قبلاً از ثبت نام بدون لمس با فروشنده دیگری استفاده می کند، شما از شناسه مشتری موجود او استفاده می کنید. در غیر این صورت، باید یک شیء Customer ایجاد کنید. برای انجام این کار، با استفاده از ResellerService ایجاد شده از GoogleResellerServiceFactory با createCustomer تماس بگیرید. در اینجا یک مثال است:

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();

در صورت موفقیت آمیز بودن، درخواست یک شی CreateCustomerResponse را برمی گرداند. می توانید شناسه مشتری را از پاسخ بازیابی کنید.


ادعای دسته ای از دستگاه ها

ادعای یک دستگاه ارتباطی بین دستگاه و مشتری ایجاد می کند. به عنوان مثال، اگر شما دسته ای از دستگاه ها را به مشتری بفروشید، دستگاه ها را برای آن مشتری ادعا می کنید.

این مثال یکی از راه‌های پردازش دسته‌ای از دستگاه‌ها را نشان می‌دهد که شامل سفارش‌های دستگاه‌هایی از چندین سازنده (سامسونگ و سایر دستگاه‌های Android) از چندین مشتری است.

مرحله 1: دستگاه ها و مشتریان را سازماندهی کنید

با توجه به جدولی از IMEI دستگاه، سازندگان و شناسه مشتریانی که دستگاه‌ها به آنها فروخته شده‌اند، یکی از راه‌های مدیریت سفارش‌ها، سازمان‌دهی آن‌ها در دو فهرست است: سفارش‌های دستگاه سامسونگ و سایر سفارش‌های دستگاه‌های Android (غیر سامسونگ). سپس، برای هر لیست، دستگاه ها را بر اساس مشتری گروه بندی کنید. مثلا:

دستگاه های سامسونگ

نام مشتری شناسه مشتری سامسونگ ناکس سازنده IMEI
شرکت ABC 11 Samsung

1234567801

1234567802

سایر دستگاه های اندرویدی

نام مشتری شناسه مشتری سازنده IMEI
شرکت ABC 21 Google 1234567803
شرکت XYZ 22 Sony

1234567804

1234567805

مرحله 2: شی ClaimDevicesRequest را ایجاد کنید

دستگاه های سامسونگ

// 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();

سایر دستگاه های اندرویدی

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();

مرحله 3: ادعای دستگاه ها برای مشتریان

برای ادعای دستگاه‌ها برای مشتریان، با ClaimDevicesAsync تماس بگیرید. این مثال‌ها به دو درخواست جداگانه نیاز دارد: یکی از شی ResellerService سامسونگ و دیگری از شی ResellerService Google.

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

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

یک درخواست ClaimDevicesAsync لیستی از اشیاء Operation را برمی‌گرداند که حاوی وضعیت درخواست (در حال انجام، کامل، کامل با خطا یا ناموفق) است. برای بررسی وضعیت یک عملیات (به عنوان مثال، اگر پاسخ IN_PROGRESS برگردانده شد)، 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);

سلب ادعای دسته ای از دستگاه ها

عدم ادعای دستگاه، آن را از مشتری جدا می کند. اگر سفارش دستگاه لغو شد یا ارسال دستگاه‌ها با موفقیت انجام نشد، ممکن است لازم باشد ادعای دستگاهی را لغو کنید. برای لغو ادعای دسته ای از دستگاه ها، این مراحل را دنبال کنید:

مرحله 1: شی UnclaimDevicesRequest را ایجاد کنید

دستگاه های سامسونگ

// 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();

سایر دستگاه های اندرویدی

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();

مرحله 2: دستگاه های بدون ادعا

برای لغو ادعای دستگاه‌ها، با UnclaimDevicesAsync تماس بگیرید. این مثال به دو درخواست جداگانه نیاز دارد: یکی از شی ResellerService سامسونگ و دیگری از شی ResellerService Google.

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

یک درخواست UnclaimDevicesAsync لیستی از اشیاء Operation را برمی گرداند که حاوی وضعیت درخواست (در حال انجام، کامل، کامل با خطا یا ناموفق) برای بررسی وضعیت یک عملیات (به عنوان مثال، اگر پاسخ IN_PROGRESS برگردانده شد)، getOperation را فراخوانی کنید. .

دستگاه های سامسونگ

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

سایر دستگاه های اندرویدی

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

تعویض دستگاه سامسونگ

اگر دستگاهی به هر دلیلی نیاز به تعویض داشت، می توانید آن را تعویض کنید. این مثال فرض می‌کند که شما در حال تعویض یک دستگاه سامسونگ با یک دستگاه دیگر سامسونگ هستید.

مرحله 1: یک شی 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();

مرحله 2: با UnclaimDeviceAsync تماس بگیرید

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);

یک درخواست UnclaimDevicesAsync فهرستی از اشیاء Operation را برمی‌گرداند که شامل وضعیت درخواست (در حال انجام، کامل، کامل با خطا یا ناموفق) است. برای بررسی وضعیت یک عملیات (به عنوان مثال، اگر پاسخ IN_PROGRESS برگردانده شد)، getOperation فراخوانی کنید:

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

مرحله 3: یک شی 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();

مرحله 4: با ClaimDeviceAsync تماس بگیرید

ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

یک درخواست ClaimDevicesAsync فهرستی از اشیاء Operation را برمی‌گرداند که شامل وضعیت درخواست (در حال انجام، کامل، کامل با خطا یا ناموفق) است. برای بررسی وضعیت یک عملیات (به عنوان مثال، اگر پاسخ IN_PROGRESS برگردانده شد)، getOperation فراخوانی کنید:

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

یک دستگاه اندروید (غیر سامسونگ) را مبادله کنید

اگر دستگاهی به هر دلیلی نیاز به تعویض داشت، می توانید آن را تعویض کنید. این مثال فرض می‌کند که شما در حال تعویض یک دستگاه اندرویدی (غیر سامسونگ) با دستگاه اندرویدی (غیر سامسونگ) دیگری هستید.

مرحله 1: یک شی UnclaimDeviceRequest ایجاد کنید

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

مرحله 2: با UnclaimDevice تماس بگیرید

googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);

مرحله 3: یک شی 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();

مرحله 4: با ClaimDevice تماس بگیرید

ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);

در صورت موفقیت آمیز بودن، تماس یک شی ClaimDeviceResponse حاوی deviceId را برمی گرداند. در غیر این صورت، یک استثنا معمولی حاوی کد خطا ایجاد می کند.