Post() public static method

public static Post ( string url, string content, string contentType = "application/x-www-form-urlencoded" ) : string
url string
content string
contentType string
return string
Example #1
0
        public bool VerifyNotify(HttpRequestBase request, out WePayReturnModel model)
        {
            bool verifyResult = false;

            model = new WePayReturnModel();

            string requestXml = GetRequestXmlData(request);
            var    dic        = FromXml(requestXml);

            string returnCode = GetValueFromDic <string>(dic, "return_code");

            if (!string.IsNullOrEmpty(returnCode) && returnCode == "SUCCESS")//通讯成功
            {
                bool result = WePayNotifyValidation(dic);
                if (result)
                {
                    string transactionid = GetValueFromDic <string>(dic, "transaction_id");

                    if (!string.IsNullOrEmpty(transactionid))
                    {
                        string queryXml       = BuildQueryRequest(transactionid, dic);
                        string queryResult    = HTTPHelper.Post(WepayConfig.WEPAY_ORDERQUERY_URL, queryXml);
                        var    queryReturnDic = FromXml(queryResult);

                        if (ValidatonQueryResult(queryReturnDic))//查询成功
                        {
                            verifyResult      = true;
                            model.OutTradeNo  = GetValueFromDic <string>(dic, "out_trade_no");
                            model.TotalFee    = GetValueFromDic <decimal>(dic, "total_fee") / 100;
                            model.TradeNo     = transactionid;
                            model.TradeStatus = GetValueFromDic <string>(dic, "result_code");
                            model.ReturnXml   = BuildReturnXml("OK", "成功");
                        }
                        else
                        {
                            model.ReturnXml = BuildReturnXml("FAIL", "订单查询失败");
                        }
                    }
                    else
                    {
                        model.ReturnXml = BuildReturnXml("FAIL", "支付结果中微信订单号不存在");
                    }
                }
                else
                {
                    model.ReturnXml = BuildReturnXml("FAIL", "签名失败");
                }
            }
            else
            {
                string returnmsg;
                dic.TryGetValue("return_msg", out returnmsg);
                throw new Exception("异步通知错误:" + returnmsg);
            }

            return(verifyResult);
        }
Example #2
0
        /// <summary>
        /// 统一下单
        /// </summary>
        /// <returns></returns>
        private string UnifiedOrder(string orderNo, string productName, int totalFee, string customerIP, EnumWePayTradeType tradeType)
        {
            string requestXml = this.BuildRequest(orderNo, productName, totalFee, customerIP, tradeType);
            string resultXml  = HTTPHelper.Post(WepayConfig.WEPAY_PAY_URL, requestXml);

            var dic = FromXml(resultXml);

            string returnCode = "";

            dic.TryGetValue("return_code", out returnCode);

            if (returnCode == "SUCCESS")
            {
                if (tradeType == EnumWePayTradeType.APP)
                {
                    var prepay_id = GetValueFromDic <string>(dic, "prepay_id");
                    if (!string.IsNullOrEmpty(prepay_id))
                    {
                        return(BuildAppPay(prepay_id));
                    }
                    else
                    {
                        throw new Exception("支付错误:" + GetValueFromDic <string>(dic, "err_code_des"));
                    }
                }
                else if (tradeType == EnumWePayTradeType.NATIVE)
                {
                    string codeUrl = "";
                    dic.TryGetValue("code_url", out codeUrl);
                    if (!string.IsNullOrEmpty(codeUrl))
                    {
                        return(codeUrl);
                    }
                    else
                    {
                        throw new Exception("未找到对应的二维码链接");
                    }
                }
                else
                {
                    throw new Exception("JSAPI & WAP 未实现");
                }
            }
            else
            {
                throw new Exception("后台统一下单失败");
            }
        }