asp.net的通用接口
这几天写了一个dll接口,封装了所有的支付宝集成(asp.net就是方便哈).
具体信息如下<先引用下面提供的dll>:
一.卖东西过程处理,下面是例子.
============================================
主题(subject): 钢笔
价格(price): 0.01
数量(number): 1
发货类型(trasport): 3
账单号(order_no): 200512162057
=============================================
用下面的代码就可以了:
private void Btn_Buy_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Qgzxol.AlipayKernel.PayTo.Object o=new Qgzxol.AlipayKernel.PayTo.Object
(this,"winterserver@126.com","14xdd11zhcoeg8a60wagv7rnbddffyl2");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.subject,"钢笔");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.price,"0.01");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.number,"1");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.transport,"3");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.order_no,"200512162057");
string url=o.GetUrl();
this.Response.Redirect(url);
}
注:
1.所有的东西都在Qgzxol.AlipayKernel.PayTo.Keys的属性中说明了.
2.初始化Qgzxol.AlipayKernel.PayTo.Object时,要注意用你自己的商户email和安全验证码.
二.sendOff和checkOut的处理过程.
===============================================
当有客户买了这支钢笔,并付款到了支付宝,我们就会收
到sendOff通知.
===============================================
先在支付宝中设置好通知url,假设是Listener.aspx页面,
页面代码如下处理即可:
private void Page_Load(object sender, System.EventArgs e)
{
if(this.Page.IsPostBack==false)
{
Qgzxol.AlipayKernel.Notify.Object o=new Qgzxol.AlipayKernel.Notify.Object(this);
o.sendOff+=new Qgzxol.AlipayKernel.Notify.SendOffHandler(this.ProcessSendOff);
o.checkOut+=new Qgzxol.AlipayKernel.Notify.CheckOutHandler(this.ProcessCheckOut);
o.StartListener();
}
}
public void ProcessSendOff(object sender)
{
Qgzxol.AlipayKernel.Notify.Object o=(Qgzxol.AlipayKernel.Notify.Object)sender;
///发货后,我们向服务器送去发货通知,这就是修改returnTxt=Y即可.
o.returnTxt=Qgzxol.AlipayKernel.Notify.ATNResult.Y;
}
public void ProcessCheckOut(object sender)
{
Qgzxol.AlipayKernel.Notify.Object o=(Qgzxol.AlipayKernel.Notify.Object)sender;
///收款后,我们向服务器送去已经收款通知,这就是修改returnTxt=Y
o.returnTxt=Qgzxol.AlipayKernel.Notify.ATNResult.Y;
}
也就是把这两个处理过程独立到外部,你可以自己完成这两个函数的逻辑.
期待最后的官方1.0版出来.
三.下面是更多信息:
如果您还有不明白的地方,请看下面的文档:
1.Qgzxol.AlipayKernel.dll 这是所有逻辑的封装,您必须引用这个dll处理.
2.AlipayKernel简化说明.doc 简化说明,简单的讲叙了怎样使用这个dll.
3.AlipayKernel接口说明.doc 详细说明,包含更多的信息,包括系统内部结构.
4.AlipayKernel系统模型.gif 系统的类构成模型图片.
5.公测地址<最近校园网有问题,您可以下载第二个附件后在本地查看>:
页面地址:http://202.197.75.101/NetShop/Public.aspx
处理通知地址:http://202.197.75.101/NetShop/Listener.aspx
您可以购买物品,每次0.01元,会自动发货。
联系方式: QQ 398510617 Email winterserver@126.com 博客: http://blog.csdn.net/winlin398510617
注意:
1.第一个附件是核心dll和文档,第二个附件是核心dll的源码和一个站点实例的源码.
2.所有的配置都在web.config中对应的字段.您也可以在config配置类中代码配置.也可以在初始化对象的时候用构造函数配置.反正配置很灵活,可以实现几个商家同时卖东西.
3.由于公布源码,所以有什么bug请跟帖;请勿用于商业用途,因为它是开发商业网站的时候提出来的.请保留版权信息.
4.若压缩文件有密码,密码(区分大小写)为:Qgzxol.WinLin
[ 本帖最后由 winlin 于 2005-12-19 01:52 PM 编辑 ]
附件: [dll和所有文档] Qgzxol.Alipay.All.rar (2005-12-18 10:37 PM, 85.02 K)
该附件被下载次数 38
附件: [实例站点和源码] Sample.rar (2005-12-19 01:52 PM, 485.79 K)
该附件被下载次数 39
问题一
网友001 22:20:52
我想和你聊聊支付宝可以吗?现在有时间吗?
WinLin 22:22:46
有,你说吧
网友001 22:25:11
我没有用过支付宝 朋友想搞一个购物网站 想集成支付宝功能 我看了你的dll 没看懂
主要是不知道sendOff等是什么意思 赫赫
能给我讲讲吗/
WinLin 22:24:14
你下过他们的文档没?
网友001 22:25:54
下了 还没看呢?我需要看哪一部分呢?
WinLin 22:25:02
全部,
先看完文档再说吧,
网友001 22:26:26
噢 了解
网友001 22:39:25
二.sendOff和checkOut的处理过程.
应该放在什么页面执行?
WinLin 22:39:16
新建一个页面,专门处理
先处理好payTo,然后考虑sendOff和checkOut事件.
网友001 22:42:41
比如我在后台做一个页面 叫做发货页面 这个页面放
Page_Load和ProcessSendOff 然后再新建一个页面叫做确认收款页面 放
ProcessCheckOut 还是把这三个都放在一个页面里面?
WinLin 22:41:57
payTo做好了再考虑其他的
网友001 22:43:55
你不是给出了btn的click事件的例子了吗?
WinLin 22:43:06
对,但你听说过"看事容易做事难么?"
网友001 22:47:34
你的payto里面只是一单 如果是多种商品呢?
WinLin 22:46:35
你是不是要我给你做网站?
网友001 22:48:18
不是不是 我就是想问问 我没用过这东西
WinLin 22:47:22
我敢肯定,你没看完文档,
网友001 22:51:54
没看到多种商品的例子阿
WinLin 22:51:12
一次交易多样东西么?
网友001 22:52:59
对阿 比如一个用户买了3种商品 都在这个单子里面 怎么办?
WinLin 22:53:48
http://dev.alipay.com/forum/sear ... mp;searchsubmit=yes
建议你:
1.先从最简单的单物品交易开始,做一个模型.只处理payTo事件.
2.实现sendOff和checkOut事件.这是比较难的,因为现在支付保只支持虚拟物品的自动sendOff和checkOut.也就是这两个事件只能处理虚拟物品.
3.实现一次交易多物品,也就是购物车.
4.更多逻辑....
只有步步为营,才能取胜.
[ 本帖最后由 winlin 于 2005-12-18 11:06 PM 编辑 ]
网友二
http://dev.alipay.com/forum/view ... &extra=page%3D1
这里是开发规范文档,其中的"支付宝商家工具接口说明文档.pdf"文件,有一部分就说明了这个问题:
第18页 表2-8 期待返回结果,
三种返回方式是:
invalid 非法信息,这个我们肯定不能处理.
true “新建的通知任务”,这个也好理解,是新建的通知.
false 不是“新建的通知任务”,或超时(通知发起1分钟内该通知可被查询)
其中,false是比较难理解一些;说明的是"非新建的通知",这个false,只是说明不是新建而已,还是合法的信息,要是不合法,则是invalid.
所以,一般是false表示超时的信息,如我们的通知url出故障后,申请故障恢复得到的信息.
可见,在http://dev.alipay.com/forum/view ... &extra=page%3D1中的asp的实例处理也是一样的,可以参考.
false有什么意义?
可以统计那些商品在客户购买后立即收到了通知,可以用来查看系统的状态.
******************以上是WinLin的看法,不代表任何人,吼吼..*******************************
________________________________________
-----原始邮件-----
发件人:"delphiflash"
发送时间:2005-12-27 15:41:58
收件人:winterserver@126.com
抄送
无)
主题:支付宝问题咨询
您好,我看了你的blog上的支付宝开发接口,写的很好,对后来的开发者帮助很大。
看了你的代码后,有一些疑问想向你请教一下。
public const string invalid="invalid";
public const string true_="true";
public const string false_="false";
从支付宝开发文档和你的代码中看,ATResult有三个可能,invalid,true或false
可是我看你的验证代码,你只是验证了返回结果不等于invalid的情形。
//进行查询验证
if(msg==Qgzxol.AlipayKernel.Notify.ATResult.invalid)
{
}
我感觉这里有问题,结果为false难道也是正确的信息吗?
另外支付宝文档中说,通知只能在一分钟内查询,如果超过一分钟,是不是都返回false呢?
如果仅仅为true才认为是正确的话,我又感觉不太保险,毕竟有可能超过一分钟。
你是什么看法呢?
另外假设我收到了合法的订单,我用了两个小时准备货并邮寄了出去,
我需要告诉支付宝我发货了,支付宝什么时候才会主动访问我的接受页面呢,它访问接受页面的频率是多少呢
谢谢!
[ 本帖最后由 winlin 于 2005-12-27 08:28 PM 编辑 ]
这几天写了一个dll接口,封装了所有的支付宝集成(asp.net就是方便哈).
具体信息如下<先引用下面提供的dll>:
一.卖东西过程处理,下面是例子.
============================================
主题(subject): 钢笔
价格(price): 0.01
数量(number): 1
发货类型(trasport): 3
账单号(order_no): 200512162057
=============================================
用下面的代码就可以了:
private void Btn_Buy_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Qgzxol.AlipayKernel.PayTo.Object o=new Qgzxol.AlipayKernel.PayTo.Object
(this,"winterserver@126.com","14xdd11zhcoeg8a60wagv7rnbddffyl2");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.subject,"钢笔");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.price,"0.01");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.number,"1");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.transport,"3");
o.Add(Qgzxol.AlipayKernel.PayTo.Keys.order_no,"200512162057");
string url=o.GetUrl();
this.Response.Redirect(url);
}
注:
1.所有的东西都在Qgzxol.AlipayKernel.PayTo.Keys的属性中说明了.
2.初始化Qgzxol.AlipayKernel.PayTo.Object时,要注意用你自己的商户email和安全验证码.
二.sendOff和checkOut的处理过程.
===============================================
当有客户买了这支钢笔,并付款到了支付宝,我们就会收
到sendOff通知.
===============================================
先在支付宝中设置好通知url,假设是Listener.aspx页面,
页面代码如下处理即可:
private void Page_Load(object sender, System.EventArgs e)
{
if(this.Page.IsPostBack==false)
{
Qgzxol.AlipayKernel.Notify.Object o=new Qgzxol.AlipayKernel.Notify.Object(this);
o.sendOff+=new Qgzxol.AlipayKernel.Notify.SendOffHandler(this.ProcessSendOff);
o.checkOut+=new Qgzxol.AlipayKernel.Notify.CheckOutHandler(this.ProcessCheckOut);
o.StartListener();
}
}
public void ProcessSendOff(object sender)
{
Qgzxol.AlipayKernel.Notify.Object o=(Qgzxol.AlipayKernel.Notify.Object)sender;
///发货后,我们向服务器送去发货通知,这就是修改returnTxt=Y即可.
o.returnTxt=Qgzxol.AlipayKernel.Notify.ATNResult.Y;
}
public void ProcessCheckOut(object sender)
{
Qgzxol.AlipayKernel.Notify.Object o=(Qgzxol.AlipayKernel.Notify.Object)sender;
///收款后,我们向服务器送去已经收款通知,这就是修改returnTxt=Y
o.returnTxt=Qgzxol.AlipayKernel.Notify.ATNResult.Y;
}
也就是把这两个处理过程独立到外部,你可以自己完成这两个函数的逻辑.
期待最后的官方1.0版出来.
三.下面是更多信息:
如果您还有不明白的地方,请看下面的文档:
1.Qgzxol.AlipayKernel.dll 这是所有逻辑的封装,您必须引用这个dll处理.
2.AlipayKernel简化说明.doc 简化说明,简单的讲叙了怎样使用这个dll.
3.AlipayKernel接口说明.doc 详细说明,包含更多的信息,包括系统内部结构.
4.AlipayKernel系统模型.gif 系统的类构成模型图片.
5.公测地址<最近校园网有问题,您可以下载第二个附件后在本地查看>:
页面地址:http://202.197.75.101/NetShop/Public.aspx
处理通知地址:http://202.197.75.101/NetShop/Listener.aspx
您可以购买物品,每次0.01元,会自动发货。
联系方式: QQ 398510617 Email winterserver@126.com 博客: http://blog.csdn.net/winlin398510617
注意:
1.第一个附件是核心dll和文档,第二个附件是核心dll的源码和一个站点实例的源码.
2.所有的配置都在web.config中对应的字段.您也可以在config配置类中代码配置.也可以在初始化对象的时候用构造函数配置.反正配置很灵活,可以实现几个商家同时卖东西.
3.由于公布源码,所以有什么bug请跟帖;请勿用于商业用途,因为它是开发商业网站的时候提出来的.请保留版权信息.
4.若压缩文件有密码,密码(区分大小写)为:Qgzxol.WinLin
[ 本帖最后由 winlin 于 2005-12-19 01:52 PM 编辑 ]
该附件被下载次数 38
该附件被下载次数 39
问题一
网友001 22:20:52
我想和你聊聊支付宝可以吗?现在有时间吗?
WinLin 22:22:46
有,你说吧
网友001 22:25:11
我没有用过支付宝 朋友想搞一个购物网站 想集成支付宝功能 我看了你的dll 没看懂
主要是不知道sendOff等是什么意思 赫赫
能给我讲讲吗/
WinLin 22:24:14
你下过他们的文档没?
网友001 22:25:54
下了 还没看呢?我需要看哪一部分呢?
WinLin 22:25:02
全部,
先看完文档再说吧,
网友001 22:26:26
噢 了解
网友001 22:39:25
二.sendOff和checkOut的处理过程.
应该放在什么页面执行?
WinLin 22:39:16
新建一个页面,专门处理
先处理好payTo,然后考虑sendOff和checkOut事件.
网友001 22:42:41
比如我在后台做一个页面 叫做发货页面 这个页面放
Page_Load和ProcessSendOff 然后再新建一个页面叫做确认收款页面 放
ProcessCheckOut 还是把这三个都放在一个页面里面?
WinLin 22:41:57
payTo做好了再考虑其他的
网友001 22:43:55
你不是给出了btn的click事件的例子了吗?
WinLin 22:43:06
对,但你听说过"看事容易做事难么?"
网友001 22:47:34
你的payto里面只是一单 如果是多种商品呢?
WinLin 22:46:35
你是不是要我给你做网站?
网友001 22:48:18
不是不是 我就是想问问 我没用过这东西
WinLin 22:47:22
我敢肯定,你没看完文档,
网友001 22:51:54
没看到多种商品的例子阿
WinLin 22:51:12
一次交易多样东西么?
网友001 22:52:59
对阿 比如一个用户买了3种商品 都在这个单子里面 怎么办?
WinLin 22:53:48
http://dev.alipay.com/forum/sear ... mp;searchsubmit=yes
建议你:
1.先从最简单的单物品交易开始,做一个模型.只处理payTo事件.
2.实现sendOff和checkOut事件.这是比较难的,因为现在支付保只支持虚拟物品的自动sendOff和checkOut.也就是这两个事件只能处理虚拟物品.
3.实现一次交易多物品,也就是购物车.
4.更多逻辑....
只有步步为营,才能取胜.
[ 本帖最后由 winlin 于 2005-12-18 11:06 PM 编辑 ]
网友二
http://dev.alipay.com/forum/view ... &extra=page%3D1
这里是开发规范文档,其中的"支付宝商家工具接口说明文档.pdf"文件,有一部分就说明了这个问题:
第18页 表2-8 期待返回结果,
三种返回方式是:
invalid 非法信息,这个我们肯定不能处理.
true “新建的通知任务”,这个也好理解,是新建的通知.
false 不是“新建的通知任务”,或超时(通知发起1分钟内该通知可被查询)
其中,false是比较难理解一些;说明的是"非新建的通知",这个false,只是说明不是新建而已,还是合法的信息,要是不合法,则是invalid.
所以,一般是false表示超时的信息,如我们的通知url出故障后,申请故障恢复得到的信息.
可见,在http://dev.alipay.com/forum/view ... &extra=page%3D1中的asp的实例处理也是一样的,可以参考.
false有什么意义?
可以统计那些商品在客户购买后立即收到了通知,可以用来查看系统的状态.
******************以上是WinLin的看法,不代表任何人,吼吼..*******************************
________________________________________
-----原始邮件-----
发件人:"delphiflash"
发送时间:2005-12-27 15:41:58
收件人:winterserver@126.com
抄送
无)主题:支付宝问题咨询
您好,我看了你的blog上的支付宝开发接口,写的很好,对后来的开发者帮助很大。
看了你的代码后,有一些疑问想向你请教一下。
public const string invalid="invalid";
public const string true_="true";
public const string false_="false";
从支付宝开发文档和你的代码中看,ATResult有三个可能,invalid,true或false
可是我看你的验证代码,你只是验证了返回结果不等于invalid的情形。
//进行查询验证
if(msg==Qgzxol.AlipayKernel.Notify.ATResult.invalid)
{
}
我感觉这里有问题,结果为false难道也是正确的信息吗?
另外支付宝文档中说,通知只能在一分钟内查询,如果超过一分钟,是不是都返回false呢?
如果仅仅为true才认为是正确的话,我又感觉不太保险,毕竟有可能超过一分钟。
你是什么看法呢?
另外假设我收到了合法的订单,我用了两个小时准备货并邮寄了出去,
我需要告诉支付宝我发货了,支付宝什么时候才会主动访问我的接受页面呢,它访问接受页面的频率是多少呢
谢谢!
[ 本帖最后由 winlin 于 2005-12-27 08:28 PM 编辑 ]
浙公网安备 33010602011771号