การดําเนินการทั่วไป

หน้านี้แสดงตัวอย่างการดำเนินการทั่วไปบางอย่างที่คุณอาจทำกับคลังตัวแทนจำหน่าย Android ทั่วไป ซึ่งรวมถึงการดำเนินการต่อไปนี้


สร้างออบเจ็กต์ 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

1234567801

1234567802

อุปกรณ์ Android อื่นๆ

ชื่อลูกค้า รหัสลูกค้า ผู้ผลิต IMEI
ABC Corp 21 Google 1234567803
XYZ corp 22 Sony

1234567804

1234567805

ขั้นตอนที่ 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 ไม่เช่นนั้น ระบบจะแสดงข้อยกเว้นทั่วไปที่มีรหัสข้อผิดพลาด