我正在使用webservice API进行MICROS RES 3700 POS集成。 我已经能够下简单的订单,但我无法使调味品发挥作用。
POS只是忽略了我用MenuItem发送的调味品数组。有人能告诉我一个XML调味品数组结构的例子吗?文档说明它与MeuItem的结构相同,但它不起作用。
谢谢!
答案 0 :(得分:0)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:res="http://schemas.micros.com/RESPOS">
<soap:Header/>
<soap:Body>
<res:PostTransactionEx>
<res:pGuestCheck>
<!--Optional:-->
<res:CheckID>?</res:CheckID>
<res:CheckTableObjectNum>?</res:CheckTableObjectNum>
<res:CheckRevenueCenterObjectNum>?</res:CheckRevenueCenterObjectNum>
<res:CheckOrderType>?</res:CheckOrderType>
<res:CheckEmployeeObjectNum>?</res:CheckEmployeeObjectNum>
<res:CheckSeq>?</res:CheckSeq>
<res:CheckNum>?</res:CheckNum>
<res:CheckDateToFire>?</res:CheckDateToFire>
<res:CheckGuestCount>?</res:CheckGuestCount>
<!--Optional:-->
<res:pCheckInfoLines>
<!--Zero or more repetitions:-->
<res:string>?</res:string>
</res:pCheckInfoLines>
<res:CheckStatusBits>?</res:CheckStatusBits>
<!--Optional:-->
<res:pPrintJobIds>
<!--Zero or more repetitions:-->
<res:int>?</res:int>
</res:pPrintJobIds>
</res:pGuestCheck>
<!--Optional:-->
<res:ppMenuItems>
<!--Zero or more repetitions:-->
<res:ResPosAPI_MenuItem>
<res:MenuItem>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:MenuItem>
<!--Optional:-->
<res:Condiments>
<!--Zero or more repetitions:-->
<res:ResPosAPI_MenuItemDefinition>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:ResPosAPI_MenuItemDefinition>
</res:Condiments>
</res:ResPosAPI_MenuItem>
</res:ppMenuItems>
<!--Optional:-->
<res:ppComboMeals>
<!--Zero or more repetitions:-->
<res:ResPosAPI_ComboMeal>
<res:ComboMealMenuItem>
<res:MenuItem>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:MenuItem>
<!--Optional:-->
<res:Condiments>
<!--Zero or more repetitions:-->
<res:ResPosAPI_MenuItemDefinition>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:ResPosAPI_MenuItemDefinition>
</res:Condiments>
</res:ComboMealMenuItem>
<res:ComboMealObjectNum>?</res:ComboMealObjectNum>
<res:ComboMealMainItem>
<res:MenuItem>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:MenuItem>
<!--Optional:-->
<res:Condiments>
<!--Zero or more repetitions:-->
<res:ResPosAPI_MenuItemDefinition>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:ResPosAPI_MenuItemDefinition>
</res:Condiments>
</res:ComboMealMainItem>
<!--Optional:-->
<res:SideItems>
<!--Zero or more repetitions:-->
<res:ResPosAPI_MenuItem>
<res:MenuItem>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:MenuItem>
<!--Optional:-->
<res:Condiments>
<!--Zero or more repetitions:-->
<res:ResPosAPI_MenuItemDefinition>
<res:MiObjectNum>?</res:MiObjectNum>
<res:MiMenuLevel>?</res:MiMenuLevel>
<!--Optional:-->
<res:MiOverridePrice>?</res:MiOverridePrice>
<!--Optional:-->
<res:MiWeight>?</res:MiWeight>
<!--Optional:-->
<res:MiReference>?</res:MiReference>
<res:ItemDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:ItemDiscount>
</res:ResPosAPI_MenuItemDefinition>
</res:Condiments>
</res:ResPosAPI_MenuItem>
</res:SideItems>
</res:ResPosAPI_ComboMeal>
</res:ppComboMeals>
<res:pServiceChg>
<res:SvcChgObjectNum>?</res:SvcChgObjectNum>
<!--Optional:-->
<res:SvcChgAmountOrPercent>?</res:SvcChgAmountOrPercent>
<!--Optional:-->
<res:SvcChgReference>?</res:SvcChgReference>
</res:pServiceChg>
<res:pSubTotalDiscount>
<res:DiscObjectNum>?</res:DiscObjectNum>
<!--Optional:-->
<res:DiscAmountOrPercent>?</res:DiscAmountOrPercent>
<!--Optional:-->
<res:DiscReference>?</res:DiscReference>
</res:pSubTotalDiscount>
<res:pTmedDetail>
<res:TmedObjectNum>?</res:TmedObjectNum>
<!--Optional:-->
<res:TmedPartialPayment>?</res:TmedPartialPayment>
<!--Optional:-->
<res:TmedReference>?</res:TmedReference>
<res:TmedEPayment>
<res:PaymentCommand>?</res:PaymentCommand>
<res:AccountDataSource>?</res:AccountDataSource>
<res:AccountType>?</res:AccountType>
<!--Optional:-->
<res:AcctNumber>?</res:AcctNumber>
<res:ExpirationDate>?</res:ExpirationDate>
<!--Optional:-->
<res:AuthorizationCode>?</res:AuthorizationCode>
<res:StartDate>?</res:StartDate>
<res:IssueNumber>?</res:IssueNumber>
<!--Optional:-->
<res:Track1Data>?</res:Track1Data>
<!--Optional:-->
<res:Track2Data>?</res:Track2Data>
<!--Optional:-->
<res:Track3Data>?</res:Track3Data>
<!--Optional:-->
<res:BaseAmount>?</res:BaseAmount>
<!--Optional:-->
<res:TipAmount>?</res:TipAmount>
<!--Optional:-->
<res:CashBackAmount>?</res:CashBackAmount>
<!--Optional:-->
<res:KeySerialNum>?</res:KeySerialNum>
<!--Optional:-->
<res:DeviceId>?</res:DeviceId>
<!--Optional:-->
<res:PinBlock>?</res:PinBlock>
<!--Optional:-->
<res:CVVNumber>?</res:CVVNumber>
<!--Optional:-->
<res:AddressVerification>?</res:AddressVerification>
<!--Optional:-->
<res:InterfaceName>?</res:InterfaceName>
<!--Optional:-->
<res:SvcResponse>?</res:SvcResponse>
<!--Optional:-->
<res:SvcAccountType>?</res:SvcAccountType>
</res:TmedEPayment>
</res:pTmedDetail>
<res:pTotalsResponse>
<!--Optional:-->
<res:TotalsSubTotal>?</res:TotalsSubTotal>
<!--Optional:-->
<res:TotalsTaxTotals>?</res:TotalsTaxTotals>
<!--Optional:-->
<res:TotalsOtherTotals>?</res:TotalsOtherTotals>
<!--Optional:-->
<res:TotalsAutoSvcChgTotals>?</res:TotalsAutoSvcChgTotals>
<!--Optional:-->
<res:TotalsTotalDue>?</res:TotalsTotalDue>
</res:pTotalsResponse>
<!--Optional:-->
<res:ppCheckPrintLines>
<!--Zero or more repetitions:-->
<res:string>?</res:string>
</res:ppCheckPrintLines>
<!--Optional:-->
<res:ppVoucherOutput>
<!--Zero or more repetitions:-->
<res:string>?</res:string>
</res:ppVoucherOutput>
</res:PostTransactionEx>
</soap:Body>
</soap:Envelope>
答案 1 :(得分:0)
我知道这个问题很旧,但是与我非常相关,我希望以后可以帮助其他一些开发人员。
POS仅忽略我通过MenuItem发送的调味品数组。
请确保您发送的调味品已在Micros 3700中配置为调味品。
我已经可以简单地下订单,但是我不能使调味品起作用。
我认为这是一个更有趣的问题-(尽管与我更相关,以及我如何偶然发现此线程)。
我的问题稍有不同,因为提供调味品会导致ResPosApiWeb服务中出现未处理的异常-因此,我要通过响应来解决的问题是。
我怀疑是因为ResPosApiWeb.dll包装了Interop.ResPosApi.dll,所以出现问题的原因是不受管理的代码。使用dotPeek可以进一步支持该功能。
请参见下面的代码,以获取有效的请求构造菜单的代码示例:
var menuItems = new ResPosAPI_MenuItem[]
{
new ResPosAPI_MenuItem()
{
MenuItem = new ResPosAPI_MenuItemDefinition
{
MiObjectNum = 123,
MiMenuLevel = 1,
MiOverridePrice = "10.00", // optional
MiWeight = "1", // optional
MiReference = "", // optional
ItemDiscount = new ResPosAPI_Discount()
},
Condiments = new ResPosAPI_MenuItemDefinition[]
{
new ResPosAPI_MenuItemDefinition()
{
MiObjectNum = 456,
MiMenuLevel = 1,
MiOverridePrice = "1.00", // optional
MiWeight = "1", // optional
MiReference = "", // IMPORTANT: MiReference *must* be defined on Condiments, for some reason, or it will result in an unhandled exception in the ResPosApi web service
ItemDiscount = new ResPosAPI_Discount()
}
}
}
};
然后使用其他必需参数发出请求...
_apiClient.CalculateTransactionTotals(
ppMenuItems: ref menuItems, // our menu object we created above
ppComboMeals: ref comboMeals,
pSvcCharge: ref serviceCharge,
pSubtotalDiscount: ref discount,
revenueCenter: _revenueCenterId,
orderType: _orderTypeId,
employeeNumber: _employeeId,
pTotalsResponse: ref totalsResponse);