惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
罗磊的独立博客
博客园 - 聂微东
博客园_首页
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
量子位
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News
H
Help Net Security
O
OpenAI News
Blog — PlanetScale
Blog — PlanetScale
S
Security Affairs
S
Security @ Cisco Blogs
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
AI
AI
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
Cloudbric
Cloudbric
H
Heimdal Security Blog
J
Java Code Geeks
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
I
Intezer
GbyAI
GbyAI

博客园 - 张谊

[转]ubuntu下 手动安装 LAMP 和 JAVA环境 [转]ViewState的使用 [转]Working with user roles and permissions in SharePoint Object Model [原]SharePoint文档库上传文档 [原]SharePoint列表与文档库EventHandeler [转]ASP.NET缓存概念及其应用浅析 window.showModalDialog以及window.open用法简介 [原]欢迎加入QQ群 [原]如何在Silverlight中使用WebService绑定DataGrid [转]Silverlight中调用远程Web Service的权限问题 [转]BeanUtils接口和类 [原]Commons- BeanUtils学习笔记 [转]Apache+Tomcat负载均衡及Session绑定的实现 [原]基于Caché多维数据库的SSH实现 [原]Oracle中列自增的方法 [原]Java反射示例 [原]JavaSocket实现广播聊天室 [转]翻译 一些很酷的.Net技巧 《生命如一泓清水》
[原]关于支付宝API开发的一点心得
张谊 · 2008-11-12 · via 博客园 - 张谊

支付宝(www.alipay.com)的产生的确对于促进网络支付的确起到了很大的推动作用,笔者就在目前自己使用支付宝API接口开发中,遇到的一些问题,解决办法,做了简短的记录,由此与大家共分享,由于作者水平有限,难免出现错误,请大家指出,谢谢。

目前,申请支付宝接口主要有两种方式,1.免费接口,淘宝抽取手续费2%;2.付费接口,比如600元允许48000元交易金额的配额等,笔者使用的是前者,免费接口。在免费接口中,又分为两种,标准双接口交易类型和即时到账交易,这两种支付方式中,前者为淘宝担保交易+即时到账交易,而后者仅仅为即时到账交易,可根据自己的需要进行申请。

具体申请的过程在这里就不赘述了,如有需要,可以通过留言的方式,我会告知您。

支付接口申请成功后,会的到两个重要的参数支付宝安全校验码(key)和合作伙伴id(partner),这两个参数起到了支付是否成功的重要作用,申请成功后,都可以在支付宝后台商家工具中获得。

支付宝的原理其实就是通过浏览器传参数到支付网关(https://www.alipay.com/cooperate/gateway.do),支付网关是由Struts构建的,笔者感觉是通过ActionForm获得浏览器参数,进行内部解析的,浏览器传的参数都进过了MD5加密处理。

笔者遇到的第一个问题:
HAS_NO_PRIVILEGE,在官方给出的API介绍中是这样解释的:“该错误提示的是,您没有使用该接口的权限,那么登陆自己的支付宝账户,商家工具,查看实物交易服务或者虚拟物品交易服务,如果没有申请,请立刻申请并且当时开通。”我很肯定的是我已经开通了服务,那么问题就不是出在这儿,仔细查阅了API发现,在service的参数中,设置错误了,所以,在以后的开发中请注意,如果您选择的是:
标准双接口交易->service=trade_create_by_buyer
即时到帐交易->service=create_direct_pay_by_user
这里一定要填写正确,否则就会出现没有权限这样的问题,这里请注意一下。

笔者遇到的第二个问题:
支付成功了,但是总是返回的错误页面,首先请看下面的代码:

Code
……
//生成Md5摘要;
string mysign = GetMD5(prestr.ToString(), _input_charset);string sign = Request.QueryString["sign"];if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确
{
Response.Write(
"success"); //返回给支付宝消息,成功

}
else
{
Response.Write(
"fail");
}

……

这里如果mysign和responseTxt为flase,则会显示错误信息,这是由于在Return页面中,没有设置支付宝安全校验码(key)和合作伙伴id(partner),解决方法,在page_lode中加入常量:
String key = "xxxxxxxxxxxxxxxxx";//你的安全效验码
String partner = "xxxxxxxxxxxxxx";//你的合作伙伴id;

这样,加入后,当付款成功时,就会返回到正确的Success了!

笔者使用的是.net版的支付方式,Java版也许会有所不同,不过原理应该和这个是一样的,我已经下载了官方给出的Java实例,待看后与大家分享经验心得。

欢迎拍砖:)