人生中第一次准备开发网站的支付系统,有什么安全事项需要注意的?

2017-05-18 11:07:47 +08:00
 Reign

做外贸站,有流量靠山,所以成交量预计应该还是不错,而且从用户反馈情况来看,应该很有前景,现在准备薅欧美资本主义羊毛,开始出售虚拟服务,准备实施的方案为:用户按月付费订阅我们的服务。目前就准备着手开发网站的支付系统了,但有几点需要疑问:

  1. 国外开发是不是一个 PayPal 打天下就行,如果不行,那这么多支付系统选哪个好?有没有统一集成的接口简单方案?
  2. 涉及到金钱,最关键的就是安全问题,用户注册我的网站,我准备的是将 uid 用 php 的可逆式加密生成 cookie 来检测客户端,但是这样的话,另一个用户拷贝走这个 cookie 不就盗用账户了么?怎么防止这种行为?
  3. 用户 cookie 一般的过期时间设置多少合适
  4. 存储到 MySQL 中的金钱信息是否需要可逆式加密?
  5. 是否一定需要 https ?
  6. 如果最坏的情况,最终这个项目失败,怎样退款给那些付费但还未到期的用户?

另外还有哪些需要注意的求好心 V 友提示一下避免踩坑,第一次开发支付系统难免有点摸不着头脑,求好心 V 友解答一下,谢谢

8494 次点击
所在节点    程序员
58 条回复
Reign
2017-05-18 18:34:04 +08:00
@qinxi 锁是什么意思?
falcon05
2017-05-18 18:38:08 +08:00
linfox
2017-05-18 18:39:20 +08:00
不是很懂楼主的需求。
如果只是单纯做个 外贸的独立网店,为什么不用一些现成的方案 比如 shopify ?
qinxi
2017-05-18 20:00:11 +08:00
@Reign 多线程啊...用锁避免多个线程同时操作余额,出现不可控的情况
julyclyde
2017-05-19 07:30:44 +08:00
安全方面,PCI IDS 标准有明确定义了
国内的话可以找银联金卡科技公司做认证和合规指导
zonga
2017-05-19 08:53:38 +08:00
@paw 请问用 X.XX 这种 BigDecimal 会有什么后果吗?
Felldeadbird
2017-05-19 09:18:28 +08:00
我想说楼主想太多了。
1.paypal 就基本满足 国外大部分地区了。
2. 账号余额安全的事情,做好日志系统、财务系统。 财务需要每天对账,检查坏账。
3. https 6 月开始,paypal 强制要求。
4. 做好客服工作。就是弄一套工单系统。客服将会是你们未来一笔投入。
5. 安全方面没啥好的建议。
paw
2017-05-19 09:28:24 +08:00
@zocome
@bozong
@zonga
浮点数精度问题啊,,, 比如 float a=0.7; a 其实是 0.699999988079071044921875 .....

至于 BigDecimal,底层 C 程序员表示不知道这是啥...
dangyuluo
2017-05-19 10:12:13 +08:00
如果是 MySQL,decimal 足够了吧。我目前就是用的这个做的支付,没有遇到过什么问题。
dangyuluo
2017-05-19 10:13:23 +08:00
@lianxiaoyi 记得很早很早很早很早之前,有一个网站系统就是用前台得到的金额去支付,结果被各路人马黑得体无完肤,是真的在黑。
Reign
2017-05-19 10:35:37 +08:00
@dangyuluo 那请问不拿前台得到的金额去支付,应该怎样获取并且处理前端的数据?
tf141
2017-05-19 11:12:52 +08:00
@kmahyyg 你用过这个吗?我打算用,不过在知乎看到说只支持虚拟物品,还要各种证明文件,联系客服也不回
dangyuluo
2017-05-19 11:31:10 +08:00
@Reign
1,前台只是负责显示,真正的支付订单由后台向支付服务提供商发起请求生成。现在微信的支付的统一下单就是这么做的。
2,支付完成后,一般的支付服务商都会提供回调来通知服务器该笔订单已支付,这时要检验金额是否符合,来源是否为官方服务器,最好的办法是在你的订单上加盐,然后做 hash 运算( md5 就足够了我认为?)以校验该通知的合法性。一旦任何地方不一致,锁住该笔订单。

这样的话除非别人把你的服务器黑掉,否则是无法给你虚假付款的。
wh58440
2017-05-19 13:20:14 +08:00
@Reign
1.确定好你做的到底是什么,是支付系统,还是普通平台对接支付公司的接口渠道。
2.paypal 的后端这种,才能称之为支付系统,其主要的功能是商户配置,风险控制,交易对账等,而不是用来提供给普通人进行支付用的,是 B2C 中的 B 端。
3.如果确定了是要做支付系统那就不是几句话能说清了,组个 team 建项吧
wh58440
2017-05-19 13:21:42 +08:00
第 2 点少说了一句,是 B2C 中 B 端的底层
KhadainJHIN
2017-05-19 14:04:56 +08:00
开发出来丢给白帽子众测吧,大家双赢......
kmahyyg
2017-05-20 01:00:28 +08:00
@tf141 不行就换其他的,我的 sspanel 用的这玩意。还可以,你去找 sspanel 的支付的相关的东西,基本上几家支持支付宝的国内外网关都有。
mineqiqi
2017-06-20 17:43:28 +08:00
你做的肯定不是支付系统,只是平台对接支付机构。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/362162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX