支付宝支付成功回调接口返回来的数据
- 24955
- PHP
- 3
- super_dodo
- 2014/10/23
在支付宝支付成功之后,支付宝会通过不同的响应机制来通知用户的接口。支付宝的返回接口有xml的也有$_POST的数据.下面是记录一个支付宝返回的$_POST的数据的信息。
记录的方式为,单纯的写文件。file_put_contents()
if(!empty($_POST)){ //如果$_POST数据不为空的话 foreach ($_POST as $k => $v) { file_put_contents('post.txt', $k.'---'.$v.PHP_EOL, FILE_APPEND); } if(!empty($_POST['trade_status'])){ //状态值不为空 $bill_list_id_date = $_POST['out_trade_no']; //商户订单号 $trade_no = $_POST['trade_no']; //支付宝交易号 $trade_status = $_POST['trade_status']; //交易状态 $total_fee = $_POST['total_fee']; //支付金额 //检查该账单是否已支付..... if($trade_status == 'TRADE_FINISHED' OR $trade_status == 'TRADE_SUCCESS') { //处理你的业务逻辑...... } } }
之后检查查看post.txt 你将会看到得到下面的数据。中间的****是我加上的。各个字段的意思的话,请查阅支付宝的相关说明。
discount---0.00 // payment_type---1 subject---13********98余额充值给****1元 trade_no---2014*******032 buyer_email---94******6@qq.com gmt_create---2014-10-21 11:06:15 notify_type---trade_status_sync quantity---1 out_trade_no---20141021110603_3****5 seller_id---20884********649 notify_time---2014-10-21 11:20:25 body---13********8余额充值给百翼付1元 trade_status---TRADE_FINISHED is_total_fee_adjust---N total_fee---1.00 gmt_payment---2014-10-21 11:06:15 seller_email---co****@*****.com gmt_close---2014-10-21 11:06:15 price---1.00 buyer_id---2088********329 notify_id---90bd154453dc243b52583fb0c2594a663s use_coupon---N sign_type---RSA sign---bkylcYUYbBVlIJrSX94MyVG5+jLdOYjxPnzW2ySPRdqi2HPlGUjWD68LWV88SFhf2hcxOatVDol/T8oO/0ocpJBiFaaNrpUz+8EnUWar9uavMN6lsAi2ZLiYFpdU3dsz6WzObd/sf15/npQvi3XNAzR3gxYrLKe1G4i1r7RiwdM=
如果是xml的数据的话。大概你会得到下面的数据。$_POST['notify_data']的xml数据如下:
<notify> <partner>2088*******3</partner> <discount>0.00</discount> <payment_type>1</payment_type> <subject>测试支付</subject> <trade_no>2013********32</trade_no> <buyer_email>94*****6@qq.com</buyer_email> <gmt_create>2013-09-23 09:22:21</gmt_create> <quantity>1</quantity> <out_trade_no>2013********03</out_trade_no> <seller_id>2088********3</seller_id> <trade_status>TRADE_FINISHED</trade_status> <is_total_fee_adjust>N</is_total_fee_adjust> <total_fee>0.01</total_fee> <gmt_payment>2013-09-23 09:22:22</gmt_payment> <seller_email>13*******8@163.com</seller_email> <gmt_close>2013-09-23 09:22:22</gmt_close> <price>0.01</price> <buyer_id>2088********29</buyer_id> <use_coupon>N</use_coupon> </notify>
同时附上解析xml的demo
$notify_data = $_POST['notify_data']; $doc = new DOMDocument(); $doc->loadXML($notify_data); if(!empty($doc->getElementsByTagName("notify")->item(0)->nodeValue) ) { $bill_list_id_date = $doc->getElementsByTagName("out_trade_no")->item(0)->nodeValue; //商户订单号 $trade_no = $doc->getElementsByTagName("trade_no")->item(0)->nodeValue; //支付宝交易号 $trade_status = $doc->getElementsByTagName("trade_status")->item(0)->nodeValue; //交易状态 $total_fee = $doc->getElementsByTagName("total_fee")->item(0)->nodeValue; //支付金额 //............. }
相遇总是淬不及防,而离别多是蓄谋已久
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例