Beispiel #1
0
        /// <summary>
        /// eBay Verify
        /// </summary>
        public eBayItemVerifyResult Verify(string _id, string ta_id)
        {
            eBayItemsData info = new eBayItemDac().View(Query.EQ("_id", ObjectId.Parse(_id)));

            VerifyItemRequest req = new VerifyItemRequest();

            req.SiteID = info.site;
            req.EbayTokenID = new CommonBiz().GeteBayToken(info.ebay_acnt);
            if (info.itemno != null) req.InventoryID = Util.GetSafeString(info.itemno);

            JsonWriterSettings jset = new JsonWriterSettings();
            jset.OutputMode = JsonOutputMode.JavaScript;
            req.EbayItemInfo = Util.EncodeUTF8To64(info.dynamicData.ToJson<eBayItemsDataForSeller>(jset)); // base64(json)로 데이터 생성

            eBayItemVerifyResult result = new eBayItemVerifyResult();
            VerifyItemResponse res = new VerifyItemResponse();

            try
            {
                res = new ItemService(apiUrl).VerifyItem(req);
                if (res.Ack == AckType.Success) // Thrift 통신 성공
                {
                    if (res.Response.Ack == AckType.Success) // Verify 결과
                    {
                        result.Success = true;
                        result.Message = "Verify 성공하였습니다.";
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = "";
                        foreach (Dictionary<string, string> msg in res.Response.Messages)
                        {
                            foreach (string key in msg.Keys)
                            {
                                result.Message += "[" + key + "] " + msg[key] + "\n";
                            }
                        }
                    }
                }
                else
                {
                    result.Success = false;
                    result.Message = "Thrift 통신에 실패하였습니다.";
                }
            }
            catch (ThriftClientException tce)
            {
                result.Success = false;
                //result.Message = "알 수 없는 오류로 인하여 eBay 상품 Verify에 실패하였습니다.";
                result.Message = tce.Message;
            }
            catch (ThriftException te)
            {
                result.Success = false;
                //result.Message = "알 수 없는 오류로 인하여 eBay 상품 Verify에 실패하였습니다.";
                result.Message = te.ExceptionMessage;
            }
            catch (Exception ex)
            {
                result.Success = false;
                //result.Message = "알 수 없는 오류로 인하여 eBay 상품 Verify에 실패하였습니다.";
                result.Message = ex.Message;
            }

            // Verify 결과 저장
            // 심민섭 수정
            // 실패시 메세지 저장
            string ver_code = result.Success == true ? "성공" : "실패";
            new eBayItemDac().Save(Query.EQ("_id", ObjectId.Parse(_id)), Update.Set("ver_code", ver_code).Set("ver_message", result.Message));

            return result;
        }
 public void Read(TProtocol iprot)
 {
     TField field;
     iprot.ReadStructBegin();
     while (true)
     {
       field = iprot.ReadFieldBegin();
       if (field.Type == TType.Stop) {
     break;
       }
       switch (field.ID)
       {
     case 0:
       if (field.Type == TType.Struct) {
     Success = new VerifyItemResponse();
     Success.Read(iprot);
       } else {
     TProtocolUtil.Skip(iprot, field.Type);
       }
       break;
     case 1:
       if (field.Type == TType.Struct) {
     Te = new CBT.GEP.Thrift.Common.ThriftException();
     Te.Read(iprot);
       } else {
     TProtocolUtil.Skip(iprot, field.Type);
       }
       break;
     default:
       TProtocolUtil.Skip(iprot, field.Type);
       break;
       }
       iprot.ReadFieldEnd();
     }
     iprot.ReadStructEnd();
 }