热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php版新浪支付接口之回调接口笔记-PHP源码

新浪支付接口开发与支付宝的差不多先是按官方的要求提交数据然后再把支付成功的信息反馈过来给用户,这样就实现了支付及成功的提示了。
新浪支付接口开发与支付宝的差不多先是按官方的要求提交数据然后再把支付成功的信息反馈过来给用户,这样就实现了支付及成功的提示了。

所谓的新浪回调接口,就是当资金充值成功之后,新浪会通知本网站一个信息来告知已经充值成功,并返回一组成功的数组,我们根据这些数据再进行一个本地数据库的同步操作,比如更新本地数据库是否充值成功的状态,由未支付改为已支付,然后再网站上面进行显示,还有资金也会进行同步 update,好了,下面夏日博客把日志分享下来,接着上一篇新浪支付新建接口,一个简单的新浪支付回调接口,这个异步回调的信息是通过日志生成到ftp下面的,根据日志进行本地的更新。

一,先查看日志文件

说明:数据提交到新浪之后会生成新浪日志文件,如下:

{"ctl":"collocation","act":"response_sina","call":"registercreditor","notify_time":"20160317112508","sign_type":"RSA","notify_type":"trade_status_sync","gmt_payment":"20160317111255","trade_status":"PAY_FINISHED","version":"1.0","sign":"ULbWNFkn1DhF1z9M5daaJHKcvlyTCHS1SmH3o7AMwAQnYylMQATfpNXzdloFh5R43cm3MTaTuaAxEddSRckMBzemZ+XlqEcERsu8x6HA0OnIZW5YVOgQhPfnz4lbH3MC4yjxPzq9dQgE\/fVLJ+pWnaeVtXJMiyRygohCdX+mT28=","gmt_create":"20160317111254","_input_charset":"utf-8","outer_trade_no":"7L3No20160317111143","trade_amount":"100.00","inner_trade_no":"101145818437424877398","notify_id":"82170f9981b84c40b50a634ed37a2afd"}

二,打开 /app/lib/module/collocationModule.class.php,查找 response_sina 方法,方法如下:

public function response_sina()
{
$cOntent= $_REQUEST;
error_log( date ( "[YmdHis]" ) ."\t" . json_encode($content) . "\r\n", 3, '../'. date ( "Y-m-d" ) . '.log1' );

$class_name = getCollName();
require_once APP_ROOT_PATH."system/collocation/".$class_name."_collocation.php";
$collocation_class = $class_name."_collocation";
$collocation_object = new $collocation_class();
$collocation_code = $collocation_object->SinaNotify($_POST,$_REQUEST);
}

三,打开 system/collocation/Sina_collocation.php 文件,查找 SinaNotify 方法,如下:

function SinaNotify($map,$data){
// $weibopay->write_log("获取到refund_status_sync结果通知:单号:".json_encode($map).json_encode($data));
ksort ($map);
$weibopay = new Weibopay ();
error_log( date ( "[YmdHis]" ) ."\t" . json_encode($map). json_encode($data). "\r\n", 3, '../'. date ( "Y-m-d" ) . '.log10' );
if ($weibopay->checkSignMsg ($map,@$map ["sign_type"] )) {
switch ($map["notify_type"])
{
//交易结果通知
case "trade_status_sync":
//投标代收

if($data['call']=='registercreditor'){

require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');

registercreditor_status_sync($map);



}
if($data['call']=='dotrtrade'){

error_log( date ( "[YmdHis]" ) ."\t" . json_encode($map). "\r\n",4, '../'. date ( "Y-m-d" ) . '.log4' );
require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');

dotrtrade_status_sync($map);



}
if($data['call']=='dohktrade'){

error_log( date ( "[YmdHis]" ) ."\t" . json_encode($map). "\r\n", 5, '../'. date ( "Y-m-d" ) . '.log41' );
require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');

dohktrade_status_sync($map);



}


//按照自己的业务需求获取对应参数进行保存
// $weibopay->write_log("获取到trade_status_sync结果通知:时间:".date("YmdHis"));
// $weibopay->write_log("获取到trade_status_sync结果通知:单号:".json_encode($_REQUEST));
break;
//交易退款结果通知
case "refund_status_sync":
//按照自己的业务需求获取对应参数进行保存
$weibopay->write_log("获取到refund_status_sync结果通知:时间:".date("YmdHis"));
$weibopay->write_log("获取到refund_status_sync结果通知:单号:".json_encode($_REQUEST));
break;
//充值结果通知
case "deposit_status_sync":
//done
require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');

deposit_status_sync($map);

break;
//提现结果通知
case "withdraw_status_sync":
$weibopay->write_log("获取到batch_trade_status_sync结果通知:时间:".date("YmdHis"));
$weibopay->write_log("获取到batch_trade_status_sync结果通知:单号:".json_encode($_REQUEST));
require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');

withdraw_status_sync($map);

break;
//批量代付结果通知
case "batch_trade_status_sync":
//按照自己的业务需求获取对应参数进行保存
$weibopay->write_log("获取到batch_trade_status_sync结果通知:时间:".date("YmdHis"));
$weibopay->write_log("获取到batch_trade_status_sync结果通知:单号:".json_encode($_REQUEST));
break;
//审核结果通知
case "audit_status_sync":
require_once(APP_ROOT_PATH.'system/collocation/sina/SinaNotify.php');

audit_status_sync($map);
//按照自己的业务需求获取对应参数进行保存
$weibopay->write_log("获取到audit_status_sync结果通知:时间:".date("YmdHis"));
$weibopay->write_log("获取到audit_status_sync结果通知:单号:".json_encode($_REQUEST));
break;
default:
$weibopay->write_log("获取到未知结果通知:时间:".date("YmdHis"));
$weibopay->write_log("获取到未知结果通知:单号:".json_encode($_REQUEST));
echo "通知类型错误!";
}
// 如果回调成功,需要输出SUCCESS告知新浪回调服务器,已经收到异步通知。
echo 'success';
} else {
$msg="签名错误 or 非法请求";
$weibopay->write_log($msg);
die ( "sign error" );
}
}
//资质提价
四,打开 system/collocation/sina/SinaNotify.php 文件,充值回调。
if($map['trade_status']=='PAY_FINISHED'){
$pErrCode = 'MG00000F';
$data['pErrCode'] ='MG00000F';
$data['pErrMsg'] = 'MG00000F';;
}
五,成功之后进行下面的操作。

推荐阅读
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • 本文探讨了使用lightopenid库实现网站登录,并在用户成功登录后,如何获取其姓名、电子邮件及出生日期等详细信息的方法。特别针对Google OpenID进行了说明。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 近期尝试从www.hub.sciverse.com网站通过编程手段获取数据时遇到问题,起初尝试使用WebBrowser控件进行数据抓取,但发现使用GET方法翻页时,返回的HTML代码始终相同。进一步探究后了解到,该网站的数据是通过Ajax异步加载的,可通过HTTP查看详细的JSON响应。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
author-avatar
guitar402
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有