微信支付与支付宝支付用户支付信息保存

在实际的微信和支付宝支付完成时,不仅仅要改变订单的状态。最好记录下当前支付的具体信息,以供后来查验。

一、支付宝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE `site_pay_ali` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pay_scene` tinyint(1) NOT NULL DEFAULT '1' COMMENT '支付场景',
`oid` int(11) NOT NULL COMMENT '订单id',
`order_number` int(11) NOT NULL COMMENT '订单号',
`subject` varchar(100) NOT NULL COMMENT '支付主题',
`buyer_id` varchar(20) NOT NULL COMMENT '买家支付宝用户号',
`total_amount` varchar(20) NOT NULL COMMENT '总金额',
`sign_type` varchar(10) NOT NULL COMMENT '签名类型',
`trade_no` varchar(80) NOT NULL COMMENT '支付宝交易号',
`app_id` varchar(50) NOT NULL COMMENT '开发者的app_id',
`buyer_logon_id` varchar(100) NOT NULL COMMENT '买家支付宝帐号',
`notify_time` varchar(100) NOT NULL COMMENT '支付时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='支付宝支付记录';

二、微信

需要注意的是下面的表结构中“nickname”的 utf8mb4 是需要 MySql5.5+才支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE TABLE `site_pay_wx` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pay_scene` tinyint(1) NOT NULL DEFAULT '1' COMMENT '支付场景',
`oid` int(11) NOT NULL COMMENT '订单id',
`order_number` int(11) NOT NULL COMMENT '订单号',
`attach` varchar(300) NOT NULL COMMENT '支付主题',
`bank_type` varchar(20) NOT NULL COMMENT '付款银行',
`cash_fee` int(11) NOT NULL COMMENT '现金支付金额',
`fee_type` varchar(20) NOT NULL COMMENT '货币种类',
`nonce_str` varchar(50) NOT NULL COMMENT '随机字符串',
`openid` varchar(300) NOT NULL COMMENT '用户标识',
`sign` varchar(50) NOT NULL COMMENT '签名',
`is_subscribe` tinyint(1) NOT NULL COMMENT '是否关注公众账号',
`time_end` varchar(20) NOT NULL COMMENT '支付时间',
`transaction_id` varchar(50) NOT NULL COMMENT '微信支付订单号',
`nickname` varchar(300) CHARACTER SET utf8mb4 NOT NULL COMMENT '用户昵称',
`sex` tinyint(1) NOT NULL DEFAULT '1' COMMENT '用户性别',
`city` varchar(50) DEFAULT NULL COMMENT '用户城市',
`province` varchar(50) DEFAULT NULL COMMENT '用户省份',
`country` varchar(50) DEFAULT NULL COMMENT '用户国家',
`headimgurl` varchar(500) DEFAULT NULL COMMENT '用户头像',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='微信支付信息表';