private WxPayData UnifiedOrder(AlipayOrder fee) { //统一下单 WxPayData req = new WxPayData(); if (fee != null && fee.orderNo != null && fee.orderNo.ToString() != "") { int total_fee = 0; if (int.TryParse(fee.amount.ToString(), out total_fee)) { req.SetValue("body", fee.feeName); req.SetValue("attach", fee.fee_des); req.SetValue("out_trade_no", fee.orderNo); req.SetValue("total_fee", total_fee); } } req.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); req.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); req.SetValue("goods_tag", "jzxx"); req.SetValue("trade_type", "APP"); WxPayData result = WxPayApi.UnifiedOrder(req); return(result); }
private WxPayData UnifiedOrder(AlipayOrder fee) { //统一下单 WxPayData req = new WxPayData(); if (fee != null) { int total_fee = 1; int amount = 1; if (int.TryParse(fee.amount.ToString(), out total_fee) && total_fee > 0) { if (com.zgyey.sgspay.common.AppSetting.Contains(com.zgyey.sgspay.common.AppSetting.DemoFeeids, fee.feeid.ToString())) { amount = 1; } else { amount = total_fee * 100; } req.SetValue("body", fee.feeName); req.SetValue("attach", fee.fee_des); req.SetValue("out_trade_no", fee.orderNo); req.SetValue("total_fee", amount); } } req.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); req.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); req.SetValue("goods_tag", "SGS"); req.SetValue("trade_type", "APP"); WxPayData result = WxPayApi.UnifiedOrder(req); return(result); }
private AlipayOrder GetFee(string uid, string feeid, string from, string paytype, string key) { AlipayOrder fee = null; DataMsg m = new DataMsg(); BaseModel <DataSet> bs = null; //创建订单 IList <TextAndValue> tv = new List <TextAndValue>(); tv.Add(new TextAndValue("@uid", uid)); tv.Add(new TextAndValue("@feeid", feeid)); tv.Add(new TextAndValue("@from", from)); isFrom(tv, key); tv.Add(new TextAndValue("@paytype", paytype)); //1:支付宝,2:微信支付 string out_trade_no = WxPayApi.GenerateOutTradeNo(from); //请与贵网站订单系统中的唯一订单号匹配 tv.Add(new TextAndValue("@orderno", out_trade_no)); bs = com.zgyey.sgspay.core.DataProxy.SGS_PAYProxyData.GetList(tv, "payapp..sgs_CreateOrder", "tb1", "tb2"); DataSet ds = bs.result; m.code = int.Parse(ds.Tables[0].Rows[0][0].ToString()); m.info = ds.Tables[0].Rows[0][1].ToString(); if (m.code == 0) { fee = ( from x in ds.Tables[1].AsEnumerable() select new AlipayOrder() { feeid = x["fee_id"], orderNo = x["order_no"], feeName = x["fee_name"], fee_des = x["fee_des"], amount = x["fee_money"], crttime = DateTime.Parse(x["crttime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"), paytype = paytype } ).ToList()[0]; } return(fee); }
public WxPayData ProcessOrder(string openid, string product_id, string out_trade_no) { IList <TextAndValue> tv = new List <TextAndValue>(); tv.Add(new TextAndValue("@uid", openid)); tv.Add(new TextAndValue("@feeid", product_id)); tv.Add(new TextAndValue("@paytype", "2"));//1:支付宝,2:微信支付 tv.Add(new TextAndValue("@orderno", out_trade_no)); BaseModel <DataSet> bs = com.zgyey.sgspay.core.DataProxy.SGS_PAYProxyData.GetList(tv, "fmcapp..jzxx_CreateOrder", "tb1", "tb2"); DataSet ds = bs.result; AlipayOrder fee = new AlipayOrder(); if (int.Parse(ds.Tables[0].Rows[0][0].ToString()) == 0) { fee = ( from x in ds.Tables[1].AsEnumerable() select new AlipayOrder() { orderNo = x["order_no"], feeName = x["fee_name"], fee_des = x["fee_des"], amount = x["fee_money"] } ).ToList()[0]; } //调统一下单接口,获得下单结果 WxPayData unifiedOrderResult = new WxPayData(); try { unifiedOrderResult = UnifiedOrder(fee); } catch (Exception ex)//若在调统一下单接口时抛异常,立即返回结果给微信支付后台 { WxPayData res = new WxPayData(); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", "统一下单失败"); Log.Error(this.GetType().ToString(), "UnifiedOrder failure : " + res.ToXml()); return(res); } //若下单失败,则立即返回结果给微信支付后台 if (!unifiedOrderResult.IsSet("appid") || !unifiedOrderResult.IsSet("mch_id") || !unifiedOrderResult.IsSet("prepay_id")) { WxPayData res = new WxPayData(); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", "统一下单失败"); Log.Error(this.GetType().ToString(), "UnifiedOrder failure : " + res.ToXml()); return(res); } //统一下单成功,则返回成功结果给微信支付后台 WxPayData data = new WxPayData(); data.SetValue("return_code", "SUCCESS"); data.SetValue("return_msg", "OK"); data.SetValue("appid", WxPayConfig.APPID); data.SetValue("mch_id", WxPayConfig.MCHID); data.SetValue("nonce_str", WxPayApi.GenerateNonceStr()); data.SetValue("prepay_id", unifiedOrderResult.GetValue("prepay_id")); data.SetValue("result_code", "SUCCESS"); data.SetValue("err_code_des", "OK"); data.SetValue("sign", data.MakeSign()); Log.Info(this.GetType().ToString(), "UnifiedOrder success , send data to WeChat : " + data.ToXml()); return(data); }
public BaseModel <Object> ProcessOrder(string uid, string feeid, string from, string paytype, string key) { //调统一下单接口,获得下单结果 WxPayData unifiedOrderResult = new WxPayData(); BaseModel <Object> resultData = new BaseModel <Object>(); try { AlipayOrder fee = GetFee(uid, feeid, from, paytype, key); unifiedOrderResult = UnifiedOrder(fee); //若下单失败,则立即返回结果给微信支付后台 if (!unifiedOrderResult.IsSet("appid") || !unifiedOrderResult.IsSet("mch_id") || !unifiedOrderResult.IsSet("prepay_id")) { WxPayError err = new WxPayError(); err.return_code = "FAIL"; err.return_msg = "统一下单失败"; resultData.code = 1; resultData.info = "统一下单失败"; resultData.result = err; return(resultData); } //统一下单成功,则返回成功结果给微信支付后台 //WxPayData data = new WxPayData(); //data.SetValue("return_code", "SUCCESS"); //data.SetValue("return_msg", "OK"); //data.SetValue("appid", WxPayConfig.APPID); //data.SetValue("mch_id", WxPayConfig.MCHID); //data.SetValue("key", WxPayConfig.KEY);//key //data.SetValue("nonce_str", WxPayApi.GenerateNonceStr()); //data.SetValue("prepay_id", unifiedOrderResult.GetValue("prepay_id")); //data.SetValue("result_code", "SUCCESS"); //data.SetValue("err_code_des", "OK"); //int amount = 0; //int.TryParse(fee.amount.ToString(), out amount); //data.SetValue("out_trade_no", fee.orderNo); //data.SetValue("fee_money", amount); //data.SetValue("fee_name", fee.feeName); //data.SetValue("fee_des", fee.fee_des); //data.SetValue("paytype", fee.paytype); //data.SetValue("crttime", fee.crttime); //data.SetValue("sign", data.MakeSign()); int amount = 0; if (com.zgyey.sgspay.common.AppSetting.Contains(com.zgyey.sgspay.common.AppSetting.DemoFeeids, feeid)) { amount = 1; } else { if (!int.TryParse(fee.amount.ToString(), out amount)) { amount = 100; } } object prepay_id = unifiedOrderResult.GetValue("prepay_id"); WxPaySuccess wp = new WxPaySuccess() { return_code = "SUCCESS", return_msg = "OK", appid = WxPayConfig.APPID, mch_id = WxPayConfig.MCHID, key = WxPayConfig.KEY,//key nonce_str = WxPayApi.GenerateNonceStr(), prepay_id = prepay_id, result_code = "SUCCESS", err_code_des = "OK", out_trade_no = fee.orderNo.ToString(), fee_money = amount, fee_name = fee.feeName.ToString(), fee_des = fee.fee_des.ToString(), paytype = fee.paytype, crttime = fee.crttime }; resultData.code = 0; resultData.info = "统一下单成功"; resultData.result = wp; Log.Info(this.GetType().ToString(), "UnifiedOrder success , send data to WeChat : " + LitJson.JsonMapper.ToJson(wp)); return(resultData); } catch (Exception ex)//若在调统一下单接口时抛异常,立即返回结果给微信支付后台 { WxPayError err = new WxPayError(); err.return_code = "FAIL"; err.return_msg = "统一下单失败"; resultData.code = 1; resultData.info = "统一下单失败"; resultData.result = err; Log.Error(this.GetType().ToString(), "UnifiedOrder failure : " + LitJson.JsonMapper.ToJson(err)); return(resultData); } }