首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 编程开发 > ASP.net教程 > Asp.Net开发技巧 > 正文
Google
实现支付宝Payto接口的C#.net方法
来源:CSDN 作者:octverve 2007年10月13日 11:23 网友评论:0条 点击:

  实现支付宝Payto接口的C#.net方法支付宝现在这种支付方式比较多象网银在线等使用的方法都是url验证,就是通过url参数和一个这些url参数的md5编码来确认这个连接的正确性,支付宝在你购买成功后跳转自定义连接的时候会传2次过来,第一次是数据底层请求,第二次是web请求,而只有第一次有验证码,这个只能通过记录下来才看的到,因为两次请求间隔很小,如果光显示的话最后的结果是被第二次覆盖了的。所以在接收的时候就要设定接收条件,一种是没有notify_type参数的,一种是有的。

  我们先来看一下创建一个连接地址


t1=ConfigurationSettings.AppSettings["interface"];//支付接口,就是给的一个连接地址
  t2=ConfigurationSettings.AppSettings["account"];//支付宝帐户你的帐户
  t3=ConfigurationSettings.AppSettings["password"];//安全校验码,设置的商家验证码
  t4="images/logo_zfbsmall.gif";//按钮图片地址
  t5="test";//悬停说明
  cmd="0001";//默认
  subject="item";//商品名称
  body="decrip";//描述
  order_no=;//定单号,用户自己生成,方便自己管理 prices=100;//价格0.01~50000.00
  rurl="http://www.xxx.com/";//商品展示网址
  types="1";//1:商品购买2:服务购买3:网络拍卖4:捐赠
  number="1";//购买数量
  transport="3";//1:平邮2:快递3:虚拟物品
  ordinary_fee="";//平邮运费
  express_fee="";//快递运费
  readonlys="true";//交易信息是否只读
  buyer_msg="";//买家给卖家的留言
  buyer="";//买家Email
  buyer_name="";//买家姓名
  buyer_address="";//买家地址
  buyer_zipcode="";//买家邮编
  buyer_tel="";//买家电话号码
  buyer_mobile="";//买家手机号码
  partner=ConfigurationSettings.AppSettings["partenid"];//合作伙伴ID,这个是固定的

  上面就是要提供得基本信息,然后就是生成支付宝得连接,也就是给支付宝提供一条带验证的购买信息。


public string creatAlipayItemURL(string t1,string t2,string t3,string t4,string t5,string cmd,string subject,string body,string order_no,string prices,string rurl,string types,string number,string transport,string ordinary_fee,string express_fee,string readonlys,string buyer_msg,string buyer,string buyer_name,string buyer_address,string buyer_zipcode,string buyer_tel,string buyer_mobile,string partner)
  {
  string itemURL,str2CreateAc,acCode;
  string INTERFACE_URL,sellerEmail,keyCode,imgsrc,imgtitle,AlipayItemURL;
  //初始化各必要变量
  INTERFACE_URL=t1+t2;//支付接口
  sellerEmail=t2;//商户支付宝账户(改成你自己的)
  keyCode=t3;//安全校验码(改成你自己的)
  imgsrc=t4;//支付宝按钮图片
  imgtitle=t5;//按钮悬停说明
  str2CreateAc="cmd" + cmd + "subject" + subject;
  str2CreateAc=str2CreateAc + "body" + body;
  str2CreateAc=str2CreateAc + "order_no" + order_no;
  str2CreateAc=str2CreateAc + "price" + prices;
  //str2CreateAc=str2CreateAc + "url" + rurl;
  str2CreateAc=str2CreateAc + "type" + types;
  str2CreateAc=str2CreateAc + "number" + number;
  str2CreateAc=str2CreateAc + "transport" + transport;
  /*str2CreateAc=str2CreateAc + "ordinary_fee" + ordinary_fee;
  str2CreateAc=str2CreateAc + "express_fee" + express_fee;
  str2CreateAc=str2CreateAc + "readonly" + readonlys;
  str2CreateAc=str2CreateAc + "buyer_msg" + buyer_msg;*/
  str2CreateAc=str2CreateAc + "seller" + sellerEmail;
  /*str2CreateAc=str2CreateAc + "buyer" + buyer;
  str2CreateAc=str2CreateAc + "buyer_name" + buyer_name;
  str2CreateAc=str2CreateAc + "buyer_address" + buyer_address;
  str2CreateAc=str2CreateAc + "buyer_zipcode" + buyer_zipcode;
  str2CreateAc=str2CreateAc + "buyer_tel" + buyer_tel;
  str2CreateAc=str2CreateAc + "buyer_mobile" + buyer_mobile;*/
  str2CreateAc=str2CreateAc + "partner" + partner;
  str2CreateAc=str2CreateAc + keyCode;
  //acCode=FormsAuthentication.HashPasswordForStoringInConfigFile(str2CreateAc,"MD5");
  acCode=this.GetMD5(str2CreateAc,"gb2312");
  itemURL=INTERFACE_URL + "?cmd=" + cmd;
  itemURL=itemURL + "&subject=" + HttpUtility.UrlEncode(subject);
  itemURL=itemURL + "&body=" + HttpUtility.UrlEncode(body);
  itemURL=itemURL + "&order_no=" + order_no;
  itemURL=itemURL + "&price=" + prices;
  //itemURL=itemURL + "&url=" + rurl;
  itemURL=itemURL + "&type=" + types;
  itemURL=itemURL + "&number=" + number;
  itemURL=itemURL + "&transport=" + transport;
  /*itemURL=itemURL + "&ordinary_fee=" + ordinary_fee;
  itemURL=itemURL + "&express_fee=" + express_fee;
  itemURL=itemURL + "&readonly=" + readonlys;
  itemURL=itemURL + "&buyer_msg=" + HttpUtility.UrlEncode(buyer_msg);
  itemURL=itemURL + "&buyer=" + HttpUtility.UrlEncode(buyer);
  itemURL=itemURL + "&buyer_name=" + HttpUtility.UrlEncode(buyer_name);
  itemURL=itemURL + "&buyer_address=" + HttpUtility.UrlEncode(buyer_address);
  itemURL=itemURL + "&buyer_zipcode=" + buyer_zipcode;
  itemURL=itemURL + "&buyer_tel=" + buyer_tel;
  itemURL=itemURL + "&buyer_mobile=" + buyer_mobile;*/
  itemURL=itemURL + "&partner=" + partner;
  itemURL=itemURL + "&ac=" + acCode;
  AlipayItemURL=itemURL;
  return AlipayItemURL;
  }

  这个函数就是返回生成的地址,里面注释掉的看你自己需要可以添加进去,然后就是md5码的问题,现在用默认的md5生成程序对中文的支持只限于GB2312,而支付宝使用的是GBK,虽然两个编码的内容GBK兼容GB2312但是毕竟两个编码方式不同,所以会产生错误,如果用英文或者数字不会有问题。上面下载里面带的一个md5.asp的算法支持中文。

  现在已经可以跳转到支付宝的页面了,而我们这边就要自己记录用户的信息已经生成的定单编号,这样在支付宝返回信息的时候来查询。在设定了返回地址后,我们就要看接收页面了。

首页 上一页 [1] [2] 下一页 尾页
上一篇:介绍.Net组件开发ajax控件   下一篇:.NET中的日期与时间的解决方法
收藏此页】【打印】【关闭
 相关文章  我要点评
·支付宝系统升级导致服务中断
·C#实现USB接口的程序代码
·ASP.NET抽象类和接口的比较
·如何使用C#3.0中扩展方法来扩展接口
·讲解Java中抽象类和接口的区别
·必须知道的.NET之对接口和抽象类
·支付宝布局B2B行业门户网站
·支付宝征集防骗技巧助网民

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】