每一个支付平台都有自己的加密、解密的原理;还有各种签名的原理;通过各种内容发送数据,防止恶意攻击等功能的原理。
接下来对于部署支付方式,首先要分清几个名词:
集成接入:支付宝已经集成好各种原理和函数,集成一个个的具体的功能。
比如:支付宝的即时到账、当面付、分享给好友支付、移动登陆等。具体详见:支付宝集成接入
下载DEMO后可以通过样例测试各种功能,在理解支付原理的情况下,对DEMO稍加修改就可以整合到自己的项目中了。
支付宝平台的SDK的介绍:
- SDK已经对加签验签逻辑做了封装,使用SDK可直接调用API。
- 确定接口对应的类
例如接口名:alipay.offline.material.image.upload
在SDK中对应的类为:每个单词首字母大写,并去掉分隔符(“.”),末尾加上Request(或Response)
如上接口名对应的类为:
AlipayOfflineMaterialImageUploadRequest(请求类)
AlipayOfflineMaterialImageUploadResponse(响应类)
具体调用方式见下方各语言。
然而对于PHP语言下的SDK,笔者下载后发现竟然是lotusphp,一个第三方的开发框架,呵呵,真不友好。我觉得这个SDK应该是用来研究支付宝的底层原理和调用的。对于将支付集成到自己的项目中,我看只用支付宝集成接入的DEMO就可以了。
其实人家也说了。服务端SDK适用于服务窗、卡券包、当面付、店铺管理、商品管理、广告管理、集分宝、口碑服务市场订购信息等功能。那么需要更加复杂和自定制的功能,应该是用这个东西比较好,以后有机会研究研究吧。
引用:--处理支付宝返回通知失败几种情况:
1、SIGN与MYSIGN不等,responseTxt为invalid命令参数不对,该错误 是由于合作伙伴ID(parnterID)与安全校验码(key)未填,或填错导致
2、SIGN与MYSIGN相等,responseTxt为false,是由于服务器、端口等因素导致,这时请检查
a.防火墙是否屏蔽支付宝的IP(支付宝锁使用的IP地址是:121.0.26.11,范围:121.026.0~255)
b.端口80或者443端口开放没有或者被其他服务占用
c.以上如果都没有问题,可能会是网络验证超时导致(支付宝验证时间是1分钟,SIGN与MYSIGN不等会导致超时),需要等待网络稳定再确定问题
3、SIGN与MYSIGN不等,responseTxt为true,此时只有两种情况会出现:
其一:传递参数时格式不符合(例如:带自定义参数)导致签名不一致
其二:编码格式出现问题,这时候请检查服务器编码和网站编码是否一致,可以写编码过滤解决也可以在返回页面强制编码转换