chinapay扫码支付
来源:互联网 发布:gre数学难吗 知乎 编辑:程序博客网 时间:2024/04/30 00:56
/// <summary> /// 提交订单获取支付二维码 /// </summary> /// <param name="amount"></param> /// <param name="order_no"></param> /// <returns></returns> public string GetChinaPay(decimal amount, string order_no) { string resultStr = "0"; Hashtable myMap = new Hashtable(); myMap.Add("MerId", " "); myMap.Add("MerOrderNo", order_no); myMap.Add("TranDate", DateTime.Now.ToString("yyyyMMdd")); myMap.Add("TranTime", DateTime.Now.ToString("HHmmss")); myMap.Add("OrderAmt", (amount * 100).ToString("0")); myMap.Add("TranType", "0001"); myMap.Add("BusiType", "0001"); myMap.Add("AccessType", "0"); myMap.Add("MerPageUrl", frontUrl); myMap.Add("MerBgUrl", backUrl); myMap.Add("CurryNo", "CNY"); myMap.Add("CommodityMsg", "支付订单"); myMap.Add("PayTimeOut", "145"); myMap.Add("Version", "20140728"); myMap.Add("OrderReserved", "{\"OrderType\":\"0001\"}"); chinapaysecure.SecssUtil obj = new chinapaysecure.SecssUtil(); obj.init(chinaPayFile); NetLog.WriteTextLog("log", chinaPayFile, DateTime.Now, ""); obj.sign(myMap); String signature = obj.getSign(); if ("00" == obj.getErrCode()) { myMap.Add("Signature", signature); string parmas = ""; int i = 0; foreach (DictionaryEntry de in myMap) { if (i > 0) { parmas += "&"; } parmas += de.Key + "=" + HttpUtility.UrlEncode(de.Value.ToString(), Encoding.UTF8); //parmas += de.Key + "=" + de.Value; i++; } string result = Post("http://www.chinapay.com/cofcoko/bgTransGet", parmas); string code = ""; string PayReserved = ""; string[] results = result.Split('&'); for (int s = 0; s < results.Length; s++) { if (results[s].Split('=')[0] == "respCode") { code = results[s].Split('=')[1]; } else if (results[s].Split('=')[0] == "PayReserved") { PayReserved = results[s].Replace("PayReserved=", ""); } } if (code == "0000") { Dictionary<string, object> res = JsonHelper.DataRowFromJSON(PayReserved); foreach (var item in res) { if (item.Key == "QrCode") { resultStr = item.Value.ToString(); break; } } } } return resultStr; } /// <summary> /// chinapay应答验签 /// </summary> /// <param name="dataStr"></param> /// <returns></returns> public string CheckChinaPay(string dataStr) { string result = ""; try { if (!string.IsNullOrEmpty(dataStr)) { Hashtable myMap = new Hashtable(); string order_no = "", amount = ""; //dataStr = HttpUtility.UrlDecode(dataStr); string[] infos = dataStr.Split('&'); for (int i = 0; i < infos.Length; i++) { string[] item = infos[i].Split('='); if (item.Length == 2 && item[0] == "MerOrderNo") { order_no = item[1]; } else if (item.Length == 2 && item[0] == "OrderAmt") { amount = item[1]; } myMap.Add(item[0], HttpUtility.UrlDecode(item[1], Encoding.UTF8)); } SecssUtil obj = new SecssUtil(); obj.init(chinaPayFile); //初始化安全控件: obj.verify(myMap); if (obj.getErrCode() != "00") { result = obj.getErrMsg(); } else { result = order_no + "/" + amount; } } } catch (Exception e) { result = e.Message.ToString(); } return result; }/// <summary> /// HTTP POST方式请求数据 /// </summary> /// <param name="url">URL.</param> /// <param name="param">POST的数据</param> /// <returns></returns> public static string Post(string url, string param) { byte[] byteArray = Encoding.UTF8.GetBytes(param); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; //request.ContentLength = byteArray.Length; Stream requestStream = null; WebResponse response = null; string responseStr = null; try { requestStream = request.GetRequestStream(); requestStream.Write(byteArray, 0, byteArray.Length); requestStream.Close(); response = request.GetResponse(); if (response != null) { StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseStr = reader.ReadToEnd(); reader.Close(); } } catch (Exception) { throw; } finally { request = null; requestStream = null; response = null; } return responseStr; }
阅读全文
0 0
- chinapay扫码支付
- 什么是扫码支付
- 支付宝支付-扫码支付详解
- ChinaPay 支付接口接入 案例
- php实现扫码支付
- 微信支付-扫码支付备忘
- 微信支付扫码支付
- 支付宝网页扫码支付
- ChinaPay
- 银联电子支付 php chinapay
- 第三方支付之微信支付(扫码支付)
- 关于微信PC扫码支付
- 微信线下门店二维码扫码支付和退款
- 微信native扫码支付
- 微信开发之扫码支付
- 扫码领取支付宝红包
- 支付宝支付(网站支付,APP支付,扫码支付) Java服务端代码
- 微信支付—— 扫码支付
- Linux下的网络访问与权限
- 30分钟了解Enterprise Architect
- 容器技术与虚拟化技术理解
- 使用WebUploader客户端批量上传图片,后台使用springMVC接收实例
- C语言用while求n!
- chinapay扫码支付
- 文章标题
- Linux系统基础(九)
- 基于V4L2+OPENCV的摄像头采集与图像处理方案
- 合并K个有序链表
- CentOS7安装MySql5.7,防火墙关闭,修改防火墙开放端口
- 重学数据结构 完整顺序表(工程文件)
- 架构师之路(5)100亿数据1万属性数据架构设计
- RPC框架简单原理