支付宝Payto接口的C#.net实现方法
例一:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text; public partial class pay : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Encoding gb2312 = Encoding.GetEncoding("gb2312");
Response.ContentEncoding = gb2312;
Request.ContentEncoding = gb2312;
} protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
{
Vlike_DB_read a = new Vlike_DB_read();
string zfb_ddh = a.get_zfb_id(Membership.GetUser().UserName, Convert.ToInt32(DropDownList1.SelectedValue));
Response.Redirect(img("", "包月", "影视包月 10元/月", zfb_ddh, "10.00", Membership.GetUser().UserName.ToUpper(), DropDownList1.SelectedValue));
}
else
{
Response.Write("<script type='text/javascript'>alert('请先登陆!');</script>");
}
} private string img(string strcmd, string strSub, string strSubinfo, string strid, string strMoney, string strUser, string strNum)
{
string strsellerEmail = "341081@qq.com"; //卖家支付宝帐号
string strAc = ""; //卖家支付宝安全校验码
string INTERFACE_URL = "https://www.alipay.com/payto:";
string strCmd = strcmd; //命令字
string strSubject = strSub; //商品名
string strBody = strSubinfo; //商品描述
string strOrder_no = strid; //商户订单号
string strPrice = strMoney; //商品单价 0.01~50000.00
string rurl = "http://"; //商品展示网址
string strType = ""; //type支付类型 1:商品购买2:服务购买3:网络拍卖4:捐赠
string strNumber = strNum; //购买数量
string strTransport = ""; //发货方式 1:平邮2:快递3:虚拟物品
string strOrdinary_fee = ""; //平邮运费
string strExpress_fee = ""; //快递运费
string strReadOnly = "true"; //交易信息是否只读
string strBuyer_msg = ""; //买家给卖家的留言 string strBuyer = ""; //买家EMAIL
string strBuyer_name = strUser; //买家姓名
string strBuyer_address = ""; //买家地址
string strBuyer_zipcode = ""; //买家邮编
string strBuyer_tel = ""; //买家电话号码
string strBuyer_mobile = ""; //买家手机号码
string strPartner = ""; //合作伙伴ID 保留字段 return CreatUrl(strsellerEmail, strAc, INTERFACE_URL, strCmd, strSubject, strBody,
strOrder_no, strPrice, rurl, strType, strNumber, strTransport,
strOrdinary_fee, strExpress_fee, strReadOnly, strBuyer_msg, strBuyer,
strBuyer_name, strBuyer_address, strBuyer_zipcode, strBuyer_tel,
strBuyer_mobile, strPartner);
}
private string CreatUrl(
string strsellerEmail,
string strAc,
string INTERFACE_URL,
string strCmd,
string strSubject,
string strBody,
string strOrder_no,
string strPrice,
string rurl,
string strType,
string strNumber,
string strTransport,
string strOrdinary_fee,
string strExpress_fee,
string strReadOnly,
string strBuyer_msg,
string strBuyer,
string strBuyer_name,
string strBuyer_address,
string strBuyer_zipcode,
string strBuyer_tel,
string strBuyer_mobile,
string strPartner)
{ //以下参数值不能留空 string str2CreateAc = "";
str2CreateAc += "cmd" + strCmd + "subject" + strSubject;
str2CreateAc += "body" + strBody;
str2CreateAc += "order_no" + strOrder_no;
str2CreateAc += "price" + strPrice;
str2CreateAc += "url" + rurl;
str2CreateAc += "type" + strType;
str2CreateAc += "number" + strNumber;
str2CreateAc += "transport" + strTransport;
str2CreateAc += "ordinary_fee" + strOrdinary_fee;
str2CreateAc += "express_fee" + strExpress_fee;
str2CreateAc += "readonly" + strReadOnly;
str2CreateAc += "buyer_msg" + strBuyer_msg;
str2CreateAc += "seller" + strsellerEmail;
str2CreateAc += "buyer" + strBuyer;
str2CreateAc += "buyer_name" + strBuyer_name;
str2CreateAc += "buyer_address" + strBuyer_address;
str2CreateAc += "buyer_zipcode" + strBuyer_zipcode;
str2CreateAc += "buyer_tel" + strBuyer_tel;
str2CreateAc += "buyer_mobile" + strBuyer_mobile;
str2CreateAc += "partner" + strPartner;
str2CreateAc += strAc; string acCode = GetMD5(str2CreateAc); string parameter = ""; parameter += INTERFACE_URL + strsellerEmail + "?cmd=" + strCmd;
parameter += "&subject=" + Server.UrlEncode(strSubject);
parameter += "&body=" + Server.UrlEncode(strBody);
parameter += "&order_no=" + strOrder_no;
parameter += "&url=" + rurl;
parameter += "&price=" + strPrice;
parameter += "&type=" + strType;
parameter += "&number=" + strNumber;
parameter += "&transport=" + strTransport;
parameter += "&ordinary_fee=" + strOrdinary_fee;
parameter += "&express_fee=" + strExpress_fee;
parameter += "&readonly=" + strReadOnly;
parameter += "&buyer_msg=" + strBuyer_msg;
parameter += "&buyer=" + strBuyer;
parameter += "&buyer_name=" + Server.UrlEncode(strBuyer_name);
parameter += "&buyer_address=" + strBuyer_address;
parameter += "&buyer_zipcode=" + strBuyer_zipcode;
parameter += "&buyer_tel=" + strBuyer_tel;
parameter += "&buyer_mobile=" + strBuyer_mobile;
parameter += "&partner=" + strPartner;
parameter += "&ac=" + acCode; return parameter;
} private static string GetMD5(string s)
{
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] t = md5.ComputeHash(System.Text.Encoding.GetEncoding("gb2312").GetBytes(s));
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = ; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(, ''));
}
return sb.ToString();
}
} 接收支付宝信息并进行相应操作 <%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Security.Cryptography" %> <script type="text/C#" runat="server">
private string returnTxt = "N"; //返回给支付宝通知接口的结果
private string alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?"; //支付宝查询接口URL
private string myalipayEmail = "341081@qq.com"; //商户的支付宝Email
private string constPaySecurityCode = ""; //码
private SqlConnection conn = new SqlConnection(); private string GetMD5(string s)
{
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] t = md5.ComputeHash(System.Text.Encoding.GetEncoding("gb2312").GetBytes(s));
StringBuilder sb = new StringBuilder();
for (int i = ; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(, ''));
}
return sb.ToString();
} private String Get_Http(String a_strUrl, int timeout)
{
string strResult;
try
{
System.Net.HttpWebRequest myReq = (System.Net.HttpWebRequest) System.Net.HttpWebRequest.Create(a_strUrl);
myReq.Timeout = timeout;
System.Net.HttpWebResponse HttpWResp = (System.Net.HttpWebResponse) myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
StreamReader sr = new StreamReader(myStream, System.Text.Encoding.Default);
System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
while (- != sr.Peek())
{
strBuilder.Append(sr.ReadLine() + "\r\n");
}
strResult = strBuilder.ToString();
}
catch (Exception exp)
{
strResult = "错误:" + exp.Message;
}
return strResult;
}
public void send(string sql)
{
string dbconn = "data source=127.0.0.1;UID=Cm;PWD=fallenangel;database=text";
conn = new SqlConnection(dbconn);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
int aa = cmd.ExecuteNonQuery();
conn.Close();
} private void Page_Load(object sender, System.EventArgs e)
{
//检查支付宝通知接口传递过来的参数是否合法
string msg_id = System.Web.HttpContext.Current.Request["msg_id"];
string order_no = System.Web.HttpContext.Current.Request["order_no"];
string gross = System.Web.HttpContext.Current.Request["gross"];
string buyer_email = System.Web.HttpContext.Current.Request["buyer_email"];
string buyer_name = System.Web.HttpContext.Current.Request["buyer_name"];
string buyer_address = System.Web.HttpContext.Current.Request["buyer_address"];
string buyer_zipcode = System.Web.HttpContext.Current.Request["buyer_zipcode"];
string buyer_tel = System.Web.HttpContext.Current.Request["buyer_tel"];
string buyer_mobile = System.Web.HttpContext.Current.Request["buyer_mobile"];
string action = System.Web.HttpContext.Current.Request["action"];
string s_date = System.Web.HttpContext.Current.Request["date"];
string ac = System.Web.HttpContext.Current.Request["ac"];
string notify_type = System.Web.HttpContext.Current.Request["notify_type"];
alipayNotifyURL = alipayNotifyURL + "msg_id=" + msg_id + "&email=" + myalipayEmail + "&order_no=" + order_no; //获取支付宝ATN返回结果,true和false都是正确的订单信息,invalid 是无效的
string responseTxt = Get_Http(alipayNotifyURL, );
string Str = "msg_id" + msg_id + "order_no" + order_no + "gross" + gross + "buyer_email" + buyer_email + "buyer_name" + buyer_name + "buyer_address" + buyer_address + "buyer_zipcode" + buyer_zipcode + "buyer_tel" + buyer_tel + "buyer_mobile" + buyer_mobile + "action" + action + "date" + s_date + constPaySecurityCode; string ac_code = GetMD5(Str); if (action == "test") //支付宝接口测试是否有效
{
returnTxt = "Y";
}
if (action == "sendOff") //发货通知
{
if (responseTxt.Substring(, ) == "true"
|| responseTxt.Substring(, ) == "fals")//ATN,验证消息是否支付宝发过来
{
if (ac_code == ac)//验证消息是否被修改
{
//数据库操作
}
}
}
if (action == "checkOut") //交易完成通知
{
returnTxt = "N";
if (responseTxt.Substring(, ) == "true"
|| responseTxt.Substring(, ) == "fals")//ATN,验证消息是否支付宝发过来
{
if (ac_code == ac)//验证消息是否被修改
{
//数据库操作
}
}
}
System.Web.HttpContext.Current.Response.Write(returnTxt);
}
</script>
例二:
首先当项目中需要支付宝接口的时候,人家会给你一个Demo,里边代码很重要,基本都可以拿来复制黏贴,只需
改下参数而已。
2个接口的类是一样的,所以需要放在2个文件夹中,你也可以放在类库中。我是这样放的
App中是支付接口的类,外部是登录接口的类
首先需要把阴影的类中的几个参数修改下
static Config()
{
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ //合作身份者ID,以2088开头由16位纯数字组成的字符串
partner = ""; //交易安全检验码,由数字和字母组成的32位字符串
key = ""; //签约支付宝账号或卖家支付宝帐户
seller_email = ""; //页面跳转同步返回页面文件路径 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
return_url = "http://ozmb.inicp.com/zfbreturn.aspx"; //服务器通知的页面文件路径 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
notify_url = "http://ozmb.inicp.com/zfbreturn.aspx";
说明部分很清楚,我就不解释了
其他部分都不需要动!
支付宝快捷登录
这个接口很简单,2个页面,一个Send,一个return页面
using Com.Alipay;
///////Send页面,除了我的判断,其他都可以复制黏贴,类的引用要注意,根据你的文件夹所在来引用
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Member_Info"] == null && Session["App"]==null)
{
string anti_phishing_key = "";
//获取客户端的IP地址,建议:编写获取客户端IP地址的程序
string exter_invoke_ip = "";
//注意:
//请慎重选择是否开启防钓鱼功能
//exter_invoke_ip、anti_phishing_key一旦被设置过,那么它们就会成为必填参数
//建议使用POST方式请求数据
//示例:
//exter_invoke_ip = "";
//Service aliQuery_timestamp = new Service();
//anti_phishing_key = aliQuery_timestamp.Query_timestamp(); //获取防钓鱼时间戳函数 //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组
SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
sParaTemp.Add("anti_phishing_key", anti_phishing_key);
sParaTemp.Add("exter_invoke_ip", exter_invoke_ip); //构造快捷登录接口表单提交HTML数据,无需修改
Service ali = new Service();
string sHtmlText = ali.Alipay_auth_authorize(sParaTemp);
Response.Write(sHtmlText);
}
else if (Session["Member_Info"] != null)
{
Response.Write("<script>alert('你已经登录,请先退出在进行支付宝登录!');location.href='index.aspx';</script>");
}
else if (Session["App"] != null)
{
Response.Write("<script>alert('你已经登录过了!');location.href='index.aspx';</script>");
}
}
} //下边是返回页面return。一个泛型方法不要忘记。除了我的判断其他可以直接复制黏贴
using Com.Alipay; public partial class zfblogin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SortedDictionary<string, string> sPara = GetRequestGet(); if (sPara.Count > )//判断是否有带返回参数
{
Notify aliNotify = new Notify();
bool verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]); if (verifyResult)//验证成功
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
//获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
string user_id = Request.QueryString["user_id"];//支付宝用户id
string token = Request.QueryString["token"]; //授权令牌
Label4.Text = user_id.ToString();
Session["token"] = token;
Session["App"] = user_id;
}
else {
Response.Write("<script>alert('登录失败');location.href='index.aspx'</script>");
}
}
else
{
Response.Write("<script>alert('登录失败');location.href='index.aspx'</script>");
} }
}
public SortedDictionary<string, string> GetRequestGet()
{
int i = ;
SortedDictionary<string, string> sPara = new SortedDictionary<string, string>();
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.QueryString; // Get names of all forms into a string array.
String[] requestItem = coll.AllKeys; for (i = ; i < requestItem.Length; i++)
{
sPara.Add(requestItem[i], Request.QueryString[requestItem[i]]);
} return sPara;
}
}
还是2个页面,一个是Send,一个还是return。传参页面主要是传递需要的:价格,收货人,电话等等信息,
返回页面是当用户支付完毕后,判断支付是否成功,返回到支付网页上来
// 这个是传参层,具体哪些需要填写都很清楚
else if (RadioButtonList1.SelectedValue == "支付宝支付")
{
Session["time2"]= DateTime.Now.ToString("yyyyMMddHHmmss");
ZFB();
string out_trade_no =Session["time2"].ToString(); //请与贵网站订单系统中的唯一订单号匹配
string subject = "蔓越莓支付宝支付:" + Session["time2"].ToString(); //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。
string body = "配送方式:"+RadioButtonList2.SelectedValue+",来自:蔓越莓,订单号:"+Session["time2"].ToString(); //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
string price = Label8.Text.Trim(); //订单总金额,显示在支付宝收银台里的“商品单价”里 string logistics_fee = double.Parse(Label7.Text)+""; //物流费用,即运费。
string logistics_type = "EXPRESS"; //物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
string logistics_payment = "SELLER_PAY"; //物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) string quantity = ""; //商品数量,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品。 //选填参数// //买家收货信息(推荐作为必填)
//该功能作用在于买家已经在商户网站的下单流程中填过一次收货信息,而不需要买家在支付宝的付款流程中再次填写收货信息。
//若要使用该功能,请至少保证receive_name、receive_address有值
//收货信息格式请严格按照姓名、地址、邮编、电话、手机的格式填写
string receive_name = UserName.Text; //收货人姓名,如:张三
string receive_address = ddlProvince.SelectedValue + Request.Form["ddlCity"].ToString() + Address.Text; //收货人地址,如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
string receive_zip = "";
if (Zip.Text != "")
{
receive_zip = Zip.Text; //收货人邮编,如:123456
}
else
{
receive_zip = "未填写";
}
string receive_phone = "";
if (Phone.Text != "")
{
receive_phone = Phone.Text; //收货人电话号码,如:0571-81234567
}
else
{
receive_phone = "未填写";
}
string receive_mobile = Mobile.Text; //收货人手机号码,如:13312341234 //网站商品的展示地址,不允许加?id=123这类自定义参数
string show_url = ""; //快捷登录用令牌授权码,该参数的值由快捷登录接口(alipay.auth.authorize)的页面跳转同步通知参数中获取
string token = "";
//注意:
//token的有效时间为30分钟,过期后需重新执行快捷登录接口(alipay.auth.authorize)获得新的token //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组
SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
sParaTemp.Add("body", body);
sParaTemp.Add("logistics_fee", logistics_fee);
sParaTemp.Add("logistics_payment", logistics_payment);
sParaTemp.Add("logistics_type", logistics_type);
sParaTemp.Add("out_trade_no", out_trade_no);
sParaTemp.Add("payment_type", "");
sParaTemp.Add("price", price);
sParaTemp.Add("quantity", quantity);
sParaTemp.Add("receive_address", receive_address);
sParaTemp.Add("receive_mobile", receive_mobile);
sParaTemp.Add("receive_name", receive_name);
sParaTemp.Add("receive_phone", receive_phone);
sParaTemp.Add("receive_zip", receive_zip);
sParaTemp.Add("show_url", show_url);
sParaTemp.Add("subject", subject);
sParaTemp.Add("token", token); //构造标准双接口表单提交HTML数据,无需修改
Service ali = new Service();
string sHtmlText = ali.Trade_create_by_buyer(sParaTemp);
Response.Write(sHtmlText);
} //下边是个返回层,判断是否支付成功,当成功我需要把订单加到数据
using Com.Alipay;
using System.Collections.Specialized; public partial class zfb_success : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SortedDictionary<string, string> sPara = GetRequestGet(); if (sPara.Count > )//判断是否有带返回参数
{
Notify aliNotify = new Notify();
bool verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]); if (verifyResult)//验证成功
{
string order_no = Request.QueryString["out_trade_no"];
string total_fee = Request.QueryString["price"];
if (Session["EOrder"] != null && Session["Cart2"] != null)
{
PageDataBind();
}
else if (Session["COrder"] != null && Session["Cart"] != null)
{
PageDataBind2();
}
else
{
this.table2.Visible = true;
this.table1.Visible = false;
}
}
else {
this.table1.Visible = true;
this.table2.Visible = false;
}
}
else {
this.table1.Visible = true;
this.table2.Visible = false;
}
}
}
////这个类不能忘记添加进来
public SortedDictionary<string, string> GetRequestGet()
{
int i = ;
SortedDictionary<string, string> sPara = new SortedDictionary<string, string>();
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.QueryString; // Get names of all forms into a string array.
String[] requestItem = coll.AllKeys; for (i = ; i < requestItem.Length; i++)
{
sPara.Add(requestItem[i], Request.QueryString[requestItem[i]]);
} return sPara;
}
其实支付宝的Demo很清晰,示例很详细,很不错。网银接口也一样,都只是需要修改一些参数,其他都是直接
复制黏贴罢了。
支付宝Payto接口的C#.net实现方法的更多相关文章
- Android开发---支付宝功能接口(支付功能)(转载!)
最近在做一个关于购物商城的项目,项目里面付款这块我选的是调用支付宝的接口,因为用的人比较多. 在网上搜索了以下,有很多这方面的教程,但大部分教程过于陈旧,而且描述的过于简单.而且支付宝提供的接口一直在 ...
- 微信退款和支付宝退款接口调用(java版)
项目中需要使用到微信和支付宝的退款功能,在这两天研究了一下这两个平台的退款,有很多坑,在开发中需要留意 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可 ...
- python调用支付宝支付接口
python调用支付宝支付接口详细示例—附带Django demo代码 项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公 ...
- python调用支付宝支付接口详细示例—附带Django demo代码
项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...
- Django 支付宝付款接口的使用
我们在开发的过程中经常会碰到调用微信或者支付宝接口进行付款,付款完成之后,如果用户绑定了我的账号,我只要有活动了,就要给这个关注我的用户推动消息,让用户知道,比如说,我们经常会关注一些公众号,然后这些 ...
- Cloneable接口和Object的clone()方法
为什么要克隆 为什么要使用克隆,这其实反映的是一个很现实的问题,假如我们有一个对象: public class SimpleObject implements Cloneable { private ...
- Java接口和抽象类的实现方法
一.java中的接口本质上是加约束的抽象类 //抽象类 public abstract class AExample { public abstract int add(int x,int y); p ...
- java--类继承和实现的接口中含有相同的方法
首先,说一下,当某一个类实现了两个接口的时候,两个接口中存在两个相同的方法,在实现的类中只需实现一个方法的方法体. 当一个类继承一个类,并且实现一个或者多个接口的时候,其中,父类和父接口中存在相同的方 ...
- 调用支付宝第三方接口(沙箱环境) SpringMVC+Maven
一.蚂蚁金服开放平台的操作 网址:https://open.alipay.com/platform/home.htm 支付宝扫码登陆
随机推荐
- Beta版本冲刺第四天 12.10
一.站立式会议照片: 二.项目燃尽图: Android端 后台 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 日期合理性的判断,一个是用户反馈的查看 管 ...
- 使用MVC过滤器保存操作日志
//定义过滤器 public class LogAttribute : ActionFilterAttribute { /// <summary> /// 以逗号间隔 /// </ ...
- Tortoise SVN 安装界面
Tortoise SVN 安装界面 TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费 第一步: 点击TortoiseSVN-1.6.6.17493-w ...
- js正则匹配浮点数或整数
var pos='point(12.4 -45.423453)';var re = /([+]\d+[.]\d+|[-]\d+[.]\d+|\d+[.]\d+|[+]\d+|[-]\d+|\d+)/i ...
- JavaWeb学习笔记——Ajax
- codeforces 697B Barnicle
题目链接:http://codeforces.com/problemset/problem/697/B 题目大意: 将科学计数法用十进制表示.[如果类似于7.0应输出7] 解题思路: Java 中 B ...
- Oracle数据库管理系统下对数据库操作常用命令
desc表名; /*查看表结构*/ alter table ...
- Unity3D Sprite Draw Call合批规则
只要材质相同,并Sprite在同一Atlas里,就可以合批. 不论Sorting Layer不同,还是Sorting Order不同. 材质相同的两个不同Sorting Order之间插入一个不同材质 ...
- 重载new操作符
http://book.51cto.com/art/201202/317799.htm
- Session的SqlServer模式的配置
很多时候,由于各种莫名其妙的原因,会导致session丢失.不过ASP.NET还允许将会话数据存储到一个数据库服务器中,方法是将mode属性变成SqlServer. 在这种情况下,ASP.NET尝试将 ...