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

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


สร้างออบเจ็กต์ ResellerService รายการ

ใช้คลาสโรงงานของ Samsung และ Google เพื่อสร้างออบเจ็กต์ ResellerService เมื่อมีออบเจ็กต์ ResellerService รายการจะใช้ชุดวิธีการทั่วไปให้ลงทะเบียนได้ Samsung และอุปกรณ์ Android อื่นๆ

อุปกรณ์ของ Samsung

ตัวอย่างด้านล่างแสดงวิธีสร้างออบเจ็กต์ ResellerService โดยใช้ SamsungResellerServiceFactory ชั้นเรียนเพื่อจัดการอุปกรณ์ Samsung

คุณต้องเริ่มต้นใช้งานก่อนจึงจะดำเนินการดังกล่าวได้ จาก Knox Deployment Program (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 ของอุปกรณ์ ผู้ผลิต และรหัสของลูกค้า ที่มีการขายอุปกรณ์ วิธีหนึ่งในการจัดการคำสั่งซื้อก็คือการจัดระเบียบคำสั่งซื้อเป็น รายการ: คำสั่งซื้ออุปกรณ์ Samsung และคำสั่งซื้ออื่นๆ ของอุปกรณ์ Android (ที่ไม่ใช่ Samsung) จากนั้นจัดกลุ่มอุปกรณ์ตามลูกค้าในแต่ละรายการ เช่น

อุปกรณ์ของ Samsung

ชื่อลูกค้า รหัสลูกค้า Samsung Knox ผู้ผลิต IMEI
บริษัท ABC 11 Samsung

1234567801

1234567802

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

ชื่อลูกค้า รหัสลูกค้า ผู้ผลิต IMEI
บริษัท ABC 21 Google 1234567803
บริษัท XYZ 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 รายการแยกกัน: คำขอหนึ่งจากออบเจ็กต์ 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 ตัวอย่างนี้ต้องมี คำขอแยกกัน: คำขอหนึ่งจากออบเจ็กต์ 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 มิเช่นนั้น ระบบจะแสดงข้อผิดพลาดที่พบบ่อยซึ่งมีรหัสข้อผิดพลาด