หน้านี้แสดงตัวอย่างการดำเนินการทั่วไปบางอย่างที่คุณอาจทำกับคลังตัวแทนจำหน่าย Android ทั่วไป ซึ่งรวมถึงการดำเนินการต่อไปนี้
- สร้างออบเจ็กต์
ResellerService
- สร้างออบเจ็กต์
Customer
- การอ้างสิทธิ์กลุ่มอุปกรณ์
- การยกเลิกการอ้างสิทธิ์อุปกรณ์หลายเครื่อง
- การเปลี่ยนอุปกรณ์ Samsung
- การเปลี่ยนอุปกรณ์ Android (ไม่ใช่ Samsung)
สร้างออบเจ็กต์ ResellerService
รายการ
ใช้คลาสโรงงานของ Samsung และ Google เพื่อสร้างออบเจ็กต์ ResellerService
เมื่อใช้ออบเจ็กต์ ResellerService
จะมีชุดวิธีการทั่วไปสำหรับลงทะเบียน Samsung และอุปกรณ์ Android อื่นๆ
อุปกรณ์ Samsung
ตัวอย่างด้านล่างแสดงวิธีสร้างออบเจ็กต์ ResellerService
โดยใช้คลาส SamsungResellerServiceFactory
ในการจัดการอุปกรณ์ Samsung
คุณต้องเริ่มต้นใช้งานโปรแกรมการติดตั้งใช้งาน Knox (KDP) ก่อนจึงจะดำเนินการนี้ได้
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
อุปกรณ์ Android อื่นๆ
ตัวอย่างด้านล่างแสดงวิธีสร้างออบเจ็กต์ ResellerService
โดยใช้คลาส GoogleResellerServiceFactory
เพื่อจัดการอุปกรณ์ Android (ที่ไม่ใช่ของ Samsung) เครื่องอื่นๆ คุณต้องทําตามขั้นตอนในเริ่มต้นใช้งานเพื่อการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มเพื่อรับ resellerId
และคีย์บัญชีบริการก่อน
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
สร้างออบเจ็กต์ Customer
ลูกค้าที่ซื้ออุปกรณ์ Samsung และไม่ใช่ Samsung ต้องใช้รหัสลูกค้า 2 รหัส
อุปกรณ์ Samsung
หากต้องการจัดการอุปกรณ์ Samsung ให้ใช้รหัสลูกค้า Knox ของลูกค้า หากต้องการรับรหัสลูกค้า Knox คุณต้องสร้างออบเจ็กต์ Customer
ก่อน โดยโทรหา createCustomer
โดยใช้ SamsungResellerService
ที่สร้างขึ้นจาก SamsungResellerServiceFactory
เช่น
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 อื่นๆ
สำหรับอุปกรณ์ Android อื่นๆ ลูกค้าจะต้องมีรหัสลูกค้าสำหรับการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม หากลูกค้าใช้การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มกับตัวแทนจำหน่ายรายอื่นอยู่แล้ว คุณจะใช้รหัสลูกค้าที่มีอยู่ของลูกค้ารายนั้น ไม่เช่นนั้น คุณจะต้องสร้างออบเจ็กต์ Customer
โดยโทร createCustomer
โดยใช้ ResellerService
ที่สร้างขึ้นจาก GoogleResellerServiceFactory
โดยมีตัวอย่างดังนี้
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
คุณสามารถดึงรหัสลูกค้ามาจากคำตอบได้
อ้างสิทธิ์อุปกรณ์หลายเครื่อง
การอ้างสิทธิ์ในอุปกรณ์จะสร้างการเชื่อมโยงระหว่างอุปกรณ์กับลูกค้า ตัวอย่างเช่น หากคุณขายอุปกรณ์หลายเครื่องให้กับลูกค้า คุณจะต้องอ้างสิทธิ์อุปกรณ์สำหรับลูกค้ารายนั้น
ตัวอย่างนี้แสดงวิธีหนึ่งในการดำเนินการกับอุปกรณ์หลายเครื่องที่มีคำสั่งซื้ออุปกรณ์จากผู้ผลิตหลายราย (Samsung และอุปกรณ์ Android อื่นๆ) จากลูกค้าหลายราย
ขั้นตอนที่ 1: จัดระเบียบอุปกรณ์และลูกค้า
เมื่อดูตาราง IMEI ของอุปกรณ์ ผู้ผลิต และรหัสของลูกค้าที่ขายอุปกรณ์ให้ วิธีจัดการคำสั่งซื้ออย่างหนึ่งคือจัดเรียงคำสั่งซื้อออกเป็น 2 รายการ ได้แก่ คำสั่งซื้ออุปกรณ์ Samsung และคำสั่งซื้ออุปกรณ์ Android อื่นๆ (ไม่ใช่ Samsung) จากนั้นจัดกลุ่มอุปกรณ์ตามลูกค้าสำหรับแต่ละรายการ เช่น
อุปกรณ์ของ Samsung
ชื่อลูกค้า | รหัสลูกค้า Samsung Knox | ผู้ผลิต | IMEI |
---|---|---|---|
ABC Corp | 11 |
Samsung |
|
อุปกรณ์ Android อื่นๆ
ชื่อลูกค้า | รหัสลูกค้า | ผู้ผลิต | IMEI |
---|---|---|---|
ABC Corp | 21 |
Google |
1234567803 |
XYZ corp | 22 |
Sony |
|
ขั้นตอนที่ 2: สร้างออบเจ็กต์ ClaimDevicesRequest
อุปกรณ์ 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();
อุปกรณ์ Android อื่นๆ
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
ตัวอย่างนี้ต้องใช้คำขอแยกกัน 2 รายการ ได้แก่ 1 รายการจากออบเจ็กต์ ResellerService
ของ Samsung และอีก 1 รายการจากออบเจ็กต์ 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
อุปกรณ์ 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();
อุปกรณ์ Android อื่นๆ
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
ตัวอย่างนี้ต้องมีคำขอ 2 รายการแยกกัน โดยคำขอหนึ่งจากออบเจ็กต์ ResellerService
ของ Samsung และอีกรายการจากออบเจ็กต์ ResellerService
ของ Google
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
คำขอ UnclaimDevicesAsync
แสดงรายการออบเจ็กต์ Operation
ซึ่งมีสถานะของคำขอ (กำลังดำเนินการ เสร็จสมบูรณ์ เสร็จสมบูรณ์โดยมีข้อผิดพลาด หรือล้มเหลว) หากต้องการตรวจสอบสถานะของการดำเนินการ (เช่น หากการตอบสนองแสดงผล IN_PROGRESS
) ให้เรียกใช้ getOperation
อุปกรณ์ของ Samsung
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
อุปกรณ์ Android อื่นๆ
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
เปลี่ยนอุปกรณ์ Samsung
หากจำเป็นต้องเปลี่ยนอุปกรณ์ไม่ว่าด้วยเหตุผลใดก็ตาม คุณสามารถแลกเปลี่ยนอุปกรณ์ได้ ตัวอย่างนี้สมมติว่าคุณกำลังเปลี่ยนอุปกรณ์ Samsung กับอุปกรณ์ Samsung เครื่องอื่น
ขั้นตอนที่ 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);
เปลี่ยนอุปกรณ์ Android (ไม่ใช่ Samsung)
หากจำเป็นต้องเปลี่ยนอุปกรณ์ไม่ว่าด้วยเหตุผลใดก็ตาม คุณสามารถแลกเปลี่ยนอุปกรณ์ได้ ตัวอย่างนี้สมมติว่าคุณกำลังเปลี่ยนอุปกรณ์ Android (ที่ไม่ใช่ Samsung) เป็นอุปกรณ์ Android (ที่ไม่ใช่ Samsung) เครื่องอื่น
ขั้นตอนที่ 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
ไม่เช่นนั้น ระบบจะแสดงข้อยกเว้นทั่วไปที่มีรหัสข้อผิดพลาด