U8API¿ª·¢ÊֲᣨC#°æ£©

2.1.3 APIµäÐÍÓ¦Óó¡¾° ? Ö´Ðе¥Ò»²Ù×÷

µ¥Ò»²Ù×÷Ö¸Ò»ÏîÈÎÎñÖ»ÐèÒªÒ»¸öAPIÍê³É£¬±ÈÈ磺µ¥¾ÝÐÂÔö¡¢ÉóºË/ÆúÉó¡¢É¾³ýµÈµ¥Ò»²Ù×÷¡£ÕâÊÇAPIµ÷ÓÃ×î³£¼ûµÄ³¡¾°£¬Ö»Ðè°´ÕÕAPIµÄ½Ó¿Ú¹æ·¶¹¹Ôì²ÎÊýÖ±½Óµ÷Óü´¿É¡£

? Ö´Ðи´ºÏ²Ù×÷

¸´ºÏ²Ù×÷£¬¼´Ò»ÏîÈÎÎñÓɶà¸öAPIµÄЭ×÷À´Íê³É¡£±ÈÈ磬×Ô¶¨ÒåµÄµ¥¾Ýά»¤½çÃæµÄÖ÷ÒªÂß¼­£¬Ò»°ãÓÉÒÔÏÂËĸö²½Öè¹¹³É£º

1) ¼ÓÔØµ¥¾Ý£»

2) Ôڱ༭½çÃæÉÏÏÔʾ£» 3) Óû§Ð޸ĵ¥¾Ý×ֶΣ» 4) Ìá½»±£´æ¡£

ÒÔÉϲ½ÖèÐèÒª½øÐÐÁ½´ÎAPIµ÷Ó㺠1) ¼ÓÔØµ¥¾Ýʱºòµ÷Óá°¼ÓÔØAPI¡±£¬ÒÔ»ñÈ¡µ¥¾ÝBO¶ÔÏ󣨻òԭʼDOM¶ÔÏ󣩲¢ÔÚ½çÃæ

ÉÏÕ¹ÏÖ£»

2) Óû§ÔÚÐ޸ĵ¥¾ÝʱÆäʵ¾ÍÊÇÔÚÐÞ¸ÄBO¶ÔÏó£¬Óû§±£´æµ¥¾Ýʱµ÷Óá°±£´æAPI¡±£¬´Ë

ʱҪ½«´ËBO¶ÔÏ󴫸ø¡°±£´æAPI¡±£¨¶ø²»Óù¹ÔìеÄBO¶ÔÏ󣩡£

´úÂëʾÀý£º

Ê×ÏÈ£¬µÇ½£»

//¹¹Ôìu8login¶ÔÏ󲢵ǽ

U8Login.clsLogin u8Login = new U8Login.clsLogin(); String sSubId = \;

String sAccID = \; String sYear = \; String sUserID = \; String sPassword = \; String sDate = \; String sServer = \; String sSerial = \;

if (!u8Login.Login(ref sSubId, ref sAccID, ref sYear, ref sUserID, ref sPassword, ref sDate, ref sServer, ref sSerial)) { }

Console.WriteLine(\µÇ½ʧ°Ü£¬Ô­Òò£º\ + u8Login.ShareString); Marshal.FinalReleaseComObject(u8Login); return;

È»ºó£¬Í¨¹ýLOAD½Ó¿Ú»ñÈ¡BO¶ÔÏó£»

//¹¹Ôì»·¾³ÉÏÏÂÎĶÔÏ󣬴«Èëlogin£¬²¢°´ÐèÉèÖÃÆäËüÉÏÏÂÎIJÎÊý

U8EnvContext envContext = new U8EnvContext(); envContext.U8Login = u8Login; //ÉèÖÃÉÏÏÂÎIJÎÊý

??

//ÉèÖÃAPIµØÖ·±êʶ(Url)

U8ApiAddress myApiAddress = new U8ApiAddress(¡°×°Ôص¥¾ÝµÄµØÖ·±êʶ¡±); //¹¹ÔìAPIBroker

U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext); //API²ÎÊý¸³Öµ

broker.AssignNormalValue(\²ÎÊýÃû\, \²ÎÊýÖµ\); ??

//µ÷ÓÃLOAD½Ó¿ÚAPI if (!broker.Invoke()) { }

//»ñÈ¡±íÍ·»ò±íÌåµÄBO¶ÔÏó£¬Èç¹ûҪȡԭʼµÄXMLDOM¶ÔÏó½á¹û£¬ÇëʹÓÃGetResult(²ÎÊýÃû) BusinessObject DomRet = broker.GetBoParam(\±íÍ·»ò±íÌå²ÎÊýÃû\);

//´íÎó´¦Àí

Exception apiEx = broker.GetException(); if (apiEx != null) { }

//½áÊø±¾´Îµ÷Óã¬ÊÍ·ÅAPI×ÊÔ´ broker.Release(); return;

if (apiEx is MomSysException) { }

else if (apiEx is MomBizException) { }

MomBizException bizEx = apiEx as MomBizException; Console.WriteLine(\Òì³££º\ + bizEx.Message); //todo:Òì³£´¦Àí

MomSysException sysEx = apiEx as MomSysException; Console.WriteLine(\ϵͳÒì³££º\ + sysEx.Message); //todo:Òì³£´¦Àí

½Ó×Å£¬BO¶ÔÏó¾­Óû§ÐÞ¸ÄÖØÐ¸³Öµ,²¢´«µÝ¸øUPDATE½Ó¿ÚÌá½»±£´æ£»

//Ð޸ĻñÈ¡µÄBO¶ÔÏ󣬶ÔÐèÒª¸ü¸ÄµÄ×Ö¶ÎÖØÐ¸³Öµ DomRet[0][\×Ö¶ÎÃû\] = еÄ×Ö¶ÎÖµ;

??

//ÖØÐ¹¹Ôì¡°ÐÂÔö»òÐ޸ġ±APIµÄµØÖ·±êʶ

myApiAddress = new U8ApiAddress(\ÐÂÔö»òÐ޸ġ±APIµÄµØÖ·±êʶ\);

//ÖØÐ¹¹ÔìAPIBroker

broker = new U8ApiBroker(myApiAddress, envContext); //±íÍ·»ò±íÌå²ÎÊý¸³Öµ

broker.SetBoParam(\±íÍ·»ò±íÌå²ÎÊýÃû\, DomRet); //API²ÎÊý¸³Öµ

broker.AssignNormalValue(\²ÎÊýÃû\, \²ÎÊýÖµ\); ??

//µ÷ÓÃUPDATE½Ó¿ÚAPI if (!broker.Invoke()) { }

??

×îºó£¬»ñÈ¡·µ»Ø½á¹û¡£

//»ñÈ¡ÆÕͨ·µ»ØÖµ

System.String result = broker.GetReturnValue() as System.String; //»ñÈ¡out/inout²ÎÊýÖµ ??

//½áÊø±¾´Îµ÷Óã¬ÊÍ·ÅAPI×ÊÔ´ broker.Release();

2.2. APIÄÚÈÝ 2.2.1 ²É¹º¹ÜÀí

? ¹¦ÄܽéÉÜ

ΪÁËÖ§³ÖU8¶þ´Î¿ª·¢¶ÔÒµÎñµ¥¾ÝµÄ¿ª·¢£¬±¾¹¦ÄÜÌṩÁËʵÏֲɹºÒµÎñµ¥¾Ý¸÷ÖÖ²Ù×÷¹¦Äܵıà³Ì½Ó¿Ú¡£Ê¹Óòɹº¹ÜÀíµÄAPI¿ª·¢½Ó¿Ú£¬¿ÉÒÔ¶Ô¿â´æ¹ÜÀíÖеIJɹºµ½»õµ¥¡¢²É¹ºÆÕͨ·¢Æ±¡¢²É¹º×¨Ó÷¢Æ±¡¢²É¹º¶©µ¥¡¢Ç빺µ¥¡¢²É¹ºÔË·Ñ·¢Æ±µÈµ¥¾Ý½øÐÐÉóºË¡¢ÆúÉó¡¢»ñÈ¡£¨»ò×°ÔØ£©¡¢ÐÂÔö¡¢Ð޸ġ¢É¾³ý¡£

? ʹÓû·¾³

±ØÐë°²×°.NET FrameWork 2.0£» ±ØÐë°²×°U8-872°æ±¾µÄ²É¹º¹ÜÀí²úÆ·£» ±ØÐë°²×°APIÊÊÅäÆ÷×é¼þPUAPIConcrete.dll

? ½Ó¿Ú˵Ã÷

²É¹º¹ÜÀí¶þ´Î¿ª·¢½Ó¿Ú˵Ã÷£º

? ÉóºËµ¥¾Ý-ConfirmPO·½·¨

²ÎÊý£º

domHead ¡ª¡ª µ¥¾Ý±íÍ·£¬DOM¶ÔÏ󣬱ØÊä APIÉÏÏÂÎÄ£º

VoucherType ¡ª¡ª µ¥¾ÝÀàÐÍ£¬¾ßÌåÀàÐͲο´APIÉÏÏÂÎÄÃèÊö bPositive ¡ª¡ª ºìÀ¶±êʶ£ºTrue,À¶×Ö £»False,ºì×Ö sBillType ¡ª¡ª Ϊ¿Õ´®

sBusType ¡ª¡ª ÒµÎñÀàÐÍ£ºÆÕͨ²É¹º,Ö±Ô˲ɹº,ÊÜÍдúÏú

? ÆúÉóµ¥¾Ý- CancelconfirmPO·½·¨

²ÎÊý£º

domHead ¡ª¡ª µ¥¾Ý±íÍ·£¬DOM¶ÔÏ󣬱ØÊä APIÉÏÏÂÎÄ£º

VoucherType ¡ª¡ª µ¥¾ÝÀàÐÍ£¬¾ßÌåÀàÐͲο´APIÉÏÏÂÎÄÃèÊö bPositive ¡ª¡ª ºìÀ¶±êʶ£ºTrue,À¶×Ö £»False,ºì×Ö sBillType ¡ª¡ª Ϊ¿Õ´®

sBusType ¡ª¡ª ÒµÎñÀàÐÍ£ºÆÕͨ²É¹º,Ö±Ô˲ɹº,ÊÜÍдúÏú

? ×°ÔØµ¥¾Ý-Load·½·¨

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)