private void GetQRImage(Hashtable Params) { DictSetUtil dictSet = new DictSetUtil(PickParam(Params).ExportDS()); DictSetUtil dictParams = new DictSetUtil(new DSUtil(dictSet.MyDS).SetFilter(DictSet.TableName, string.Format("{0} LIKE 'params.%'", DictSet.FN_MCCanShu)).ExportDS()); string s_id = PickParam(Params).GetValueAsString("v"); string u_id = PickParam(Params).GetValueAsString("u"); string a_id = PickParam(Params).GetValueAsString("a"); string orderId = new DictSetUtil(null).PushSLItem(s_id).PushSLItem(u_id).DoSignature(); List <string> aList = new List <string>(); aList.Add("parter=" + dictParams.GetValue("params.customerid")); // 商户id,由分配 aList.Add("type=" + dictParams.GetValue("params.paytype")); //银行类型,具体请参考附录1 aList.Add("value=" + a_id); //单位元(人民币),2位小数,最小支付金额为0.02 aList.Add("orderid=" + "12345678910"); // 商户系统订单号,该订单号将作为接口的返回数据。该值需在商户系统内唯一,系统暂时不检查该值是否唯一 aList.Add("callbackurl=" + dictParams.GetValue("params.callbackurl")); //下行异步通知过程的返回地址,需要以http://开头且没有任何参数 string sign = PaymentUtil.EncryptMD5(string.Join("&", aList) + dictParams.GetValue("params.paymentkey")); aList.Add("refbackurl=" + dictParams.GetValue("params.refbackurl")); // 页面通知地址 aList.Add("payerIp=127.0.0.1"); //用户在下单时的真实IP,接口将会判断玩家支付时的ip和该值是否相同。若不相同,接口将提示用户支付风险(可为空) aList.Add("attach=test"); //备注信息,下行中会原样返回。若该值包含中文,请注意编码 aList.Add("sign=" + sign); // 签名信息 ,MD5 后32位小写 string postDataStr = string.Join("&", aList); HttpWebRequest aRequest = (HttpWebRequest)WebRequest.Create("http://pay.shengyuanpay.com/chargebank.aspx" + (postDataStr == "" ? "" : "?") + postDataStr); aRequest.Method = "GET"; aRequest.ContentType = "text/html; charset=UTF-8"; using (HttpWebResponse postResponse = aRequest.GetResponse() as HttpWebResponse) { using (StreamReader aStream = new StreamReader(postResponse.GetResponseStream(), Encoding.UTF8)) { string retString = aStream.ReadToEnd(); } } }
private void GetQRImage(Hashtable Params) { DictSetUtil dictSet = new DictSetUtil(PickParam(Params).ExportDS()); DictSetUtil dictParams = new DictSetUtil(new DSUtil(dictSet.MyDS).SetFilter(DictSet.TableName, string.Format("{0} LIKE 'params.%'", DictSet.FN_MCCanShu)).ExportDS()); string s_id = PickParam(Params).GetValueAsString("v"); string u_id = PickParam(Params).GetValueAsString("u"); string a_id = PickParam(Params).GetValueAsString("a"); string orderId = new DictSetUtil(null).PushSLItem(s_id).PushSLItem(u_id).DoSignature(); List <string> aList = new List <string>(); /*------------天下付---------------- * //aList.Add("customerid=" + dictParams.GetValue("params.customerid")); // 商户ID * //aList.Add("paytype=" + dictParams.GetValue("params.paytype")); // 支付方式 * //aList.Add("total_fee=" + a_id); // 支付金额 * //aList.Add("sdorderno=" + orderId); // 商户平台唯一订单号 * //aList.Add("notifyurl=" + dictParams.GetValue("params.notifyurl")); // 商户异步回调通知地址 * //aList.Add("returnurl=" + dictParams.GetValue("params.returnurl")); // 商户同步通知地址 * //aList.Add("version=" + dictParams.GetValue("params.version")); // 版本号 * //aList.Add("remark="); //备注(可为空) * //aList.Add("bankcode="); // 网银直连不可为空,其他支付方式可为空 * //aList.Add("sign="+ PaymentUtil.EncryptMD5(string.Join("&", aList)+"&"+ dictParams.GetValue("params.paymentkey")));// 签名 * ------------------------------------*/ aList.Add("Amount=" + a_id.Split('.')[0]); aList.Add("MerNo=" + dictParams.GetValue("params.customerid")); // 商户号 aList.Add("NotifyUrl=" + dictParams.GetValue("params.notifyurl")); //异步通知URL aList.Add("PdtName=" + "测试账户"); //商品名称,不可空 aList.Add("ProductId=" + dictParams.GetValue("params.ProductId")); // 产品类型(0601:微信扫码,0602 :支付宝扫码,0603 :银联扫码,0604 :QQ扫码) aList.Add("Remark=test"); //备注(可为空) aList.Add("ReturnUrl=" + dictParams.GetValue("params.returnurl")); // 页面通知地址 aList.Add("TxCode=" + dictParams.GetValue("params.TxCode")); // 交易编码 ,默认值 :210110 aList.Add("TxSN=" + DateTime.Now.ToString("yyyyMMddHHmmss")); // AosuApp.Functions.ToTimestamp(DateTime.Now)商户交易流水号 唯一orderId string sign = PaymentUtil.EncryptMD5(HttpUtility.UrlEncode(PaymentUtil.Encode(string.Join("&", aList)), Encoding.UTF8) + dictParams.GetValue("params.paymentkey")); aList.Add("Signature=" + sign); // 签名信息 ,MD5 后32位小写 aList.Add("SignMethod=" + "MD5"); // 签名方法 ,默认值 :MD5 byte[] data = Encoding.UTF8.GetBytes(string.Join("&", aList)); //http://pay.095pay.com/api/order/pay HttpWebRequest aRequest = HttpWebRequest.Create("http://api.1yigou.com.cn:8881/merchant-trade-api/command") as HttpWebRequest; aRequest.Method = "POST"; aRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; aRequest.ContentLength = data.Length; using (Stream postStream = aRequest.GetRequestStream()) { postStream.Write(data, 0, data.Length); } using (HttpWebResponse postResponse = aRequest.GetResponse() as HttpWebResponse) { using (StreamReader aStream = new StreamReader(postResponse.GetResponseStream(), Encoding.UTF8)) { txf_qr_response response_data = AosuApp.DataToJsonString.Deserialize <txf_qr_response>(aStream.ReadToEnd()); if (response_data != null) { switch (response_data.Status) { case 1: //PickParam(Params).SetParam(response_data); //PickParam(Params).SetParam(imgstream); //PickParam(Params).SetParam("content-type", "image/png"); using (HttpWebResponse response = HttpWebRequest.Create(response_data.ImgUrl).GetResponse() as HttpWebResponse) { using (Image img = new Bitmap(response.GetResponseStream())) { MemoryStream ms = new MemoryStream(); img.Save(ms, System.Drawing.Imaging.ImageFormat.Png); PickParam(Params).SetParam(ms.ToArray()); PickParam(Params).SetParam("content-type", "image/png"); } } break; default: PickParam(Params).SetError(response_data.RspCod + response_data.RspMsg); break; } } } } }