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';; 
        } 
五,成功之后进行下面的操作。

时间: 2024-10-05 05:20:23

php版新浪支付接口之回调接口笔记的相关文章

php版新浪支付接口之新建接口笔记

在使用新浪支付接口的时候,需要进行一个接口的创建,刚刚由夏日博客新建的一个新浪接口,整合的是方维P2P网贷系统,下面这个接口还是比较简单的,只是一个解绑认证信息的接口,也就是解绑我们在新浪上面的身份证等信息,操作步骤如下,仅供夏日参考学习使用. 1,后台复制一个按钮链接 2,/admin/Tpl/default/Common/js/user.js 添加一个跳转,注意名字 3, php添加一个类,路径-->app/lib/module/collocationModule.class.php,代码如

微银行锁定微博用户 新浪支付的社交玩法

中介交易 SEO诊断 淘宝客 云主机 技术大厅 自7月初获得第三方支付牌照后,新浪支付便开始在新浪微博的平台上"跑马圈地". "到今年年底,我们想将新浪支付的有效用户数做到500万左右."7月23日,在接受本报记者独家专访时,新浪支付副总经理戴庚告诉记者,由于刚刚拿到支付牌照,新浪支付的用户数比较少,正全速发力. 在新浪支付的梦想中,500万用户只是一个开始,未来,新浪支付意欲将用户数达到亿级.新浪支付将成为一个微银行,在这个平台上,用户可以完成信用卡申请.支付还款

新浪支付今日获基金销售支付牌照

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网易科技讯 3月20日消息,今日新浪旗下的北京新浪支付科技有限公司正式对外宣布,已经获得中国证监会下发的基金销售支付结算牌照. 新浪支付的基金合作方为汇添富基金以及数米基金网,未来将一起推出"微财富"平台. 据了解,新浪"微财富"产品包括类似于余额宝的货币基金,用户充值之后可以购物.缴费,同时能获得收益

新浪支付联手新新贷 为其提供支付服务

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 新浪科技讯 7月24日午间消息,新浪支付副总裁戴庚昨日在参观新新贷上海总部时透露,新浪支付已与新新贷达成战略合作,新浪将为新新贷提供网络支付服务,并探索其他各项合作的可能. 戴庚认为,互联网金融虽然火热,但很多P2P公司还没有看到3年.5年以后的趋势.国外的P2P公司大多是纯线上的平台型轻公司,但是国内征信体系尚不完善,线上线下相结合是目前较

新浪支付系统被曝存高危漏洞 回应称非支付漏洞

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网易财经9月15日讯 今日凌晨,11547.html">乌云平台漏洞作者"猪猪侠"报告了新浪支付系统出现了SQL注入漏洞.SQL注入漏洞是指通过控制传递给程序数据库操作语句的关键变量来获得恶意控制程序数据库,从而获取有用信息或者制造恶意破坏的,甚至是控制用户计算机系统的漏洞. 新浪支付人士对此回应称,根据乌

新浪支付的社交玩法:跑马圈地 微银行锁定微博用户

自7月初获得第三方支付牌照后,新浪支付便开始在新浪微博的平台上"跑马圈地". "到今年年底,我们想将新浪支付的有效用户数做到500万左右."7月23日,在接受本报记者独家专访时,新浪支付副总经理戴庚告诉记者,由于刚刚拿到支付牌照,新浪支付的用户数比较少,正全速发力. 在新浪支付的梦想中,500万用户只是一个开始,未来,新浪支付意欲将用户数达到亿级.新浪支付将成为一个微银行,在这个平台上,用户可以完成信用卡申请.支付还款.理财投资等一站式金融生活服务,而小微企业借着新

jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)_jquery

本文实例讲述了jQuery获取访问者IP地址的方法.分享给大家供大家参考,具体如下: <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ //通过调用新浪IP地址库接口查询用户当前所在国家.省份.城市.运营商信息 $.g

新浪api 获取数据-新浪微博接口问题——如何获取一个省的微博数据

问题描述 新浪微博接口问题--如何获取一个省的微博数据 因为开发分析需要,我需要获取北京市的历史微博数据,目前来看,我看了好几遍API文档都没有根据省市获取微博的接口,但是新浪微博的搜索功能里又有这个功能,请大侠们指点一下我应该怎么样去获取这些数据

PHP实现百度、网易、新浪短网址服务的API接口调用

1 谷歌.百度.网易.新浪短网址服务的API比较 百度短网址API接口完全对外开放,用户不需申请其开放平台的APPKEY,也不用采用OAuth的协议,因此相对简单方便:谷歌的短网址API接口有两种形式,一种类似于百度无需进行繁复的OAuth认证,不过限制比多:另一种是采用GAE平台OAuth2.0的认证方式,限制较少.新浪微博的短网址API接口服务也类似于谷歌,第一种只需要取得新浪微博开放平台的APPKEY即可使用,第二种是采用OAuth2.0认证的方式.网易只提供类似于新浪微博提供的第二种AP