2017-07-03 71 views
0

我正在爲使用VC++ 2010的CAT-Credit授權終端開發OPOS接口。我的問題是關於ClearOutput方法,如果有人在這裏嘗試過編碼opos控件。當我調用該函數時,它將返回代碼106,這意味着OPOS_E_ILLEGAL。零售POS的OPOS-OLE中的ClearOutput方法的時機是什麼?

這裏是我的代碼序列:

  • OPOSCAT.Open()
  • OPOSCAT.ClaimDevice()
  • OPOSCAT.DeviceEnabled =真
  • OPOSCAT.Asyncmode =真
  • 執行銷售並且觸發事件,等到它結束時,調用OutputCompleteEvent
  • OPOSCAT.ClearOutput()
  • OPOSCAT.DeviceEnabled =假
  • OPOSCAT.Asyncmode =假
  • OPOSCAT.ReleaseDevice()
  • OPOSCAT.Close()

點擊此處查看詳細參考: See Chapter 5

謝謝

回答

0

首先,該PDF爲1.6,這是超過15年過時。請參閱http://monroecs.com/unifiedpos.htm瞭解OPOS的當前版本,該版本是1.14。如果沒有其他的你應該升級PCI符合性的原因。

OPOS公共控件是非常通用的,並且不會有很多理由在clearOutput()方法上返回該錯誤。我能想到的唯一的事情就是,如果它不在合法的狀態(聲稱)稱之爲。也許以前的調用創建了一個錯誤條件如此糟糕的設備改變了狀態從聲明到發佈?

如果不是這樣,那可能是設備特定的錯誤。聯繫提供服務對象的設備供應商。您可以嘗試下載OPOS的調試版本並啓用日誌記錄,這將提供更多證據來支持此聲明。

0

有關詳細信息,請檢查您正在使用的CAT服務對象的規格。

很可能是因爲ClearOutput是在OutputCompleteEvent後面調用的,也就是說,在SALES的異步處理結束後。

通常,調用ClearOutput方法來取消異步處理期間的處理。 在您的代碼中,它是「等到它完成」的一部分。

如果在等待此完成時調用ClearOutput方法,則ClearOutput方法將成功,SALES操作(如AuthorizeSales)將被取消。

但是,根據您使用的CAT服務對象的規範,服務對象可能不支持ClearOutput方法。 在這種情況下,無論通話時間如何,都會發生錯誤。

相關問題