• php 做支付宝电脑网站和app支付


    首先支付宝的文档真是看得头晕眼花,摸不着北的感觉,网上百度PHP支付宝一堆都是花里胡哨的,看得一脸懵逼。所以自己整理了一下,其实也没那么复杂直接上代码:

    php 电脑支付的方法:

        /**
         * 支付宝支付
         *$order_sn 单号  $total_amount 价格
         */
        public function alipay($order_sn,$total_amount)
        {
            require_once INCLUDES_PATH.'class'.DS.'Pay'.DS.'mobile'.DS.'alipaytest/'.'AopClient.php';
            $aop = new AopClient();//这个类支付宝php服务端 都要用到 (app支付服务端也要用到这个类)
            $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';//支付宝网关,也就是接口地址
            $aop->appId = '201709010........';//APPID
            $aop->rsaPrivateKey =''";//商户的私钥()
            $aop->format = 'json';
            $aop->apiVersion = '1.0';
            $aop->postCharset= 'utf-8';
            $aop->signType = 'RSA2';
          
            $request = new AlipayTradePagePayRequest();//支付宝电脑网站支付需要用到的类 这个类支付宝SDK可以下载
            $request->setNotifyUrl(HTTP_HOST.'pay/alipay_notify.php');//支付结果的异步通知回调地址
            $request->setReturnUrl(HTTP_HOST.'pay/alipay_return.php');//同步回调回调地址
    
            $bizcontent = json_encode(array(
                'subject'=>'商品订单'.$order_sn,
                'out_trade_no'=>$order_sn,
                'body'=>'商品订单',
                'total_amount'=>sprintf('%.2f',$total_amount),
                'product_code'=>'FAST_INSTANT_TRADE_PAY',//支付类型,APP和电脑支付 手机支付是不一样的 所以这个类型也是不一样的
            ), JSON_UNESCAPED_UNICODE);
    
    
    
            $request->setBizContent($bizcontent);
            $test = $aop->pageExecute($request,'post');//支付宝返回来的地址,直接是可以跳转的
            echo $test;
    
    
        }

    附上所需要用到的类:

    
    
    

    只需要这三个类就好了,支付宝的sdk 满满的一堆 ,但是我们不需要那么多,需要用到类再把它抠出来就好了
     

    app 支付 我们PHP 服务端的代码,其实就是生成一堆支付的参数 直接上代码了,其实和上面的电脑支付没什么区别 只不过是参数有所变动:
        /**
         * 生成支付宝app支付参数
         * @param string $title
         * @param string $order_sn
         * @param float $amount
         * @return string
         */
        public function alipay_app($title, $order_sn, $amount)
        {
            require_once BASE_DATA_PATH.'/vendors/alipay/AopClient.php';
            $aop = new AopClient();
            $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
            $aop->appId = '20170901。。。';
           
            $aop->rsaPrivateKey = ''; //商户私钥 
            $aop->format = 'json';
            $aop->charset = 'UTF-8';
            $aop->signType = 'RSA2';
           
            $aop->alipayrsaPublicKey   = '';//支付宝公钥
            $request = new AlipayTradeAppPayRequest();
            $bizcontent = json_encode(array(
                'subject'=>$title,
                'out_trade_no'=>$order_sn,
                'timeout_express'=>'30m',
                'total_amount'=>sprintf('%.2f',$amount),
                'product_code'=>'QUICK_MSECURITY_PAY',
            ), JSON_UNESCAPED_UNICODE);
            $request->setNotifyUrl('http://xxx/control/alipay_notify.php');
            $request->setBizContent($bizcontent);
            $response = $aop->sdkExecute($request);
    
            return $response;
        }
    还是三个类 

    只不过这个类有所变动而已

    再者多了一个应用公钥:

    电脑支付是不要这个PUBLIC key的

    好啦 以上就是支付宝电脑网站支付和app 支付的方法  其实手机支付也是差不多的 变得就是支付类型 和支付类



    各位多多指教!
  • 相关阅读:
    菜鸟系列Golang学习 — 协程
    菜鸟系列Golang学习 — 切片
    菜鸟系列Golang学习 — 数组
    菜鸟系列Fabric —— Fabric-CA
    菜鸟系列计算机网络——TCP和UDP协议
    菜鸟系列Fabric源码学习 — kafka共识机制
    菜鸟系列Fabric源码学习 — 背书节点和链码容器交互
    Amazon's Dynamo 论文中文版
    3、递归(动态规划思想)
    2、链表(python实现)
  • 原文地址:https://www.cnblogs.com/lixiaoquan/p/7691827.html
Copyright © 2020-2023  润新知