- 浏览: 1491299 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (460)
- java (148)
- javascript (34)
- Flex文章 (4)
- css+div (2)
- ajax (6)
- extjs (11)
- 人生感悟 (9)
- struts2.0 (6)
- IT之路,生活 (15)
- hibernate (6)
- struts1 (1)
- spring (5)
- j2ee错误 (3)
- Dwr (5)
- Linux (33)
- C++ (3)
- SWT Win32 (2)
- EJB (1)
- JPA (4)
- C语言和LinuxC (7)
- SQL (13)
- 项目经理 (6)
- db2 (2)
- java数据结构 (2)
- 网页播放器flv (1)
- 数据库 (24)
- 用户体验设计学习 (2)
- 网络电话 (5)
- 军事理论 (4)
- android (3)
- oracle (18)
- oracle ebs form (11)
- oracle ebs oaf (4)
- erp (20)
- DBA (9)
- java中URL 的编码和解码函数 (1)
- 铁血丹心 (1)
- excel 单元格格式不能立即生效 (1)
- Java调用bat文件 (1)
- 如何把本地outlook中的邮件上传到网络邮箱中 (1)
- java 报表 打印 (1)
- 创建dblink (1)
- 图标前台框架 (1)
- vnc (1)
- FORM (1)
- MYSQL (1)
最新评论
-
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
web打印不显示页眉页脚 -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
Javascript网页打印大全 -
hardyer:
大哥写的很实在,受教了,提前祝你元旦快乐!
黎活明给程序员的忠告 -
cxysilahi:
请问WIN7 64位,调用报错Exception in thr ...
JNative的初步使用 -
action1949:
好东西,解决问题
JFreeChart乱码解决方法
转载不知道是否正确的代码:
支付宝的接口调用很不方便,刚做好一个封装,实现了虚拟交易和实物交易。
解决方案中有三个项目以及NDoc生成的文档,简单的序列图:CommonAliPay,封装的支付宝接口。
TestAli,asp.net的测试项目
TestCommonAliPay,Nunit的测试项目。
源代码下载地址:http://files.cnblogs.com/bluewater/CommonAliPay.rar
调用方法:
1、引入CommonAliPay.dll
2、实现支付宝服务接口的方法调用方式:
复制C#代码保存代码
AliPay ap = new AliPay();
string key = "";//填写自己的key
string partner = "";//填写自己的Partner
StandardGoods bp = new StandardGoods("trade_create_by_buyer", partner, key, "MD5", "卡2",
Guid.NewGuid().ToString(), 2.551m, 1, "hao_ding2000@yahoo.com.cn", "hao_ding2000@yahoo.com.cn",
"EMS", 25.00m, "BUYER_PAY", "1");
bp.Notify_Url = "http://203.86.79.185/ali/notify.aspx";
ap.CreateStandardTrade("https://www.alipay.com/cooperate/gateway.do", bp, this);
上面是通用的调用方式。
下面是只支持虚拟货物的方式:
复制C#代码保存代码
string key = "";//填写自己的key
string partner = "";//填写自己的Partner
AliPay ap = new AliPay();
DigitalGoods bp = new DigitalGoods("create_digital_goods_trade_p", partner, key, "MD5", "卡2",
Guid.NewGuid().ToString(), 2.551m, 1, "hao_ding2000@yahoo.com.cn", "hao_ding2000@yahoo.com.cn");
bp.Notify_Url = "http://203.86.79.185/ali/notify.aspx";
ap.CreateDigitalTrade("https://www.alipay.com/cooperate/gateway.do", bp, this);
3、实现支付宝通知接口方法的调用(支持虚拟和实物):
复制C#代码保存代码
protected void Page_Load(object sender, EventArgs e)
{
string key = "";//填写自己的key
string partner = "";//填写自己的Partner
AliPay ap = new AliPay();
string notifyid = Request.Form["notify_id"];
Verify v = new Verify("notify_verify", partner, notifyid);
ap.WaitSellerSendGoods += new AliPay.ProcessNotifyEventHandler(ap_WaitSellerSendGoods);
ap.WaitBuyerPay += new AliPay.ProcessNotifyEventHandler(ap_WaitBuyerPay);
ap.ProcessNotify(this, "https://www.alipay.com/cooperate/gateway.do", key, v, "utf-8");
}
void ap_WaitBuyerPay(object sender, NotifyEventArgs e)
{
// //加入自己的处理逻辑
Log4net.log.Error("wait buyer pay fire");
}
private void ap_WaitSellerSendGoods(object sender, NotifyEventArgs e)
{
//加入自己的处理逻辑
Log4net.log.Error("WaitSellerSendGoods fire");
}
支付宝的交易状态都被定义成了类似名称的事件。
部分源代码解析:
1、解析Forms集合到NotifyEventArgs类,因为后面此类的数据要用来做MD5Sign,所以所有值类型,不能存在初始值,如:int的0等。因此用Nullable范型。
复制C#代码保存代码
private NotifyEventArgs ParseNotify(NameValueCollection nv, object obj)
{
PropertyInfo[] propertyInfos = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo pi in propertyInfos)
{
string v = nv.Get(pi.Name.ToLower());
if (v != null)
{
if (pi.PropertyType == typeof(string))
{
pi.SetValue(obj, v, null);
}
else if (pi.PropertyType == typeof(int?))
{
pi.SetValue(obj, int.Parse(v), null);
}
else if (pi.PropertyType == typeof(decimal?))
{
pi.SetValue(obj, decimal.Parse(v), null);
}
else if (pi.PropertyType == typeof(DateTime?))
{
pi.SetValue(obj, DateTime.Parse(v), null);
}
else if (pi.PropertyType == typeof(bool))
{
pi.SetValue(obj, bool.Parse(v), null);
}
else
{
//转型失败会抛出异常
pi.SetValue(obj, v, null);
}
}
}
return (NotifyEventArgs) obj;
}
2、从类型中获取排序后的参数
复制C#代码保存代码
/// <summary>
/// 获取排序后的参数
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
private SortedList<string, string> GetParam(object obj)
{
PropertyInfo[] propertyInfos = obj.GetType().GetProperties(
BindingFlags.Public | BindingFlags.Instance);
SortedList<string, string> sortedList
= new SortedList<string, string>(StringComparer.CurrentCultureIgnoreCase);
foreach (PropertyInfo pi in propertyInfos)
{
if (pi.GetValue(obj, null) != null)
{
if (pi.Name == "Sign" || pi.Name == "Sign_Type")
{
continue;
}
sortedList.Add(pi.Name.ToLower(), pi.GetValue(obj, null).ToString());
}
}
return sortedList;
}
3、从SortedList中产生参数
复制C#代码保存代码
private string GetUrlParam(SortedList<string, string> sortedList, bool isEncode)
{
StringBuilder param = new StringBuilder();
StringBuilder encodeParam = new StringBuilder();
if (isEncode == false)
{
foreach (KeyValuePair<string, string> kvp in sortedList)
{
string t = string.Format("{0}={1}", kvp.Key, kvp.Value);
param.Append(t + "&");
}
return param.ToString().TrimEnd('&');
}
else
{
foreach (KeyValuePair<string, string> kvp in sortedList)
{
string et = string.Format("{0}={1}",
HttpUtility.UrlEncode(kvp.Key), HttpUtility.UrlEncode(kvp.Value));
encodeParam.Append(et + "&");
}
return encodeParam.ToString().TrimEnd('&');
}
}
发表评论
-
Oracle Developer10G 安装
2020-09-09 18:03 390oracle 客户端也要删除,以前的oracle产品 ... -
打开Eclipse时出现"The Eclipse executable launcher was unable to locate its companion
2018-06-05 15:06 9805打开Eclipse时出现"The Eclipse ... -
J2EE通过tomcat部署的两种方式
2017-09-12 09:01 700转载:http://blog.csdn.net/psp000 ... -
Linux安装Tomcat7
2016-03-30 15:01 906http://blog.sina.com.cn/s/blog ... -
java支持跨平台获取cpuid、主板id、硬盘id、mac地址 (兼容windows、Linux)(转)
2015-11-17 22:10 1643http://blog.csdn.net/flyingclo ... -
栋哥涕啐茆
2015-10-27 10:49 790栋哥涕啐茆 -
Eclipse快捷键 10个最有用的快捷键
2015-10-27 10:18 822Eclipse中10个最有用的快捷键组合 一个Eclip ... -
java上传头像图像剪切
2015-04-02 20:19 1207java上传头像图像剪切 JQUERY 图片上传裁切 -
创建dblink
2014-12-11 20:01 717CREATE public database link ... -
Bitnami Redmine 安装笔记
2014-12-10 11:28 1683http://atian25.iteye.com/blog/ ... -
利用workflow发送类似数据报表内容的通知页面
2014-11-21 15:03 848利用workflow发送类似数据报表内容的通知页面 ... -
excel科学技术法问题
2014-11-12 13:50 8601.使用导入外部数据的方法2.并且在第三步的时候选择文本,需要 ... -
java.lang.IllegalAccessError
2014-09-29 11:05 1202java.lang.IllegalAccessError: ... -
java如何获取文件编码格式
2014-04-11 11:28 102751:简单判断是UTF-8或不是UTF-8,因为一般除了UTF ... -
JAVA中使用FTPClient上传下载
2013-12-08 13:35 1955方法一:这种方法网上有许多 可以用下面的方式,但是支持批量 ... -
在Java中获取环境变量
2013-11-11 11:18 1471package cy.cn.test; import ... -
ORACLE性能调整笔记
2013-11-05 18:39 0一 关于statspack中等待事件的一些解释 ... -
EBS DBA指南笔记1
2013-11-05 18:35 1940时光飞逝,不从事EBS DBA转眼已有两年多。很还念那段学习 ... -
用html代码在word中插入分页符和页面设置
2013-11-05 17:11 5370<span lang=EN-US style=&quo ... -
OpenJWeb新增二维码图片生成功能
2013-11-05 09:02 1313在开发进销存软件的时 ...
相关推荐
这些源代码通常包括客户端SDK(如Android或iOS)和服务器端接口调用的示例,帮助开发者快速构建与支付宝系统的交互。在开发过程中,理解和使用这些接口是至关重要的,因为它们直接关系到应用的支付流程、用户账户...
.NET(C#)支付宝接口源代码是开发者在进行电商或者支付相关系统开发时,与支付宝进行交互的重要工具。本文将深入探讨这个主题,介绍如何利用C#语言和.NET框架实现支付宝接口,以及相关的关键技术和注意事项。 首先,...
根据支付宝给与的接口,做了修改,实现支付宝接口
支付宝接口php版,支付宝接口asp.net版,支付宝接口c#版,支付宝接口asp版;php即时到帐,即时到帐接口源代码. 包含支付宝接口源码一个完整的例子源码,里面有详细注释和详细的说明文件,一看就会.
本资源提供了一套可以直接运行的支付宝接口开发源代码,名为"alipaydemo",这对于开发者来说是一份非常有价值的参考资料。 在支付宝接口开发中,主要涉及以下几个关键知识点: 1. **SDK的使用**:支付宝提供了官方...
支付宝接口源代码(应该是目前最好的了) 支付宝的接口调用很不方便,刚做好一个封装,实现了虚拟交易和实物交易。
6. **API设计与接口调用**:开发者通过支付宝开放平台的API进行应用集成,源代码能展示如何设计和实现这些接口,以及如何处理请求和响应。 7. **文档解读**:相关文档通常会详细介绍支付宝的各项服务、开发指南、...
综上所述,这个压缩包中的支付宝接口源代码为开发者提供了实现支付宝支付功能的基础,包括了安全验证机制和不同交易类型的处理,对于需要集成支付宝支付的项目具有很高的参考价值。开发者可以根据自己的需求选择适合...
总结来说,支付宝源代码是支付宝平台的核心,涉及到实物商品交易服务、支付接口集成等多个重要领域。通过学习和研究这些源代码及相关的技术文档,开发者和商家可以深入了解支付宝的运作机制,提升自身的服务质量,...
支付宝接口源代码,可直接使用,本人亲测无毒,给大家方便 注意 1、必须申请支付支付功能 2、支付宝手机支付暂时只支持utf-8编码
支付宝Java项目源代码是用于开发和理解支付宝API接口集成的参考实现。这个项目通常包含了完整的后端服务代码,用于处理支付、退款、查询订单状态等与支付宝相关的业务逻辑。通过研究这些源代码,开发者可以更好地...
至于"pay"这个压缩包文件,它很可能包含了实现上述步骤的源代码文件,如.cs文件,其中可能有支付接口的调用类,以及配置文件(如app.config或web.config)来存放敏感的API密钥等信息。为了安全起见,这些敏感信息...
这个"ASP实例开发源码—支付宝接口程序代码.zip"的压缩包包含了一个使用ASP技术实现的支付宝接口程序的源代码。支付宝是中国领先的第三方支付平台,提供了广泛的服务,包括在线支付、移动支付和商户服务等。 1. **...
最近项目里用到支付类的封装遇到各种坑,于是自己整理了thinkphp5+bootstrap整合了微信支付和支付宝支付接口类完美实现扫码付款demo(带数据库后台设置支付参数即可完成)。绝对能够实现支付宝和微信支付,支付宝...
本资源包含微信支付和支付宝支付的接口源码,这两大支付平台在中国占据主导地位,广泛应用于各种线上线下场景。理解并掌握这两种支付接口的实现原理对于开发者来说极其重要。 微信支付是由腾讯公司提供的在线支付...
5. 支付集成:与第三方支付平台如支付宝、微信支付或PayPal进行接口对接,实现安全支付。 6. 物流跟踪:整合物流公司API,为用户提供实时的物流信息。 7. 客户服务:包括在线聊天、帮助中心、FAQs等,以便解答用户...
- `alipay`:支付宝支付相关的类或模块,负责调用支付宝接口并处理响应。 - `ui`:界面组件,展示打赏按钮和支付成功/失败的提示。 - `utils`:辅助函数,如签名生成、参数处理等。 4. **支付流程**: - 用户...
在技术层面上,实现红包功能通常涉及数据库操作(存储红包信息、用户余额等)、随机算法(确定红包金额分配)、支付接口集成(如支付宝、微信支付)以及用户界面设计等。 在压缩包内的文件名称列表中只有一个文件:...