Example #1
0
 public static string GetPrepayId(UnifiedOrder order, string key)
 {
     string prepay_id = "";
     string post_data = GetUnifiedOrderXml(order, key);
     string request_data = PostXmlToUrl(UnifiedPayUrl, post_data);
     SortedDictionary<string, string> requestXml = GetInfoFromXml(request_data);
     foreach(KeyValuePair<string, string> k in requestXml)
     {
         if(k.Key == "prepay_id")
         {
             prepay_id = k.Value;
             break;
         }
     }
     return prepay_id;
 }
Example #2
0
        private static string GetUnifiedOrderXml(UnifiedOrder order, string key)
        {
            string return_string = string.Empty;
            SortedDictionary<string, string> sParams = new SortedDictionary<string, string>();
            sParams.Add("appid", order.appid);
            sParams.Add("attach", order.attach);
            sParams.Add("body", order.body);
            sParams.Add("device_info", order.device_info);
            sParams.Add("mch_id", order.mch_id);
            sParams.Add("nonce_str", order.nonce_str);
            sParams.Add("notify_url", order.notify_url);
            sParams.Add("openid", order.openid);
            sParams.Add("out_trade_no", order.out_trade_no);
            sParams.Add("spbill_create_ip", order.spbill_create_ip);
            sParams.Add("total_fee", order.total_fee.ToString());
            sParams.Add("trade_type", order.trade_type);
            order.sign = GetSign(sParams, key);
            sParams.Add("sign", order.sign);

            StringBuilder sbPay = new StringBuilder();
            foreach (KeyValuePair<string, string> k in sParams)
            {
                if (k.Key == "attach" || k.Key == "body" || k.Key == "sign")
                {
                    sbPay.Append("<" + k.Key + "><![CDATA[" + k.Value + "]]></" + k.Key + ">");
                }
                else
                {
                    sbPay.Append("<" + k.Key + ">" + k.Value + "</" + k.Key + ">");
                }
            }
            return_string = string.Format("<xml>{0}</xml>", sbPay.ToString());
            byte[] byteArray = Encoding.UTF8.GetBytes(return_string);
            return_string = Encoding.GetEncoding("GBK").GetString(byteArray);
            return return_string;
        }
Example #3
0
        private string GetPrePayId(string ip)
        {
            UnifiedOrder order = new UnifiedOrder();
            order.appid = "xxx";
            order.attach = "version";
            order.body = 10 + "人民币";
            order.device_info = "";
            order.mch_id = "mch_id";
            order.nonce_str = WeixinPayUtil.GetNoncestr();
            order.notify_url = "http://localhost/sample/a.aspx";
            order.openid = "openid";
            order.out_trade_no = "order_id";
            order.trade_type = "JSAPI";
            order.spbill_create_ip = ip;
            order.total_fee = 10 * 100;

            return WeixinPayUtil.GetPrepayId(order, "paySignKey");
        }