C# 支付宝接口
生成URL链接
using System;2
using System.Data;3
using System.Configuration;4
using System.Collections;5
using System.Web;6
using System.Web.Security;7
using System.Web.UI;8
using System.Web.UI.WebControls;9
using System.Web.UI.WebControls.WebParts;10
using System.Web.UI.HtmlControls;11
using System.Text;12

13
public partial class pay : System.Web.UI.Page14
{15
protected void Page_Load(object sender, EventArgs e)16
{17
Encoding gb2312 = Encoding.GetEncoding("gb2312");18
Response.ContentEncoding = gb2312;19
Request.ContentEncoding = gb2312;20
}21
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)22
{23
if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)24
{25
Vlike_DB_read a = new Vlike_DB_read();26
string zfb_ddh=a.get_zfb_id(Membership.GetUser().UserName,Convert.ToInt32(DropDownList1.SelectedValue));27
Response.Redirect(img("0001", "包月", "影视包月 10元/月", zfb_ddh, "10.00", Membership.GetUser().UserName.ToUpper(), DropDownList1.SelectedValue));28
}29
else 30
{31
Response.Write("<script type='text/javascript'>alert('请先登陆!');</script>");32
}33
}34

35
private string img(string strcmd, string strSub, string strSubinfo, string strid, string strMoney, string strUser, string strNum)36
{37
string strsellerEmail = "341081@qq.com"; //卖家支付宝帐号38
string strAc = ""; //卖家支付宝安全校验码39
string INTERFACE_URL = "https://www.alipay.com/payto:";40
string strCmd = strcmd; //命令字41
string strSubject = strSub; //商品名42
string strBody = strSubinfo; //商品描述43
string strOrder_no = strid; //商户订单号44
string strPrice = strMoney; //商品单价 0.01~50000.0045
string rurl = "http://"; //商品展示网址46
string strType = "2"; //type支付类型 1:商品购买2:服务购买3:网络拍卖4:捐赠47
string strNumber = strNum; //购买数量48
string strTransport = "3"; //发货方式 1:平邮2:快递3:虚拟物品49
string strOrdinary_fee = ""; //平邮运费50
string strExpress_fee = ""; //快递运费51
string strReadOnly = "true"; //交易信息是否只读52
string strBuyer_msg = ""; //买家给卖家的留言53

54
string strBuyer = ""; //买家EMAIL55
string strBuyer_name = strUser; //买家姓名56
string strBuyer_address = ""; //买家地址57
string strBuyer_zipcode = ""; //买家邮编58
string strBuyer_tel = ""; //买家电话号码59
string strBuyer_mobile = ""; //买家手机号码60
string strPartner = ""; //合作伙伴ID 保留字段61
return CreatUrl(strsellerEmail, strAc, INTERFACE_URL, strCmd, strSubject, strBody,62
strOrder_no, strPrice, rurl, strType, strNumber, strTransport,63
strOrdinary_fee, strExpress_fee, strReadOnly, strBuyer_msg, strBuyer,64
strBuyer_name, strBuyer_address, strBuyer_zipcode, strBuyer_tel,65
strBuyer_mobile, strPartner);66
}67
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)68
{ //以下参数值不能留空69

70
string str2CreateAc = "";71
str2CreateAc += "cmd" + strCmd + "subject" + strSubject;72
str2CreateAc += "body" + strBody;73
str2CreateAc += "order_no" + strOrder_no;74
str2CreateAc += "price" + strPrice;75
str2CreateAc += "url" + rurl;76
str2CreateAc += "type" + strType;77
str2CreateAc += "number" + strNumber;78
str2CreateAc += "transport" + strTransport;79
str2CreateAc += "ordinary_fee" + strOrdinary_fee;80
str2CreateAc += "express_fee" + strExpress_fee;81
str2CreateAc += "readonly" + strReadOnly;82
str2CreateAc += "buyer_msg" + strBuyer_msg;83
str2CreateAc += "seller" + strsellerEmail;84
str2CreateAc += "buyer" + strBuyer;85
str2CreateAc += "buyer_name" + strBuyer_name;86
str2CreateAc += "buyer_address" + strBuyer_address;87
str2CreateAc += "buyer_zipcode" + strBuyer_zipcode;88
str2CreateAc += "buyer_tel" + strBuyer_tel;89
str2CreateAc += "buyer_mobile" + strBuyer_mobile;90
str2CreateAc += "partner" + strPartner;91
str2CreateAc += strAc;92

93

94
string acCode = GetMD5(str2CreateAc);95

96
string parameter = "";97

98
parameter += INTERFACE_URL + strsellerEmail + "?cmd=" + strCmd;99
parameter += "&subject=" + Server.UrlEncode(strSubject);100
parameter += "&body=" + Server.UrlEncode(strBody);101
parameter += "&order_no=" + strOrder_no;102
parameter += "&url=" + rurl;103
parameter += "&price=" + strPrice;104
parameter += "&type=" + strType;105
parameter += "&number=" + strNumber;106
parameter += "&transport=" + strTransport;107
parameter += "&ordinary_fee=" + strOrdinary_fee;108
parameter += "&express_fee=" + strExpress_fee;109
parameter += "&readonly=" + strReadOnly;110
parameter += "&buyer_msg=" + strBuyer_msg;111
parameter += "&buyer=" + strBuyer;112
parameter += "&buyer_name=" + Server.UrlEncode(strBuyer_name);113
parameter += "&buyer_address=" + strBuyer_address;114
parameter += "&buyer_zipcode=" + strBuyer_zipcode;115
parameter += "&buyer_tel=" + strBuyer_tel;116
parameter += "&buyer_mobile=" + strBuyer_mobile;117
parameter += "&partner=" + strPartner;118
parameter += "&ac=" + acCode;119

120
return parameter;121
}122

123
private static string GetMD5(string s)124
{125

126
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();127
byte[] t = md5.ComputeHash(System.Text.Encoding.GetEncoding("gb2312").GetBytes(s));128
System.Text.StringBuilder sb = new System.Text.StringBuilder(32);129
for (int i = 0; i < t.Length; i++)130
{131
sb.Append(t[i].ToString("x").PadLeft(2, '0'));132
}133
return sb.ToString();134
}135
}136

接收支付宝信息并进行相应操作
<%@ Import NameSpace="System.Data.SqlClient"%>2
<%@ Import NameSpace="System.Data"%>3
<%@ Import NameSpace="System.Web"%>4
<%@ Import NameSpace="System.IO"%>5
<%@ Import NameSpace="System.Net"%>6
<%@ Import NameSpace="System.Text"%>7
<%@ Import NameSpace="System.Security.Cryptography"%>8
<%@ Page Language="C#"%>9

10
<script language="C#" runat="server"> 11
private string returnTxt = "N"; //返回给支付宝通知接口的结果12
private string alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?"; //支付宝查询接口URL13
private string myalipayEmail = "341081@qq.com"; //商户的支付宝Email14
private string constPaySecurityCode = ""; //码15
private SqlConnection conn = new SqlConnection();16
17
private string GetMD5(string s)18
{19
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();20
byte[] t = md5.ComputeHash(System.Text.Encoding.GetEncoding("gb2312").GetBytes(s));21
StringBuilder sb = new StringBuilder(32);22
for (int i = 0; i < t.Length; i++)23
{24
sb.Append(t[i].ToString("x").PadLeft(2, '0'));25
}26
return sb.ToString();27
}28
private String Get_Http(String a_strUrl,int timeout)29
{30
string strResult ; 31
try32
{33
System.Net.HttpWebRequest myReq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(a_strUrl) ;34
myReq.Timeout = timeout;35
System.Net.HttpWebResponse HttpWResp = (System.Net.HttpWebResponse)myReq.GetResponse();36
Stream myStream = HttpWResp.GetResponseStream () ;37
StreamReader sr = new StreamReader(myStream , System.Text.Encoding.Default);38
System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();39
while (-1 != sr.Peek())40
{41
strBuilder.Append(sr.ReadLine()+"\r\n");42
}43
strResult = strBuilder.ToString();44
}45
catch(Exception exp)46
{47

48
strResult = "错误:" + exp.Message ;49
}50
return strResult ;51
}52

53
public void send(string sql)54
{55
string dbconn = "data source=127.0.0.1;UID=Cm;PWD=fallenangel;database=text";56
conn = new SqlConnection(dbconn);57
conn.Open();58
SqlCommand cmd = new SqlCommand(sql, conn);59
int aa = cmd.ExecuteNonQuery();60
conn.Close();61
}62
63
private void Page_Load(object sender, System.EventArgs e)64
{ 65
//检查支付宝通知接口传递过来的参数是否合法66
string msg_id = System.Web.HttpContext.Current.Request["msg_id"];67
string order_no = System.Web.HttpContext.Current.Request["order_no"];68
string gross = System.Web.HttpContext.Current.Request["gross"];69
string buyer_email = System.Web.HttpContext.Current.Request["buyer_email"];70
string buyer_name = System.Web.HttpContext.Current.Request["buyer_name"];71
string buyer_address = System.Web.HttpContext.Current.Request["buyer_address"];72
string buyer_zipcode = System.Web.HttpContext.Current.Request["buyer_zipcode"];73
string buyer_tel = System.Web.HttpContext.Current.Request["buyer_tel"];74
string buyer_mobile = System.Web.HttpContext.Current.Request["buyer_mobile"];75
string action = System.Web.HttpContext.Current.Request["action"];76
string s_date = System.Web.HttpContext.Current.Request["date"];77
string ac = System.Web.HttpContext.Current.Request["ac"];78
string notify_type = System.Web.HttpContext.Current.Request["notify_type"];79

80
alipayNotifyURL = alipayNotifyURL + "msg_id=" + msg_id + "&email=" + myalipayEmail + "&order_no=" + order_no;81

82
83
//获取支付宝ATN返回结果,true和false都是正确的订单信息,invalid 是无效的84
string responseTxt=Get_Http(alipayNotifyURL,120000);85

86
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 ; 87
88
string ac_code=GetMD5(Str);89
90
if(action=="test") //支付宝接口测试是否有效91
{92
returnTxt = "Y";93
}94
if(action=="sendOff") //发货通知95
{96
if(responseTxt.Substring(0,4)=="true" || responseTxt.Substring(0,4)=="fals")//ATN,验证消息是否支付宝发过来 97
{98
if(ac_code==ac)//验证消息是否被修改99
{100
//数据库操作101
}102
}103
}104
if(action=="checkOut") //交易完成通知 105
{106
returnTxt = "N";107
if(responseTxt.Substring(0,4)=="true" || responseTxt.Substring(0,4)=="fals")//ATN,验证消息是否支付宝发过来 108
{109
if(ac_code==ac)//验证消息是否被修改110
{111
//数据库操作 112
}113
}114
}115
System.Web.HttpContext.Current.Response.Write(returnTxt);116
}117
</script>118
C# 支付宝接口的更多相关文章
- wap支付宝接口的问题
今天在支付宝接口开发时,遇到的两个坑 第一个: https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.8nHr4i& ...
- ThinkPHP实现支付宝接口功能
最近做系统,需要实现在线支付功能,毫不犹豫,选择的是支付宝的接口支付功能.这里我用的是即时到帐的接口,具体实现的步骤如下:一.下载支付宝接口包下载地址:https://doc.open.alipay. ...
- (实用篇)php支付宝接口用法分析
本文实例讲述了php支付宝接口用法.分享给大家供大家参考.具体分析如下: 现在流行的网站支持平台,支付宝当仁不让的老大了,现在我们就来告诉你如何使用支付宝api来做第三方支付,把支付宝放到自己网站来, ...
- 【转载】关于Alipay支付宝接口(Java版)
转载自:http://blog.163.com/lai_chao/blog/static/70340789201412724619514/ 1.alipay 双功能支付简介 2.alipay 提交支付 ...
- PHP支付宝接口RSA验证
这两天一直困扰的PHP RSA签名验证问题终于解决了,由于之前RSA接触的不多,再加上官方至今还未有PHP的SDK可供参考,因此走了一些弯路,写在这里和大家分享. 虽然支付宝官方还未提供相关SD ...
- android应用程序如何调用支付宝接口
最近在做一个关于购物商城的项目,项目里面付款这块我选的是调用支付宝的接口,因为用的人比较多. 在网上搜索了以下,有很多这方面的教程,但大部分教程过于陈旧,而且描述的过于简单.而且支付宝提供的接口一直在 ...
- [转]支付宝接口程序、文档及解读(ASP.NET)
本文转自:http://www.cnblogs.com/blodfox777/archive/2009/11/03/1595223.html 最近需要为网站加入支付宝的充值接口,而目前关于支付宝接口开 ...
- android应用程序如何调用支付宝接口(转)
最近在做一个关于购物商城的项目,项目里面付款这块我选的是调用支付宝的接口,因为用的人比较多. 在网上搜索了以下,有很多这方面的教程,但大部分教程过于陈旧,而且描述的过于简单.而且支付宝提供的接口一直在 ...
- android开发支付宝接口开发流程(密钥篇)
参考博客:http://blog.it985.com/12276.html 官方下载地址:http://download.alipay.com/public/api/base/WS_MOBILE_PA ...
- Android应用集成支付宝接口的简化
拿到支付宝接口的andriod demo后有点无语,集成一个支付服务而已,要在十几个java类之间引用来引用去,这样不仅容易导致应用本身代码结构的复杂化,调试起来也很累,于是操刀改造之: 该删的删,该 ...
随机推荐
- mkdir -p命令
如果要创建目录A并创建目录A的子目录B,没有用-p的情况下是mkdir 2次如果用-p 可以直接创建2个目录 mkdir -p 目录A/子目录B就可以
- 编译及load mydqli.so文件
(1)cd /usr/local/php-5.2.17/ext/mysqli(2)输入/usr/local/php/bin/phpize 回车(3)./configure --prefix=/usr/ ...
- android webview 遇到的问题:external/chromium/net/disk_cache/stat_hub.cc:216:
今天也遇到这个问题,界面显示无法访问,Baidu吧,结果有些含糊其词,有的说加网络权限,我看了下我的, 有个 <uses-permission android:name="androi ...
- Microsoft Visual Studio 2010中文版编译SQLlite3.7.0版
作为一名教师,没有具体项目的开发,却喜欢尝鲜,不经意间开始追星了. 换了Win7,安装了Microsoft Visual Studio 2010中文版,7月22日SQLite发布了3.7.0版.当然想 ...
- hdu 2167(状态压缩基础题)
题意:给你一个矩阵,让你在矩阵中找一些元素使它们加起来和最大,但是当你使用某一个元素时,那么这个元素周围的其它八个元素都不能取! 分析:这是一道比较基础的状态压缩题,也是我做的第三道状态压缩的题,但是 ...
- Delphi Val函数
在这里Val和iif都是你所用的数据库中的函数在delphi中Val是一个将字符串转换为数字的函数,Val(S; var V; var Code: Integer)第一个参数是要转换的字符串,第二个参 ...
- java 获取当前时间及年月日时分秒
java代码如下: package test; import java.text.SimpleDateFormat; import java.util.Calendar; import java.ut ...
- SQL查询数据库信息, 数据库表名, 数据库表信息
SQL查询数据库信息, 数据库表名, 数据库表信息 ---------------------------------------------- -- 以下例子, 在sql_server 中可以直接运 ...
- 你可能不知道的30个Python语言的特点技巧
1 介绍 从我开始学习Python时我就决定维护一个经常使用的“窍门”列表.不论何时当我看到一段让我觉得“酷,这样也行!”的代码时(在一个例子中.在StackOverflow.在开源码软件中,等等), ...
- .hpp文件
hpp在C++中的含义 以前在开源代码里面遇到过,今天看boost源码的时候又遇到了,故学习一下. hPP,计算机术语,用C/C++语言编写的头文件,通常用来定义数据类型,声明变量.函数.结构和类.而 ...