银联接入

手册
http://console.chinapay.com/NetPayClient/new/NetPayClient_Manual.pdf
无力吐槽啊,居然得用ie来生成私钥,操作界面居然还有兼容问题。
http://console.chinapay.com/newgms/
参考
http://www.phpally.com/tag/unionpay/

使用手册看登录界面右方接入指南,可使用网关,直接查询即可。

目前比较纠结一个问题是,银联的orderid需要满足16位,且包含密钥的中间部分,金额需要从分位算起。
因为原系统已定,所以直接将这边的订单id保存到备注字段中。
将orderid做为第三方id保存。

参数说明:
String MerId 商户号,长度为 15 个字节的数字串,由 ChinaPay 或清算银行分配。
String OrdId 订单号,长度为 16 个字节的数字串,由商户系统生成,失败的订单号允
许重复支付。
String TransAmt 交易金额,长度为 12 个字节的数字串,例如:数字串”000000001234″
表示 12.34 元。
String CuryId 货币代码, 长度为 3 个字节的数字串,目前只支持人民币,取值为”156″ 。
String TransDate 交易日期,长度为 8 个字节的数字串,表示格式为:YYYYMMDD。
String TransType 交易类型,长度为 4 个字节的数字串,取值范围为:”0001″和”0002″,其中”0001″表示消费交易,”0002″表示退货交易。

表 3 ChinaPay 交易状态代码表
状态码 状态信息
1001 消费交易成功
1003 退款提交成功
1005 退款撤销成功
其他
其他均为交易失败,具体信息请登录 ChinaPay 交易控台查询,或查询各银行出
错信息文档。

sql注入+密码暴力破解

havij
http://www.itsecteam.com/products/havij-advanced-sql-injection/
里面附带md5识别,破解的,网上工具不少。不过最好都在虚拟机下运行。

网页密码暴力破解工具
http://www.piaodown.com/soft/77532.htm
普通的网页登录,可以用这工具,简单暴力下。

虚拟机运行~

验证码模拟输入相关流程,参考
http://haibin.info/?p=897
密码识别工具,如果2得不轻的验证码,一般自己写个字典识别既可。
http://www.uuwise.com/
不是做广告。

只做安全检测用,一切后果,概不负责。

YII MYSQL 转移至 Oracle

1.字段大小写有所不同,特别注意,mysql不区分在小写,oracle区分大小,如果使用小写需要用“”进行引起。如yii ar 自定义t,在相关使用时,需要用“t”进行表示。

		$criteria->order .= '"t".ID desc';

		$models = AdminLog::model ()->with ( 'admin' )->findAll ( $criteria );

2.逻辑上,分组排序不同于mysql,需要用

		$criteria->select = "ICON,ROW_NUMBER () OVER (
		PARTITION BY ICON
		ORDER BY
			ordernum asc
	)";
		// $criteria->group = "ICON";
		$models = Menu::model ()->findAll ( $criteria );

3.主键自增也有所不同,凡原来涉及insert  null操作相关地方,需要用OracleTools::getNewId()获取id进行替换,现在使用通用序列,后需特殊字段,需要进行特殊处理

	protected function beforeSave() {
		$this->ID = OracleTools::getNewId ();
		if ($this->hasEventHandler ( 'onBeforeSave' )) {
			$event = new CModelEvent ( $this );
			$this->onBeforeSave ( $event );
			return $event->isValid;
		} else
			return true;
	}

 

<?php
/**
 * 
 * 现在简单实现,可以处理成,根据对应的表,生成对应的序列进行生成,主要同步自增id
 *
 */
class OracleTools {
	const TABLE_COMMOON = "seq_common";
	/**
	 * 通过序列获取最新的id
	 */
	public static function getNewId($tablename = "seq_common") {
		$id = sql_fetch ( "SELECT seq_common.nextVal newid FROM dual", 'newid' );
		return $id;
	}
}