Beispiel #1
0
        /// <summary>
        /// 下单XML
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        private static String GetOrderServiceRequestXml(SFDataEntity entity)
        {
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append("<Request service='OrderService' lang='zh-CN'>");
            strBuilder.Append("<Head>" + ClientCode + "</Head>");
            strBuilder.Append("<Body>");
            strBuilder.Append("<Order").Append(" ");
            strBuilder.Append("orderid='" + entity.SFOrderId + "" + "'").Append(" ");
            //返回顺丰运单号
            strBuilder.Append("is_gen_bill_no='1'").Append(" ");
            strBuilder.Append("express_type='6'").Append(" ");//express_type=6即日快
            //寄件方信息
            strBuilder.Append("j_company='" + entity.ShopName + "'").Append(" ");
            strBuilder.Append("j_contact='" + entity.SendRealName + "'").Append(" ");
            strBuilder.Append("j_tel='" + entity.SendTel + "'").Append(" ");
            strBuilder.Append("j_address='" + entity.SendAddress + "'").Append(" ");
            //收件方信息
            strBuilder.Append("d_company='" + entity.ResvRealName + "'").Append(" ");
            strBuilder.Append("d_contact='" + entity.ResvRealName + "'").Append(" ");
            strBuilder.Append("d_tel='" + entity.ResvTel + "'").Append(" ");
            strBuilder.Append("d_address='" + entity.ResvAddress + "'").Append(" ");
            strBuilder.Append("parcel_quantity='" + entity.ParcelQuantity + "'").Append(" ");//包裹数量为不为1则返回子母单
            strBuilder.Append("pay_method='" + entity.PayMethod + "'").Append(" ");
            if (entity.PayMethod == 1)
            {
                strBuilder.Append("custid='" + entity.SFYueJieCode + "'").Append(" ");
            }
            strBuilder.Append(" > ");
            //货物信息
            strBuilder.Append("<Cargo").Append(" ");
            strBuilder.Append("name='" + entity.GoodsName + "'").Append(" ");
            strBuilder.Append("count='" + entity.GoodsNum + "'").Append(" ");
            strBuilder.Append("unit='个'").Append(">");
            strBuilder.Append("</Cargo>");
            //其他服务信息 具体代码看  4.2.6. 增值服务下单属性说明
            if (!string.IsNullOrEmpty(entity.COD))
            {
                strBuilder.Append("<AddedService").Append(" ");
                strBuilder.Append("name='COD'").Append(" ");                           //代收货款
                strBuilder.Append("value='" + entity.COD + "'").Append(" ");           //代收价格
                strBuilder.Append("value1='" + entity.SFYueJieCode + "'").Append(">"); //代收卡号
                strBuilder.Append("</AddedService>");
            }
            if (!string.IsNullOrEmpty(entity.Insure))//此值不为空就说明保价了
            {
                strBuilder.Append("<AddedService").Append(" ");
                strBuilder.Append("name='INSURE'").Append(" ");                 //保价服务
                strBuilder.Append("value='" + entity.Insure + "'").Append(">"); //保值
                strBuilder.Append("</AddedService>");
            }
            strBuilder.Append("</Order>");
            strBuilder.Append("</Body>");
            strBuilder.Append("</Request>");
            return(strBuilder.ToString());
        }
Beispiel #2
0
        /// <summary>
        /// 下单 返回订单号
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public static OrderResponse OrderSubmit(SFDataEntity entity)
        {
            string            xml        = GetOrderServiceRequestXml(entity);
            string            verifyCode = MD5ToBase64String(xml + Checkword);
            string            result     = DoPost(requestUrl, xml, verifyCode);//这就得到了返回结果
            SFExpressResponse response   = XMLSerializer.DeserializeXML <SFExpressResponse>(result);

            if (response.Head == "OK")
            {
                return(response.Body.OrderResponse);
            }
            else
            {
                throw new Exception(response.ERROR.text ?? response.ERROR.code);
            }
        }