private string GetResponseTxt(string notify_id) { string veryfy_url = AlipayConfig.ALI_HTTPS_VERYFY_URL + "&partner=" + AlipayConfig.ALI_PARTER + "¬ify_id=" + notify_id; string response = HTTPHelper.Get(veryfy_url, 120000); return(response); }
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); }
/// <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("后台统一下单失败"); } }