/// <summary> /// /// </summary> /// <param name="orderid"></param> /// <param name="orderAmt"></param> /// <param name="attach"></param> /// <param name="context"></param> /// <returns></returns> public string GetCodeUrl(string orderid, decimal orderAmt, string attach, HttpContext context) { RequestHandler Params = new RequestHandler(context); Params.setKey(TenpayUtil.key); Params.setParameter("appid", TenpayUtil.appid); Params.setParameter("mch_id", TenpayUtil.partner); Params.setParameter("nonce_str", TenpayUtil.getNoncestr()); Params.setParameter("body", "商城储值"); Params.setParameter("out_trade_no", orderid); Params.setParameter("total_fee", (orderAmt * 100).ToString("f0")); Params.setParameter("spbill_create_ip", "127.0.0.1"); Params.setParameter("notify_url", NotifyURL); Params.setParameter("trade_type", "NATIVE"); Params.setParameter("product_id", orderid); string sign = Params.CreateTenpaySign(); Params.setParameter("sign", sign); string xml = Params.parseXML(); LogWrite("Request=>" + xml); try { Hashtable xmlMap; string url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; string retXml = TenpayUtil.GetString(url , xml , "POST" , Encoding.UTF8 , 5 * 1000); LogWrite("retXml=>" + retXml); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(retXml); XmlNode root = xmlDoc.SelectSingleNode("xml"); if (root != null) { xmlMap = new Hashtable(); XmlNodeList xnl = root.ChildNodes; foreach (XmlNode xnf in xnl) { xmlMap.Add(xnf.Name, xnf.InnerText); } if (xmlMap["return_code"] != null && xmlMap["result_code"] != null && xmlMap["code_url"] != null) { if (xmlMap["return_code"].ToString() == "SUCCESS" && xmlMap["result_code"].ToString() == "SUCCESS") { return(xmlMap["code_url"].ToString()); } } } } catch (Exception exception) { ExceptionHandler.HandleException(exception); } return(string.Empty); }