zoukankan      html  css  js  c++  java
  • TP5.1支付宝遇到的坑

    遇到很多坑记录一下

    这里用的是电脑支付

    下载dome链接:https://docs.open.alipay.com/... 

    把demo放到extend目录,文件夹改名字为:alipay,方便后面操作

    有人说把需要用的类命名空间,namespace,这个人拉出去枪毙了,真的坑爹啊,命名空间加上后,可能是我linux系统,尽然找不到类了,拉出去枪毙,枪毙,墙壁!

    然后在config.php文件夹中配置appid、回调地址一系列参数,如果没有这个文件重新去官网下载

    我这里用的require引入

    /*支付宝支付*/
        public function pay(){
            header('Content-type:text/html;charset=utf-8');
            require '../extend/alipay/config.php';
            require '../extend/alipay/pagepay/service/AlipayTradeService.php';
            require '../extend/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
    
            //获取订单生成后传递过来的订单编号和金额
            $data=input('param');
            //商户订单号,商户网站订单系统中唯一订单号,必填
            $out_trade_no = '201791711599526';
    //        $out_trade_no = $data['sn'];
            //订单名称,必填
            $subject = "认证";
            //付款金额,必填
            $total_amount = '0.01';
    //        $total_amount = $data['money'];
            //商品描述,可空
            $body = "";
    
            $payRequestBuilder = new AlipayTradePagePayContentBuilder();
            $payRequestBuilder->setBody($body);
            $payRequestBuilder->setSubject($subject);
            $payRequestBuilder->setTotalAmount($total_amount);
            $payRequestBuilder->setOutTradeNo($out_trade_no);
    
            $aop = new AlipayTradeService($this->payconfig);
            /**
             * pagePay 电脑网站支付请求
             * @param $builder 业务参数,使用buildmodel中的对象生成。
             * @param $return_url 同步跳转地址,公网可以访问
             * @param $notify_url 异步通知地址,公网可以访问
             * @return $response 支付宝返回的信息
             */
            $response = $aop->pagePay($payRequestBuilder,$this->payconfig['return_url'],$this->payconfig['notify_url']);
            var_dump($response);
        }

    异步方法:

        //异步通知回调
        public function getToken(){
            try{
                $info = Request::param();
                $aop = new AopClient;
                $aop->alipayrsaPublicKey = '填写你的支付宝公钥';
                $flag = $aop->rsaCheckV1($info,NULL,"RSA2");     //验签
                if(!$flag){
                    Log::write('验签失败','ALIPAY_THORW');
                }else if($info['trade_status']=='TRADE_SUCCESS'){
                    //支付状态
                    if(!Db::table('order')->where('ordernum','=',$info['out_trade_no'])->find()){
                        $insertData = ['create_time'=>time(),'update_time'=>time(),'goodname'=>$info['subject'],'ordernum'=>$info['out_trade_no'],
                            'alipaynum'=>$info['trade_no'],'total_money'=>$info['total_amount'],'status'=>1];
                        Db::table('order')->insert($insertData);}
                }
            }
            catch (Exception $e){
                Log::write($e->getMessage(),'ALIPAY_THORW');
            }
        }

    同步方法:

        //网页付款成功后返回页面
        public function returnback(){
            echo "<h1>支付成功<h1>";
            halt(Request::param());
        }
  • 相关阅读:
    springboot2 pagehelper 使用笔记
    springboot2 config_toolkit 并且设置全局获取数据GlobalUtil
    springboot2 redis
    Python问题汇总
    MAC安装Win10系统安装相关问题
    DEDE开发网站总部
    DEDE 调用文章中略缩图的原图
    塑形动作
    dede初学
    打印机维护经验
  • 原文地址:https://www.cnblogs.com/zyfeng/p/12449470.html
Copyright © 2011-2022 走看看