ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:191.22KB ,
资源ID:8676435      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8676435.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ASP支付宝接口实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ASP支付宝接口实现.docx

1、ASP支付宝接口实现支付宝有一个类文件叫 AliPay 是一些加密算法之类的东西,包括构造URL要吧看一下这个类的全部内容using System.Web; using System.Text; using System.Security.Cryptography; using System.IO; using System.Net; using System; / / New Interface for AliPay / namespace Gateway public class AliPay / / 与ASP兼容的MD5加密算法 / public static string GetMD5

2、(string s, string _input_charset) MD5 md5 = new MD5CryptoServiceProvider(); byte t = md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(s); StringBuilder sb = new StringBuilder(32); for (int i = 0; i t.Length; i+) sb.Append(ti.ToString(x).PadLeft(2, 0); return sb.ToString(); / / 冒泡排序法 / 按

3、照字母序列从a到z的顺序排列 / public static string BubbleSort(string r) int i, j; /交换标志 string temp; bool exchange; for (i = 0; i = i; j-) /交换条件 if (System.String.CompareOrdinal(rj + 1, rj) 0) temp = rj + 1; rj + 1 = rj; rj = temp; exchange = true; /发生了交换,故将交换标志置为真 if (!exchange) /本趟排序未发生交换,提前终止算法 break; return

4、r; / / 生成URL链接或加密结果 / / 参数加密数组 / 编码格式 / 加密类型 / 安全校验码 / 字符串URL或加密结果 public static string CreatUrl( /string gateway,/GET方式传递参数时请去掉注释 string para, string _input_charset, string sign_type, string key ) int i; /进行排序; string Sortedstr = BubbleSort(para); /构造待md5摘要字符串 ; StringBuilder prestr = new StringBui

5、lder(); for (i = 0; i Sortedstr.Length; i+) if (i = Sortedstr.Length - 1) prestr.Append(Sortedstri); else prestr.Append(Sortedstri + &); prestr.Append(key); /生成Md5摘要; string sign = GetMD5(prestr.ToString(), _input_charset); /以下是POST方式传递参数 return sign; /以下是GET方式传递参数 /构造支付Url; / char delimiterChars =

6、=; / StringBuilder parameter = new StringBuilder(); / parameter.Append(gateway); / for (i = 0; i Sortedstr.Length; i+) / /UTF-8格式的编码转换 / parameter.Append(Sortedstri.Split(delimiterChars)0 + = + HttpUtility.UrlEncode(Sortedstri.Split(delimiterChars)1) + &); / / / parameter.Append(sign= + sign + &sign

7、_type= + sign_type); / / /返回支付Url; / return parameter.ToString(); /获取远程服务器ATN结果,验证是否是支付宝服务器发来的请求 public static string Get_Http(string a_strUrl, int timeout) string strResult; try HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(a_strUrl); myReq.Timeout = timeout; HttpWebResponse HttpWRes

8、p = (HttpWebResponse)myReq.GetResponse(); Stream myStream = HttpWResp.GetResponseStream(); StreamReader sr = new StreamReader(myStream, Encoding.Default); StringBuilder strBuilder = new StringBuilder(); while (-1 != sr.Peek() strBuilder.Append(sr.ReadLine(); strResult = strBuilder.ToString(); catch

9、(Exception exp) strResult = 错误: + exp.Message; return strResult; 而我们一般不用管这个类,只要保证能调用 的到就行了,不用管他 我们要做的很少,他是怎么工作的呢,这是开发文档里的工作图其实我们要处理的只有三个Aspx的文件,先看第一个吧 Default.aspx这是一个请求的界面using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; u

10、sing System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using Gateway; public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void BtnAlipay_Click(object sender, EventArgs e) /业务参数赋值; strin

11、g gateway = /支付接口 string service = create_direct_pay_by_user; /服务名称,这个是识别是何接口实现何功能的标识,请勿修改 string seller_email = 写自己的; /商家签约时的支付宝帐号,即收款的支付宝帐号 string sign_type = MD5; /加密类型,签名方式“不用改” string key = 写自己的; /安全校验码,与partner是一组,获取方式是:用签约时支付宝帐号登陆支付宝网站,在商家服务我的商家里即可查到。 string partner = 写自己的; /商户ID,合作身份者ID,合作伙伴

12、ID string _input_charset = utf-8; /编码类型,完全根据客户自身的项目的编码格式而定,千万不要填错。否则极其容易造成MD5加密错误。 string show_url = /展示地址,即在支付页面时,商品名称旁边的“详情”的链接地址。 string out_trade_no = TxtOrderno.Text.Trim(); /客户自己的订单号,订单号必须在自身订单系统中保持唯一性 string subject = 4.0系统支付宝充值; /商品名称,也可称为订单名称,该接口并不是单一的只能买一样东西,可把一次支付当作一次下订单 string body = 商户:

13、 + TxtOrderno.Text.Trim() + 通过支付宝给自己充值: + TxtTotal_fee.Text.Trim() + 元; /商品描述,即备注 string total_fee = TxtTotal_fee.Text.Trim(); /商品价格,也可称为订单的总金额 /服务器通知url(Alipay_Notify.aspx文件所在路经),必须是完整的路径地址 string notify_url = http:/0.0.6.108/Alipay/Alipay_Notify.aspx; /服务器返回url(Alipay_Return.aspx文件所在路经),必须是完整的路径地址

14、 string return_url = http:/0.0.6.108/Alipay/Alipay_Return.aspx; /构造数组; /以下数组即是参与加密的参数,若参数的值不允许为空,若该参数为空,则不要成为该数组的元素 string para = service=+service, partner= + partner, seller_email= + seller_email, out_trade_no= + out_trade_no, subject= + subject, body= + body, total_fee= + total_fee, show_url= + sh

15、ow_url, payment_type=1, notify_url= + notify_url, return_url= + return_url, _input_charset=+_input_charset ; /支付URL生成 string aliay_url = AliPay.CreatUrl( /gateway,/GET方式传递参数时请去掉注释 para, _input_charset, sign_type, key ); /以下是GET方式传递参数 /Response.Redirect(aliay_url); /以下是POST方式传递参数 Response.Write(form

16、name=alipaysubmit method=post action= Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.Write(); Response.W

17、rite(); Response.Write(document.alipaysubmit.submit(); Response.Write(); 下面的操作就是在支付平台的完成了, 跟咱的程序没有关系了现在我们应该想,那付完钱之后呢?我们有两个界面来处理这个问题一个是Alipay_Return.aspxusing System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web

18、.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Text; using System.Collections.Specialized; using System.IO; using Gateway; / / 创建该页面文件时,请留心该页面文件是可以对其进行美工处理的,原因在于支付完成以后,当前窗口会从支付宝的页面跳转回这个页面。 / 该页面称作“返回页”,是同步被支付宝服务器所调用,可当作是

19、支付完成后的提示信息页,如“您的某某某订单,多少金额已支付成功”。 / public partial class Alipay_Return : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) string alipayNotifyURL = /string alipayNotifyURL = string key = 写自己的; /partner 的对应交易安全校验码(必须填写) string partner = 写自己的; /partner合作伙伴id(必须填写) string _input_c

20、harset = utf-8;/编码类型,完全根据客户自身的项目的编码格式而定,千万不要填错。否则极其容易造成MD5加密错误。 alipayNotifyURL = alipayNotifyURL + &partner= + partner + ify_id= + Request.QueryStringnotify_id; /获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的 string responseTxt = AliPay.Get_Http(alipayNotifyURL, 120000); /*加密签名程序开始/* int i; NameValueCollecti

21、on coll; /Load Form variables into NameValueCollection variable. coll = Request.QueryString; / Get names of all forms into a string array. String requestarr = coll.AllKeys; /进行排序; string Sortedstr = AliPay.BubbleSort(requestarr); /构造待md5摘要字符串 ; StringBuilder prestr = new StringBuilder(); for (i = 0;

22、 i Sortedstr.Length; i+) if (Request.FormSortedstri != & Sortedstri != sign & Sortedstri != sign_type) if (i = Sortedstr.Length - 1) prestr.Append(Sortedstri + = + Request.QueryStringSortedstri); else prestr.Append(Sortedstri + = + Request.QueryStringSortedstri + &); prestr.Append(key); /生成Md5摘要; st

23、ring mysign = AliPay.GetMD5(prestr.ToString(), _input_charset); /*加密签名程序结束* string sign = Request.QueryStringsign; / Response.Write(prestr.ToString(); /调试用,支付宝服务器返回时的完整路径。 if (mysign = sign & responseTxt = true) /验证支付发过来的消息,签名是否正确 /更新自己数据库的订单语句,请自己填写一下 string strOrderNO = Request.QueryStringout_trad

24、e_no;/订单号 string strPrice = Request.QueryStringtotal_fee;/金额 string strTradeStatus = Request.QueryStringTRADE_STATUS;/订单状态 /生成对象 /OfficeFinanceServices objOfficeFinanceServices = new OfficeFinanceServices(); /订单信息 string login = strOrderNO.Split(new string _ , StringSplitOptions.RemoveEmptyEntries); /查询当前的余额 /decimal objdm = objOfficeFinanceServices.OfficeFinanceSelect(Convert.ToInt32(login0.ToString().Trim(), true); /OfficeFinance objofficeFinance = new OfficeFinance(); /objofficeFinance.ofId = Convert.ToInt32(login0.ToSt

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1