常见充值方式介绍及对比

1:银联充值

1:环境部署

安装NetPay4NTSetup.exe,将MerPrk.key和PgPubk.key两个文件放到C:\WINDOWS目录下,环境部署完成了。

2:程序中要注意的问题

最容易导致问题的就是生成加密串,这个加密功能是由银联提共的,调用Interop.CHINAPAYLib.dll中类CHINAPAYLib.NetPayClientClass的sign方法,由于这是对字符串进行加密,不同的字符串加密后的串是不一样的,所以要注意被加密字符前后是否有多余的空格,支付金额的位数,如果加密串生成有误,到银联那边肯定报参数有误的。充值成功后就是回调解密,解密调用的是CHINAPAYLib.NetPayClientClass的check方法,返回“0”表示成功,其他值表示失败。充值成功才能进行转点和发奖。

3:还要注意的一个问题是充值金额

充值金额是一个12位的字符串,以分作为单位,如000000001000表示10元,不能提交0元的订单。

4:银联订单的大致流程:用户提交一个订单,将部分参数的值加在一起,按照一定的方式加密,将结果和其他参数POST到银联的指定地址,银联会对参数进行验证,如果验证通过则认为是合法的订单,用户可以开始支付,支付成功之后,银联会对两个地址发送请求,一个地址是前台显示页面(告诉用户支付成功),另一个页面则是逻辑功能页面,把用户买的东西给他,先还是验证订单是否合法,进一步确认用户是否已经支付,支付成功后就把东西给用户。并告诉银联已经把东西给用户了,如果出现问题,银联会隔一段时间再次发送请求,时间间隔会越来越大,一定时间过来不再发送请求,有时候银联那边也会出现问题,用户的钱扣了,但是没有向我们指定的页面发送请求,就只能联系银联让他们退钱,所有的支付流程大致都是这样的,只是不同的支付方式验证不一样。

验证无非3种:

1:参数验证,参数的格式验证,加密串是否匹配

2:IP验证,只有双方约定的IP才能访问

3:订单的验证,验证订单是否支付

1是必验证的,2||3=true就可,就怕为false,那样真的很不安全

2:快钱充值

1:环境部署

环境就是为了解决加密解密问题。登录公司在快钱的账号,按照相关提示可以生成一个加密问题和一个解密问题,解密文件要上传到快钱上,因为我们加密后传过去的字符串他们要解密验证。我们的程序只用调用这个两个文件,生成订单的时候要调用加密文件,回调的时候要调用解密文件,这两个文件建议放在C盘的一个目录中,把他们的路径配在配置文件中共程序调用。IP验证是必须的,只能让指定的IP访问就安全多了,如果哪个牛人能突破IP的限制,或者构造虚假的IP,那就真的可以横冲直撞了。

2:生成加密串注意的问题

所有的参数都是先放到Dictionary中的,然后生成一个字符串,参数加入dictionary中的顺序千万不能改,改了就是不同的字符串了,加密后的字符串当然是不一样的。总之要确保加密和解密的参数的顺序是一样的。

3:还要注意的一个问题是充值金额

充值金额没有位数的限制,以分为单位,如1000表示10元,左边不能补0

3:支付宝

支付宝不需要环境的支持。参数用MD5加密,为了确保安全,在回调页还要向支付宝发送一个请求,验证订单是否支付,参数的顺序是按照参数的名字排序的,所以用的是SortedDictionary集合。

注意:所有的参数都要放到集合当中,哪怕是提交按钮,所以提交按钮最好不要设置name属性。这一点也是支付宝最坑爹的,我猜它是将所有参数按照参数名称排序并串联,然后加密的,你的POST参数多了或者少了参数,哪怕是无关没用的参数都会导致加密串验证失败。当然这样做也好处,不用管参数的串联顺序,不像其他的充值方式,非要A参数必须在B参数的前面。

支付宝支付能确保支付的安全性主要是在回调页面还要去支付宝验证订单是否支付,当然还会验证订单的关联是否正确,不然还是有漏洞。

4:神州行和联通卡

没有任何特殊,所以注意的地方比较少,确保被加密的参数顺序不变,即参数的顺序是定的,不能改变。参数MD5加密。解密也是最简单的,加密的时候MD5一次,解密的时候在把参数MD5一下,两次MD5结果一样表示已经支付,相比上面几种支付方式,它是最不安全的。虽然回调页面有一个IP限制。 要是没有这个限制那真的是彻底将接口暴露了,只要会点程序的人,都能很容易写一个东西去攻击了,不用付钱就能得到你想要的东西。

5:V币支付

V币支付同样没有任何特殊的地方,MD5验证,跟神州行和联通卡类似。

6:骏卡支付

骏卡支付跟其他支付方式不一样的地方时我们提供接口,供骏卡那边调用,由于这个接口是公开的,所以做了IP限制,只有骏卡那边提供的IP才能访问这个接口。验证也是MD5加密验证。

流程:用户在骏卡的网站上提交一个订单,然后骏卡会向我们的接口发送一个请求,我们就给用户转一定的点数,然后输出结果。然后骏卡那边会扣用户的骏点。

网络支付最常用的支付方式一般是:银联支付、块钱支付、支付宝。当然还有其他的支付方式。我觉得这三种支付方式是相对比较安全的。银联和块钱都有自己的加密解密方式,而且用户也不知道哪些参数是加密串的一部分,参数的顺序也是未知的;支付宝虽然是MD5加密,但会在回调页面验证订单是否支付,保证了安全性。

写着写着发现还是很能存在漏洞,不敢多说了。真要把网站写得很安全真不是简单的事情,要考虑的方面还真的比较多,特别是涉及到支付、提交数据的地方。比如A页面向B页面发送一个请求,B页面向数据库中插入数据,如果没有在B页面中做有效验证,任何程序员就可以花不到半个小时的时间写一个小东西,向B页面不断的提交数据,很容易就把数据库给弄爆了。所以最好别得罪程序员,特别是牛B的程序员。

转载于:https://www.cnblogs.com/xiao-wei-wei/archive/2012/08/05/2623569.html

常见充值方式介绍及对比 (转)相关推荐

  1. 常见充值方式介绍及对比

    1:银联充值 1:环境部署 安装NetPay4NTSetup.exe,将MerPrk.key和PgPubk.key两个文件放到C:\WINDOWS目录下,环境部署完成了. 2:程序中要注意的问题 最容 ...

  2. 常见日志框架介绍和对比(log4j,logback,log4j2)

    文章目录 1. 什么是slf4j? 2. log4j简介和配置 2.1 log4j介绍 2.2 log4j三大组件 2.3 log4j pom依赖引入 2.4 配置log4j 3. logback简介 ...

  3. 常见网络攻击方式介绍及短信防攻击策略的后端实现

    大家好,今天给大家分享一下:几种常见的网络攻击方式的介绍以及短信防攻击策略的后端实现. 一.背景介绍 有人的地方就有江湖,有数据交互的地方,就存在入侵风险. 只有知己知彼,才能百战不殆.我们学习相关知 ...

  4. 内外网数据安全摆渡的5种方式介绍及对比

    很多企业,尤其是科技研发型企业,都会通过各种方式实施网络隔离,比如互联网与内网隔离,生产网与办公网隔离,办公网与研发网隔离,等等,通过这种方式,以确保企业内部信息安全. 但是,安全性提升了,却给数据交 ...

  5. 三类常见上网方式介绍

    常见的上网方式有:PPPoE.静态IP.动态IP地址三种.本文给予简单的介绍: 1.PPPoE PPPoE也叫宽带拨号上网,拨号宽带接入是当前最广泛的宽带接入方式,运营商分配宽带用户名和密码,通过用户 ...

  6. 常见中文编码方式介绍

    常见的中文编码方式有:GB2312   GBK   GB18030   UTF-8 GB2312:最基本的,每个汉字占两个字节,解析简单,仅能编码中文字符. GBK:比GB2312能编码更多的中文字符 ...

  7. 无线网络(WLAN)常见加密方式介绍

    在使用无线路由器配置wifi安全设定的时候经常会遇到各种加密方式,即不懂意思也不知道如何选择.本文将对此做一个简单的介绍. 1.WEP 有线等效协议(Wired Equivalent Privacy, ...

  8. 几种常见网络抓包方式介绍

    几种常见网络抓包方式介绍 一.网络分流器(TAP) 二.有网管功能的小交换机 三.用两块网卡的Linux方案 四.总结 无论作为网络运维人员,还是安全渗透工程师,在工作中都会无可避免地碰到网络抓包的需 ...

  9. MD5、AES、Jasypt加密方式的简要介绍与对比

    MD5.AES.Jasypt加密方式的简要介绍与对比 1 前言 目前做的项目中用的加密工具有:MD5.AES加密工具(旧的)及Jasypt加密工具(新增),对这三种加密工具的简要原理和应用做了整理.内 ...

最新文章

  1. leetcode dfs_深度优先搜索:具有6个Leetcode示例的DFS图遍历指南
  2. 帧中继环境下NBMA模式的配置
  3. Windows下Python安装及pycharm,pip下载和安装第三方库
  4. 使用request简单爬虫
  5. TCP转输控制协议(转)
  6. Javascript自动登录B/S系统的简单实现
  7. Python 机器学习——解决过拟合的方法
  8. 阿里云linux服务器到期后续费,网站打不开解决方法之一
  9. python3 编程学习链接
  10. 带你过一遍:廖雪峰大神Git教程(建议收藏)
  11. 小程序获取视频缩略图
  12. MySQL之数据库编程(了解语言结构)
  13. IBEACON 解析代码(C语言和LUA语言)
  14. kswapd线程的前世今生
  15. 论文解读:Combining Distant and Direct Supervision for Neural Relation Extraction
  16. st语言 数组的常用方法_LINEST函数使用方法介绍
  17. frp代理工具流量分析
  18. 中国将在 Sailfish 基础上开发移动操作系统
  19. webcam包的使用介绍
  20. 屠光绍:公司债启动时机成熟 市场意义重大

热门文章

  1. 【C语言】C语言成长之路之关于C语言的操作符以及一些表达式的讲解(՞• •՞).
  2. JS–ECMAScript5
  3. 【生成报名号+缴费成功】不代表考研报名成功!
  4. 新小米手机--首次使用
  5. java发送邮件(一封邮件发给多人)
  6. Object.assign不兼容IE
  7. java servlet作用_Servlet的功能是什么
  8. 研究生期间科研经验总结
  9. Prism:Uber 的 Presto 查询网关服务
  10. C++阶段06笔记01【基于STL的演讲比赛流程管理系统】