zoukankan      html  css  js  c++  java
  • PHP微信支付功能

    百度网盘:http://pan.baidu.com/s/1sl5GeVr  l5ud

    先下载一份sdk ,引入到自己的项目中,我用的是TP5,配置好namespace

    然后在项目中引入:

    之后,在去配置文件。config.php

    通常操作就是。

    用户访问一个方法,在方法里面new wechatpay。得到一个结果集 。

    然后再去调用sdk的一些内部方法

    把一些要存到数据库里面的。放在缓存里面待用,比如传入的金钱,还有类型,用户uid等。也可以做一个签名验证操作。我这里就不做了。

    这里访问成功的话,微信那边就会调用那个之前设置好的回调接口。就是之前我们在config.php里面设置的那个

    // 重置成功回调
        public function Callback()
        {
         
            $input = file_get_contents("php://input");  // 用输入流接收
          
            libxml_disable_entity_loader(true);
            $xml = json_decode(json_encode(simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
            Cache::set('ec',$xml);
    
            Log::write('测试日志信息,这是警告级别,并且实时写入'.var_export($xml, true),'notice');
            //判断是否是付款成功的回调
            if($xml && $xml['return_code'] == 'SUCCESS' && $xml['result_code'] == 'SUCCESS'){
    
                 // 以下是我的逻辑处理代码。
                $uid = Cache::get('userid');
    
                $data['openid'] = $xml['openid'];
                $data['total_fee'] = $xml['total_fee'];
                $data['out_trade_no'] = $xml['out_trade_no'];
                $data['time_end'] = strtotime($xml['time_end']);
                $data['uid'] = $uid;
                $data['money'] = Cache::get('money');
                $data['payObjType'] = Cache::get('payObjType');
                $data['payObjId'] = Cache::get('payObjId');
                $res = Db::name('moneydetail')->insert($data);
    
                Cache::set('res',$res);
                if($res){
                    switch ($data['payObjType']) {
                        case '1':
                            # 打赏帖子
                            Db('user_info')->where('id',$uid)->setInc('merits',$data['money']);
                            break;
                        case '2':
                            # 充值功德值
                            switch ($data['money']) {
                                case '900':
                                    $new_num = 99;
                                    break;
                                case '3900':
                                    $new_num = 439;
                                    break;
                                case '9900':
                                    $new_num = 1299;
                                    break;
                                case '19900':
                                    $new_num = 3199;
                                    break;
                                case '36900':
                                    $new_num = 7399;
                                    break;
                                case '99900':
                                    $new_num = 24999;
                                    break;
                                default:
                                    # code...
                                    break;
                            }
                            Db('user_info')->where('id',$uid)->setInc('merits',$new_num);
                            
                            break;
                        case '3':
                            # 打赏平台
                            Db('user_info')->where('id',$uid)->setInc('merits',$data['money']);
                            break;
                        
                        default:
                            # code...
                            break;
                    }
                    // 清空缓存
                    Cache::set('money',NULL);
                    Cache::set('userid',NULL);
                    Cache::set('payObjType',NULL);
                    Cache::set('payObjId',NULL);
                }
            }
      
        }

    基本上了

  • 相关阅读:
    start tag, end tag issues in IE7, particularly in xslt transformation
    用SandCastle为注释生成chm文档
    Firebug
    架构的重点
    Linux Shell常用技巧(十) 管道组合
    Linux JDK升级
    Linux Shell常用技巧(十二) Shell编程
    Packet Tracer 5.0实验(一) 交换机的基本配置与管理
    Linux Shell常用技巧(六) sort uniq tar split
    Linux Shell常用技巧(二) grep
  • 原文地址:https://www.cnblogs.com/chenrunxuan/p/7762329.html
Copyright © 2011-2022 走看看