更新购物车
如何更新购物车中的客户的订单。
必备条件
合作伙伴中心身份验证中所述的凭据。 此方案支持通过独立应用和应用 + 用户凭据进行身份验证。
客户 ID (
customer-tenant-id)。 如果不知道客户的 ID,则可以在合作伙伴中心仪表板中查找它。 从“合作伙伴中心”菜单中选择“CSP” ,然后选择“客户” 。 从客户列表中选择客户,然后选择“帐户” 。 在客户的“帐户”页上的“客户帐户信息” 部分查找 Microsoft ID。 Microsoft ID 与客户 ID (customer-tenant-id) 相同。现有购物车的购物车 ID。
C#
若要更新客户的订单,请使用 get () 方法获取购物车,方法是使用 ById () 函数传递客户和购物车 id。 对购物车做出必要的更改。 现在,使用客户和购物车 Id 通过ById () 方法来调用Put方法。
最后,调用 Put () 或 PutAsync () 方法来创建订单。
IAggregatePartner partnerOperations;
string customerId;
string cartId;
var cart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Get();
cart.LineItems.ToArray()[0].Quantity++;
var updatedCart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Put(cart);
若要完成证明并包括其他经销商,请参阅以下示例。
API 示例-检查购物车
{
"orders": [
{
"id": "f76c6b7f449d",
"alternateId": "f76c6b7f449d",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "ebc0beef-7ffb-4044-c074-16f324432139",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"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": []
}
}
},
{
"lineItemNumber": 1,
"offerId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
"subscriptionId": "261bac40-7d88-4327-dfa3-dacd09222d62",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Azure Active Directory Premium P1",
"quantity": 2,
"partnerIdOnRecord": "517285",
"additionalPartnerIdsOnRecord":
"5357564",
"5357563"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LFLS?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LFLS/skus/0002?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LFLS/skus/0002/availabilities/CFQ7TTC0KDLJ?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-18T07:52:23.1921872Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
],
"attributes": {
"objectType": "CartCheckoutResult"
}
}
REST 请求
请求语法
| 方法 | 请求 URI |
|---|---|
| PUT | {baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1。1 |
URI 参数
使用以下路径参数来标识客户,并指定要更新的 cart。
| 名称 | 类型 | 必需 | 说明 |
|---|---|---|---|
| 客户-id | 字符串 | 是 | 标识客户的 GUID 格式的客户 id。 |
| 购物车-id | 字符串 | 是 | 标识购物车的 GUID 格式的 cart id。 |
请求标头
有关详细信息,请参阅合作伙伴中心 REST 标头。
请求正文
下表描述了请求正文中的 Cart 属性。
| 属性 | 类型 | 必需 | 说明 |
|---|---|---|---|
| id | 字符串 | 否 | Cart 标识符,在成功创建购物车时提供。 |
| creationTimeStamp | DateTime | 否 | 购物车的创建日期,采用日期时间格式。 在成功创建购物车时应用。 |
| lastModifiedTimeStamp | DateTime | 否 | 上次更新购物车的日期(采用日期时间格式)。 在成功创建购物车时应用。 |
| expirationTimeStamp | DateTime | 否 | 购物车将过期的日期-时间格式。 在成功创建购物车时应用。 |
| lastModifiedUser | 字符串 | 否 | 上次更新购物车的用户。 在成功创建购物车时应用。 |
| lineItems | 对象数组 | 是 | CartLineItem资源的数组。 |
下表描述了请求正文中的 CartLineItem 属性。
| 属性 | 类型 | 必需 | 说明 |
|---|---|---|---|
| id | 字符串 | 否 | Cart 行项的唯一标识符。 在成功创建购物车时应用。 |
| catalogId | 字符串 | 是 | 目录项标识符。 |
| friendlyName | 字符串 | 否 | 可选。 合作伙伴定义的用于帮助消除歧义的项的友好名称。 |
| quantity | int | 是 | 许可证或实例数。 |
| currencyCode | string | 否 | 货币代码。 |
| billingCycle | 对象 | 是 | 为当前期间设置的计费周期的类型。 |
| participants | 对象字符串对的列表 | 否 | 购买参与者的集合。 |
| provisioningContext | 字典 < 字符串,字符串> | 否 | 用于预配产品/服务的上下文。 |
| orderGroup | 字符串 | 否 | 用于指示哪些项可以放在一起的组。 |
| error | Object | 否 | 在出现错误的情况下创建 cart 后应用。 |
| AdditionalPartnerIdsOnRecord | 字符串 | 否 | 当间接提供程序代表间接经销商下订单时,使用 额外的间接分销商 的 MPN id 填充此字段,只 (绝不会) 间接提供程序的 id。 奖励不适用于这些其他经销商。 只能输入最多5个间接分销商。 这仅适用于欧盟/EFTA 国家/地区内约束力的合作伙伴。 |
请求示例
PUT /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/65faf57b-0205-47ee-92b3-08dcf233ea73/ HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: 0e93c70c-977a-4a88-9580-7cf084c73286
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 496
Expect: 100-continue
{
{
"Id":"b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
"CreationTimestamp":"2018-03-15T17:15:02.3840528Z",
"LastModifiedTimestamp":"2018-03-15T17:15:02.3840528Z",
"ExpirationTimestamp":"0001-01-01T00:00:00",
"LastModifiedUser":"2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
"LineItems":[
{
"Id":0,
"CatalogItemId":"DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
"FriendlyName":"A_sample_Azure_RI",
"Quantity":2,
"BillingCycle":"one_time",
"ProvisioningContext": {
"SubscriptionId": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
"Scope": "shared",
"Duration": "1Year"
}
}
],
}
}
REST 响应
如果成功,则此方法将在响应正文中返回填充的 购物车 资源。
响应的成功和错误代码
每个响应都带有一个 HTTP 状态代码,用于指示成功或失败以及其他调试信息。 请使用网络跟踪工具来读取此代码、错误类型和其他参数。 有关完整列表,请参阅错误代码。
响应示例
HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 0e93c70c-977a-4a88-9580-7cf084c73286
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
X-Locale: en-US,en-US
MS-CV: sF/wRa2ih0CzbABc.0
MS-ServerId: 000001
Date: Thu, 15 Mar 2018 17:15:01 GMT
{
"id": "b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
"creationTimestamp": "2018-03-15T17:15:02.3840528Z",
"lastModifiedTimestamp": "2018-03-15T17:15:02.3840528Z",
"lastModifiedUser": "2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
"lineItems": [
{
"id": 0,
"catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
"friendlyName": "A_sample_Azure_RI",
"quantity": 2,
"currencyCode": "USD",
"billingCycle": "one_time",
"ProvisioningContext": {
"subscriptionId": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
"scope": "shared",
"duration": "1Year"
}
"orderGroup": "0"
}
],
"links": {
"self": {
"uri": "/v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/b4c8fdea-cbe4-4d17-9576-13fcacbf9605/",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}