當(dāng)支付寶和微信支付成功后,我們在回調(diào)方法里記錄訂單狀態(tài)方便我們?nèi)フ{(diào)試和查驗(yàn)支付結(jié)果。
第一種將接收的生成日志txt文件,記錄信息在本地
functionlog_result($file,$word){
$fp4=fopen($file,r);//只讀打開模板,底部;
$str=fread($fp4,filesize($file));//讀取模板內(nèi)容
$str=$str.\n執(zhí)行日期:.date(Y-m-dH:i:s).\n.$word.\n\n;
$handle=fopen($file,w);//不存在就創(chuàng)建;,創(chuàng)建頁面
fwrite($handle,$str);
}
使用方法:
$this-log_result($log_name,【接收到的notify接受信息】:商戶訂單號:.$trade_no.'|'.$verify_result['out_transaction_id'].;訂單號:.$verify_result['out_trade_no'].'狀態(tài)'.$flag.'錢:'.$money.'id:'.$order_id.\n簽名結(jié)束\n);
第二種將數(shù)據(jù)記錄在數(shù)據(jù)庫中:
1.創(chuàng)建支付寶支付記錄數(shù)據(jù)表:
CREATETABLE`site_pay_ali`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`pay_scene`tinyint(1)NOTNULLDEFAULT'1'COMMENT'支付場景',
`oid`int(11)NOTNULLCOMMENT'訂單id',
`order_number`int(11)NOTNULLCOMMENT'訂單號',
`subject`varchar(100)NOTNULLCOMMENT'支付主題',
`buyer_id`varchar(20)NOTNULLCOMMENT'買家支付寶用戶號',
`total_amount`varchar(20)NOTNULLCOMMENT'總金額',
`sign_type`varchar(10)NOTNULLCOMMENT'簽名類型',
`trade_no`varchar(80)NOTNULLCOMMENT'支付寶交易號',
`app_id`varchar(50)NOTNULLCOMMENT'開發(fā)者的app_id',
`buyer_logon_id`varchar(100)NOTNULLCOMMENT'買家支付寶帳號',
`notify_time`varchar(100)NOTNULLCOMMENT'支付時(shí)間',
PRIMARYKEY(`id`)
)ENGINE=MyISAMDEFAULTCHARSET=utf8COMMENT='支付寶支付記錄';
/**
*增加支付寶支付完成記錄
*@param$data
*@paramstring$model
*@returnmixed
*/
publicfunctionaddRecord($data,$model=''){
$model=$model==''?D('Order'):$model;
$oid=$model-where(array('order_number'=$data['out_trade_no']))-field('id')-find();
$savedata=array(
'pay_scene'=$data['pay_scene']?$data['pay_scene']:1,
'oid'=$oid['id'],
'order_number'=$data['out_trade_no'],
'subject'=$data['subject'],
'buyer_id'=$data['buyer_id'],
'total_amount'=$data['total_amount'],
'sign_type'=$data['sign_type'],
'trade_no'=$data['trade_no'],
'app_id'=$data['app_id'],
'buyer_logon_id'=$data['buyer_logon_id'],
'notify_time'=$data['notify_time'],
);
$re=$this-data($savedata)-add();
return$re;
}
2.創(chuàng)建微信支付記錄表
CREATETABLE`site_pay_wx`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`pay_scene`tinyint(1)NOTNULLDEFAULT'1'COMMENT'支付場景',
`oid`int(11)NOTNULLCOMMENT'訂單id',
`order_number`int(11)NOTNULLCOMMENT'訂單號',
`attach`varchar(300)NOTNULLCOMMENT'支付主題',
`bank_type`varchar(20)NOTNULLCOMMENT'付款銀行',
`cash_fee`int(11)NOTNULLCOMMENT'現(xiàn)金支付金額',
`fee_type`varchar(20)NOTNULLCOMMENT'貨幣種類',
`nonce_str`varchar(50)NOTNULLCOMMENT'隨機(jī)字符串',
`openid`varchar(300)NOTNULLCOMMENT'用戶標(biāo)識',
`sign`varchar(50)NOTNULLCOMMENT'簽名',
`is_subscribe`tinyint(1)NOTNULLCOMMENT'是否關(guān)注公眾賬號',
`time_end`varchar(20)NOTNULLCOMMENT'支付時(shí)間',
`transaction_id`varchar(50)NOTNULLCOMMENT'微信支付訂單號',
`nickname`varchar(300)CHARACTERSETutf8mb4NOTNULLCOMMENT'用戶昵稱',
``tinyint(1)NOTNULLDEFAULT'1'COMMENT'用戶性別',
`city`varchar(50)DEFAULTNULLCOMMENT'用戶城市',
`province`varchar(50)DEFAULTNULLCOMMENT'用戶省份',
`country`varchar(50)DEFAULTNULLCOMMENT'用戶國家',
`headimgurl`varchar(500)DEFAULTNULLCOMMENT'用戶頭像',
PRIMARYKEY(`id`)
)ENGINE=MyISAMAUTO_INCREMENT=3DEFAULTCHARSET=utf8COMMENT='微信支付信息表';
添加微信支付數(shù)據(jù):
/**
*增加微信支付完成記錄
*@param$data
*@paramstring$model
*@returnint|mixed
*/
publicfunctionaddRecord($data,$model=''){
$model=$model==''?D('Order'):$model;
$oid=$model-where(array('order_number'=$data['out_trade_no']))-field('id')-find();
$userInfo=S('userInfo');
$savedata=array(
'pay_scene'=$data['pay_scene']?$data['pay_scene']:1,
'oid'=$oid['id'],
'order_number'=$data['out_trade_no'],
'attach'=$data['attach'],
'bank_type'=$data['bank_type'],
'cash_fee'=$data['cash_fee'],
'fee_type'=$data['fee_type'],
'nonce_str'=$data['nonce_str'],
'openid'=$data['openid'],
'sign'=$data['sign'],
'is_subscribe'=$data['is_subscribe'],
'time_end'=$data['time_end'],
'transaction_id'=$data['transaction_id'],
'nickname'=base64_encode($userInfo['nickname']),
''=$userInfo[''],
'city'=$userInfo['city'],
'province'=$userInfo['province'],
'country'=$userInfo['country'],
'headimgurl'=$userInfo['headimgurl'],
);
$re=$this-where(array('order_number'=$data['out_trade_no']))-find();
if(!$re){
$re=$this-data($savedata)-add();
return$re;
}else{
return-1;