Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Centro de asociados | Centro de asociados operado por 21Vianet | Centro de asociados para la Nube de Microsoft para el Gobierno de los EE. UU.
La creación de un pedido para los productos de instancia reservada de máquina virtual de Azuresolo se aplica a:
- Centro de socios
Para obtener información sobre lo que está disponible actualmente para vender, consulta Ofertas de partners en el programa Proveedor de soluciones en la nube.
Prerrequisitos
Credenciales tal como se describe en Autenticación del Centro de asociados. Este escenario admite la autenticación con credenciales de aplicación independiente y app+usuario.
Un identificador de cliente (
customer-tenant-id). Si no conoce el identificador del cliente, puede buscarlo en el Centro de partners seleccionando el área de trabajo Clientes , luego el cliente de la lista de clientes y, a continuación, Cuenta. En la página Cuenta del cliente, busque el identificador de Microsoft en la sección Información de la cuenta de cliente. El identificador de Microsoft es el mismo que el identificador de cliente (customer-tenant-id).Un identificador de oferta.
C#
Para crear un pedido para un cliente:
Cree una instancia de un objeto Order y establezca la propiedad ReferenceCustomerID en el identificador de cliente para registrar el cliente.
Cree una lista de objetos OrderLineItem y asigne la lista a la propiedad LineItems del pedido. Cada artículo de línea de pedido contiene la información de compra de una oferta. Debe tener al menos un elemento de línea de pedido.
Obtenga una interfaz para ordenar las operaciones. En primer lugar, llame al método IAggregatePartner.Customers.ById con el identificador de cliente para identificar al cliente. A continuación, recupere la interfaz de la propiedad Orders .
Llame al método Create o CreateAsync y pase el objeto Order .
Para completar la atestación e incluir otros revendedores, consulte los ejemplos de solicitud y respuesta siguientes:
Ejemplo de solicitud
{
"PartnerOnRecordAttestationAccepted":true,
"lineItems": [
{
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"lineItemNumber": 0,
"PartnerIdOnRecord": "873452",
"AdditionalPartnerIdsOnRecord":["4847383","873452"]
}
],
"billingCycle": "monthly"
}
Ejemplo de respuesta
{
"id": "5cf72f146967",
"alternateId": "5cf72f146967",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"partnerIdOnRecord": "873452",
"additionalPartnerIdsOnRecord": [
"4847383",
"873452"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LH0Z?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-17T18:13:11.3122226Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
IAggregatePartner partnerOperations;
string customerId;
string offerId;
var order = new Order()
{
ReferenceCustomerId = customerId,
LineItems = new List<OrderLineItem>()
{
new OrderLineItem()
{
OfferId = offerId,
FriendlyName = "new offer purchase",
Quantity = 1,
ProvisioningContext = new Dictionary<string, string>
{
{ "subscriptionId", "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f" },
{ "scope", "shared" },
{ "duration", "3Years" }
}
}
}
};
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);
Ejemplo: Aplicación de prueba de consola. Project: Clase de ejemplos del SDK del Centro de partners: CreateOrder.cs
Solicitud REST
Sintaxis de la solicitud
| Método | Solicitud de URI |
|---|---|
| POST | {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1 |
Parámetros de URI
Use el siguiente parámetro de ruta de acceso para identificar al cliente.
| Nombre | Tipo | Obligatorio | Description |
|---|---|---|---|
| customer-id | cuerda / cadena | Sí | Identificador de cliente con formato GUID que identifica al cliente. |
Encabezados de solicitud
Para más información, consulte Encabezados REST del Centro de partners.
Cuerpo de la solicitud
Pedido
En esta tabla se describen las propiedades Order del cuerpo de la solicitud.
| Propiedad | Tipo | Obligatorio | Description |
|---|---|---|---|
| id | cuerda / cadena | No | Identificador de pedido que se proporciona tras la creación correcta del pedido. |
| referenceCustomerId | cuerda / cadena | No | Identificador del cliente. |
| billingCycle | cuerda / cadena | No | Indica la frecuencia con la que se factura al asociado para este pedido. Los valores admitidos son los nombres de miembro que se encuentran en BillingCycleType. El valor predeterminado es "Mensual" o "OneTime" al crear el pedido. Este campo se aplica tras la creación correcta del pedido. |
| lineItems | matriz de recursos OrderLineItem | Sí | Una lista desglosada de las ofertas que el cliente está comprando, incluida la cantidad. |
| código de moneda | cuerda / cadena | No | Solo lectura. Moneda utilizada al realizar el pedido. Aplicado tras la creación correcta del pedido. |
| Fecha de creación | datetime | No | Solo lectura. Fecha en que se creó el pedido, en formato de fecha y hora. Aplicado tras la creación correcta del pedido. |
| estado | cuerda / cadena | No | Solo lectura. Estado del pedido. Los valores admitidos son los nombres de miembro que se encuentran en OrderStatus. |
| links | OrderLinks | No | Los vínculos de recursos correspondientes al pedido. |
| attributes | ResourceAttributes | No | Atributos de metadatos correspondientes al pedido. |
| PartnerOnRecordAttestationAccepted | Boolean | Sí | Confirma la finalización de la atestación |
OrderLineItem
En esta tabla se describen las propiedades OrderLineItem en el cuerpo de la solicitud.
Nota:
Al finalizar la compra de un carro a través de la API, los elementos de línea se procesan en el orden en que se colocan en el carro. El pedido puede afectar a la elegibilidad para promociones con restricciones de New To Offer si hay dos productos del mismo tipo en el carrito, uno con el identificador de promoción y otro sin él (por ejemplo, con términos diferentes). Asegúrese de colocar los artículos aptos para una promoción primero en el carrito si está comprando varios artículos.
| Nombre | Tipo | Obligatorio | Description |
|---|---|---|---|
| lineItemNumber | int | Sí | Cada elemento de línea de la colección obtiene un número de línea único, contando de 0 a count-1. |
| offerId | cuerda / cadena | Sí | Identificador de la oferta. Asegúrese de que la disponibilidad de la oferta es para el segmento correcto. |
| ID de suscripción | cuerda / cadena | No | Identificador de la suscripción. |
| parentSubscriptionId | cuerda / cadena | No | Optional. Identificador de la suscripción primaria en una oferta de complemento. Solo se aplica a PATCH. |
| friendlyName | cuerda / cadena | No | Optional. Nombre descriptivo de la suscripción definida por el asociado para ayudar a desambiguar. |
| cantidad | int | Sí | Número de licencias de una suscripción basada en licencias. |
| customTermEndDate | DateTime | No | Fecha de finalización del primer período de facturación de la nueva suscripción. |
| partnerIdOnRecord | cuerda / cadena | No | Cuando un proveedor indirecto realiza un pedido en nombre de un revendedor indirecto, rellene este campo con el PartnerID del revendedor indirecto solo (nunca el identificador del proveedor indirecto). Esto garantiza una contabilidad adecuada para los incentivos. |
| provisioningContext | Cadena de diccionario<, cadena> | No | Información necesaria para el aprovisionamiento de algunos elementos del catálogo. La propiedad provisioningVariables de una SKU indica qué propiedades son necesarias para elementos específicos del catálogo. |
| links | OrderLineItemLinks | No | Solo lectura. Los vínculos de recursos correspondientes al elemento de línea Order. |
| attributes | ResourceAttributes | No | Atributos de metadatos correspondientes al orderLineItem. |
| renewsTo | Matriz de objetos | No | Matriz de recursos RenewsTo . |
| AttestationAccepted | bool | No | Indica el acuerdo para ofrecer o condiciones de SKU. Obligatorio solo para ofertas o sku donde SkuAttestationProperties o OfferAttestationProperties enforceAttestation es True. |
| AdditionalPartnerIdsOnRecord | String | No | Cuando un proveedor indirecto realiza un pedido en nombre de un revendedor indirecto, rellene este campo con el PartnerID del revendedor indirecto adicional ( nunca el identificador del proveedor indirecto). Los incentivos no son aplicables a estos otros revendedores. Solo se puede especificar un máximo de cinco revendedores indirectos. Este valor solo es aplicable a los socios que realizan transacciones en países o regiones europeos. |
| scheduledNextTermInstructions | objeto | No | Define las instrucciones de término siguiente para una suscripción de prueba. Los asociados pueden especificar la duración del término, la frecuencia de facturación y la cantidad que tiene la suscripción de pago correspondiente en la renovación. |
Nota:
El partnerIdOnRecord solo debe proporcionarse cuando un proveedor indirecto realiza un pedido en nombre de un revendedor indirecto. Se usa para almacenar el PartnerID del revendedor indirecto (nunca el identificador del proveedor indirecto).
RenewsTo
En esta tabla se describen las propiedades RenewsTo del cuerpo de la solicitud para las ofertas de Microsoft Marketplace.
| Propiedad | Tipo | Obligatorio | Description |
|---|---|---|---|
| termDuration | cuerda / cadena | No | Representación ISO 8601 de la duración del período de renovación. Los valores admitidos actuales son P1M (1 mes) y P1Y (1 año). |
ScheduledNextTermInstructions
En esta tabla se describen las propiedades scheduledNextTermInstructions del cuerpo de la solicitud para las nuevas ofertas de prueba basadas en licencias de experiencia comercial (NCE). Si no se especifica ningún valor, las evaluaciones se renuevan en suscripciones de pago con período anual, facturación mensual y 25 licencias.
| Propiedad | Tipo | Obligatorio | Description |
|---|---|---|---|
| producto | array | No | Matriz que especifica la oferta en la que se renueva una suscripción de prueba y el término y la frecuencia de facturación que tiene la suscripción de pago. |
| cantidad | int | No | Cantidad de licencia que la suscripción de pago correspondiente tiene una vez que se renueva la oferta de prueba. |
Producto
En esta tabla se describen las propiedades productTerm del cuerpo de la solicitud para las ofertas de prueba basadas en licencias NCE. Si no se especifican valores en este array, las pruebas se renuevan como suscripciones de pago con un término anual y facturación mensual.
| Propiedad | Tipo | Obligatorio | Description |
|---|---|---|---|
| ID de producto | cuerda / cadena | No | GUID con formato para representar el producto de la suscripción de pago a la que se convierte la versión de prueba al renovarse. |
| skuId | cuerda / cadena | No | GUID con formato para representar la SKU de la suscripción de pago a la que se renueva la versión de prueba. |
| availabilityId | cuerda / cadena | No | GUID con formato para representar la disponibilidad de la suscripción de pago a la que se renueva la versión de prueba. |
| billingCycle | cuerda / cadena | No | Frecuencia de facturación de la que dispone la suscripción de pago correspondiente una vez renovada la oferta de prueba. |
| termDuration | cuerda / cadena | No | Duración del período que tiene la suscripción de pago correspondiente una vez que se renueva la oferta de prueba. |
Ejemplo de solicitud
POST https://api.partnercenter.microsoft.com/v1/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Length: 691
Content-Type: application/json
{
"BillingCycle": "one_time",
"CurrencyCode": "USD",
"LineItems": [
{
"LineItemNumber": 0,
"ProvisioningContext": {
"subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"scope": "shared",
"duration": "1Year"
},
"OfferId": "DZH318Z0BQ4B:0047:DZH318Z0DSM8",
"FriendlyName": "A_sample_Azure_RI",
"Quantity": 1
}
]
}
// request example where some renewal values for an NCE license-based trial are specified
http
POST https://api.partnercenter.microsoft.com/v1/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Length: 486
Content-Type: application/json
{
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
"quantity": 25,
"currencyCode": "USD",
"billingCycle": "none",
"termDuration": "P1M",
"promotionId": null,
"provisioningContext": {},
"customTermEndDate": null,
"scheduledNextTermInstructions": {
"product": {
"billingCycle": "monthly",
"termDuration": "P1M"
}
}
}
],
"partnerOnRecordAttestationAccepted": true
}
Respuesta REST
Si se ejecuta correctamente, el método devuelve un recurso Order en el cuerpo de la respuesta.
Si el pedido contiene una o varias suscripciones, los valores de identificador de suscripción respectivos solo aparecen en la respuesta REST si las suscripciones correspondientes se aprovisionan en el momento de la llamada API. Las suscripciones de aprovisionamiento se producen de forma asincrónica y, por lo tanto, es posible que los valores de identificador de suscripción no siempre estén visibles en la respuesta REST de la llamada Create Order. Sin embargo, una vez que se aprovisionan las suscripciones respectivas, se puede acceder a sus valores de identificador de suscripción a través de las llamadas a API Get Orders y Get Order by ID.
Códigos de éxito y de error de la respuesta
Cada respuesta incluye un código de estado HTTP que indica éxito o error y más información de depuración. Use una herramienta de seguimiento de red para leer este código, tipo de error y otros parámetros. Para obtener la lista completa, consulte Códigos de error del Centro de partners.
Ejemplo de respuesta
{
"id": "Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"referenceCustomerId": "b0d70a69-4c42-4b27-b17b-91a835d8686a",
"billingCycle": "one_time",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "84A03D81-6B37-4D66-8D4A-FAEA24541538",
"friendlyName": "A_sample_Azure_RI",
"quantity": 1,
"links": {
"sku": {
"uri": "/products/DZH318Z0BQ4B/skus/0047?country=US",
"method": "GET",
"headers": []
}
}
} ],
"creationDate": "2018-03-15T22:30:02.085152Z",
"status": "pending",
"links": {
"provisioningStatus": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1/provisioningstatus",
"method": "GET",
"headers": []
},
"self": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Order"
}
}
// response content for an order containing an NCE license-based trial
{
"id": "99d3777b-61da-4c95-aefa-203c248c4180",
"creationTimestamp": "2025-02-04T22:22:36.7924103Z",
"lastModifiedTimestamp": "2025-02-04T22:22:36.7924109Z",
"expirationTimestamp": "2025-02-11T22:23:34.5190698Z",
"lastModifiedUser": "b5109661-56c5-45ed-9447-f67463458a97",
"status": "Active",
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
"quantity": 25,
"currencyCode": "USD",
"billingCycle": "none",
"termDuration": "P1M",
"provisioningContext": {},
"orderGroup": "0",
"pricing": {
"listPrice": 0.0,
"discountedPrice": 0.0,
"proratedPrice": 0.0,
"price": 0.0,
"extendedPrice": 0.0
},
"scheduledNextTermInstructions": {
"product": {
"productId": "CFQ7TTC0LCHC",
"skuId": "0002",
"availabilityId": "CFQ7TTC0XL82",
"billingCycle": "monthly",
"termDuration": "P1M"
},
"quantity": 25
}
}
],
"links": {
"self": {
"uri": "/customers/81e78b53-9aa8-44e7-a041-3b15272d8f84/carts/99d3777b-61da-4c95-aefa-203c248c4180",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}