این صفحه نمونه هایی از برخی از عملیات رایجی را که ممکن است با کتابخانه مشترک فروشندگان Android انجام دهید، ارائه می دهد، از جمله:
- اشیاء
ResellerService
ایجاد کنید - ایجاد اشیاء
Customer
- ادعای دسته ای از دستگاه ها
- عدم ادعای دسته ای از دستگاه ها
- تعویض دستگاه سامسونگ
- تعویض دستگاه اندروید (غیر سامسونگ).
اشیاء 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 | |
سایر دستگاه های اندرویدی
نام مشتری | شناسه مشتری | سازنده | IMEI |
---|---|---|---|
شرکت ABC | 21 | Google | 1234567803 |
شرکت XYZ | 22 | Sony | |
مرحله 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
برمی گرداند. در غیر این صورت، یک استثنا معمولی حاوی کد خطا ایجاد می کند.