• 微信支付


    做了两天微信支付,各种问题,还好一切已经OK。

    一:记录下的坑

    1,<a href="http://aaa.sss.com/Home/Wxpay/new_pay"><span class="submit">立即开通</span></a>  

    这个链接背后不能跟参数,如果跟了参数,微信返回错误

    7,微信支付成功后调用的接口,同时写入数据库:

    微信支付成功后调用接口:
    /** 企业:支付结果通知 (第三步:支付成功回调)
     * @param    接受微信服务器参数
     * @author   wymDon    2016.11.22
     */
    function firmnotify_post()
    {
    /*获取微信返回数据*/
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    //写入日志
    $this->logger($postStr);
    
    $msg =  $this->wechatpay->xmlstr_to_array($postStr);
    if($msg['return_code'] == 'SUCCESS' && $msg['result_code'] == 'SUCCESS')
    {
    /* 检测签名是否一致 */
    $remote_sign = $msg['sign'];
    unset($msg['sign']);
    $s = $this->wechatpay->getSign($msg);
    if($s != $remote_sign) 
    {
    $this->response(array('return_code'=>'FAIL','return_msg'=>'签名错误'), REST_Controller::HTTP_OK);
    exit;
    }
    
    /* 获取商户服务器订单 */
    $orders = $this->order->getOrderBySid($msg['out_trade_no']);
    
    if(!empty($orders) && $orders['pay_status'] != '2')
    {
    
    $data = array(
    'pay_status'=>'2',
    'pay_time'=>$msg['time_end'],
    'transaction_id'=>$msg['transaction_id'],
    'openid'=>$msg['openid'],
    );
    $this->order->updateOrder($data,$where = array('order_sn' => $msg['out_trade_no']));
    /* 更新会员到期日期 */
    $this->firm->updateFirmById($orders['user_id'],array('expire_time'=>strtotime('+1 months')));
    
    $this->response(array('return_code'=>'SUCCESS','return_msg'=>'OK'), REST_Controller::HTTP_OK);
    }
    $this->response(array('return_code'=>'SUCCESS','return_msg'=>'OK'), REST_Controller::HTTP_OK);
    }
    else
    {
    $this->response(array('return_code'=>'FAIL','return_msg'=>'NO DATA'), REST_Controller::HTTP_OK);
    }
    }
    
    //日志记录
    function logger($log_content)
    {
    $max_size = 100000;
    $log_filename = "/alidata/www/xml.txt";
    if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
    file_put_contents($log_filename, date('H:i:s')." ".$log_content."
    ", FILE_APPEND);
    }
    
  • 相关阅读:
    Java中的 多线程编程
    Python中的字典详解
    Python中的数据类型
    Python中的字符串操作总结(Python3.6.1版本)
    R语言绘制沈阳地铁线路图
    HIVE中的order by操作
    Hive中order by,sort by,distribute by,cluster by的区别
    HDFS shell命令
    HDFS入门
    Bootstrap_Datatable Ajax请求两次问题的解决
  • 原文地址:https://www.cnblogs.com/xiaoxiaomengxiangjia/p/6110337.html
Copyright © 2020-2023  润新知