找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 166|回复: 23

支付宝免签接口的秘密

[复制链接]

55

主题

2238

回帖

4715

积分

论坛元老

积分
4715
发表于 2015-8-4 03:24:15 | 显示全部楼层 |阅读模式
本帖最后由 h0stl0c 于 2015-8-4 03:27 编辑

由于支付宝不允许个人签约即时到账,所以这种接口很火。
原理其实很简单,一句话概括就是:用户转账后程序轮询。

第一步都是一个表单,提交到支付宝的生活支付页面:
http://www.thinkphp.cn/code/1064.html
再简单点,其实一个连接就可以了:
https://shenghuo.alipay.com/send/payment/fill.htm?optEmail=h0stl0c@hostloc.com&payAmount=1&title=这里留唯一编号

第二步用户登录支付宝,选择手机支付,由于电脑支付要额外给手续费,所以用户应该都会选手机。
用户支付后,实际上就形成了普通转账交易,在收款人的支付宝里会出现这笔交易并带有前面留的唯一编号。

第三步很关键啦,就是程序在后台自动查询。如果存在这个唯一编号的成功支付记录,发送一个通知到WHMCS等平台,就完成了。
实现这个步骤有两种方法,目前见到的比较多的一种是这样的:http://www.llrj.net/alipay/sm/ (例子)
一个易语言或其他写的exe程序,里面有个浏览器控件,让用户登录后,就开始自动刷新,监控页面变化,如果有新的到账纪录就添加到数据库。
这种方法简单直接,会写一点点代码的都能做出来。缺点就是只能在windows下运行等等。

另一种方式就比较复杂了,需要分析支付宝协议,逆向整个支付宝流程,然后按照分析结果写模拟代码。
好处就是不需要浏览器,只需要提供用户名密码。还可以用任何语言在任何平台下完成。
比如这个:http://www.hostloc.com/thread-284599-1-1.html (无代码无演示无销售)
看起来很牛逼,其实也很简单,支付宝的流程网上有很多分析,比如:
https://code.google.com/p/gallop/source/browse/trunk/icaituan/user/charge/DemoAlipay.aspx.cs?spec=svn166&r=166
https://code.google.com/p/gallop/source/browse/trunk/icaituan/user/charge/DemoAlipay.aspx.cs (这个更好,用淘宝中转)
以上代码随便找的,未测试过。且我不会C#代码,仅仅直觉上觉得可行。

那么安全性问题:
第一种方式大多数是一个exe文件。由于整个过程是浏览器输入密码,所以基本上只有键盘记录一种方式获取了。
不知道现行Windows下各类安全软件能不能全局阻止键盘记录的存在。
第二种方式,如果没有源代码,就只能看作者了。或者限制网络活动,只允许支付宝和目标网站,比较难。
回复

使用道具 举报

769

主题

1万

回帖

2万

积分

论坛元老

积分
24231
发表于 2015-8-4 03:35:39 | 显示全部楼层
还有个是用邮件提醒功能做确认判断。
回复

使用道具 举报

11

主题

368

回帖

817

积分

高级会员

积分
817
发表于 2015-8-4 05:04:32 | 显示全部楼层
还不如去注册个公司

回复

使用道具 举报

55

主题

2238

回帖

4715

积分

论坛元老

积分
4715
 楼主| 发表于 2015-8-4 06:32:12 | 显示全部楼层

Kvm 发表于 2015-8-4 03:35

还有个是用邮件提醒功能做确认判断。

对,这让我想到一个新办法。。
抓包手机客户端,模拟手机接收数据。。
回复

使用道具 举报

323

主题

1832

回帖

4727

积分

论坛元老

积分
4727
发表于 2015-8-4 03:35:00 | 显示全部楼层
支付宝用webbrowser登陆的话cookie就不会过期吗?貌似Cookie有效期很短的
回复

使用道具 举报

55

主题

2238

回帖

4715

积分

论坛元老

积分
4715
 楼主| 发表于 2015-8-4 06:50:27 | 显示全部楼层

我是大傻瓜 发表于 2015-8-4 06:50

支付宝用webbrowser登陆的话cookie就不会过期吗?貌似Cookie有效期很短的

会啊。重新登咯。。
回复

使用道具 举报

282

主题

1632

回帖

4202

积分

论坛元老

积分
4202
发表于 2015-8-4 07:30:38 | 显示全部楼层
我最近也在做的....基本完工 ,,,,在完善中.....

不能叫接口的秘密,,不知道的不一定是叫秘密,,只能说你不知道而已..

其实也就是用浏览器接管,但与楼主理解的东西,肯定不一样,,,




毕竟外行看热闹,内行看门道,C#我也不会,也是叫一同事在处理..
回复

使用道具 举报

95

主题

1773

回帖

3931

积分

论坛元老

积分
3931
发表于 2015-8-4 06:50:00 | 显示全部楼层

h0stl0c 发表于 2015-8-4 06:32

对,这让我想到一个新办法。。
抓包手机客户端,模拟手机接收数据。。

你想多了。。。退一百步就算你能模拟手机端登陆成功。。。就算你能拿到raw data,这数据肯定也是二次加密的,要反向app获取解密function才能读懂数据做判断
回复

使用道具 举报

95

主题

1773

回帖

3931

积分

论坛元老

积分
3931
发表于 2015-8-4 07:40:38 | 显示全部楼层

onepeople 发表于 2015-8-4 07:40

我最近也在做的....基本完工 ,,,,在完善中.....

不能叫接口的秘密,,不知道的不一定是叫秘密,,只能说你不 ...

lz说的原理89不理10,为啥会和lz理解的东西差很多?
回复

使用道具 举报

0

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2015-8-4 07:44:13 | 显示全部楼层
技术帝
onlybird 发表于 2015-8-4 07:59

lz说的原理89不理10,为啥会和lz理解的东西差很多?

因为,最近都在和同事沟通这个东西,,我之前也和楼主的理解一样,后来才发现,不是这样的...大体一样,但有些东西完全不一样..只能透露这么多.....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-4-20 02:59 , Processed in 0.020033 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表