• tp5.1接入支付宝网站支付


    1.登录支付支付平台[https://opendocs.alipay.com/open/270/106291] 下载对应的sdk

     2.将对应的SDK放在对应的tp5.1框架对应的目录 

     

    3.因为是外部加载的类库所以要使用composer加载下需要配置composer的配置文件composer.json

     4.加载后初始化composer加载下

     5.下载对应支付宝助手软件

     6.生成对应的公钥和私钥

     7.项目里面代码配置

     public function test(){
         $config = array (  
        //应用ID,您的APPID。
        'app_id' => "2016091600527108",
        //商户私钥
        'merchant_private_key' => "MIIEoQIBAAKCAQEAh8HP5Bji9cCWgNJUl3ttdUwOtdUS+eIFEJHWzNjbKOhjccbJxCOlMTAPlRIOnenhWhQmTd9+BsNPTt8MUL9DA3KjLnRZBH5HN+Ru/6zGO67ZM30kz6kPkrsbvpj6EtziaJSPjpXJvCrSW1hx9qZWHq8EMS6xPDHXHF5ikcevVlvn3wJK6Ey5vibyRnr1tqbD9bTT5pRPsm3bV+V9UNEkOLVrHvEdS1dgot+tSZ6iJsfDmqJvDbzvrdJMQK3GqjL6xwB5gii+mDNo4+Tb6XjqH3m3RUpz+P12nOVZGkA7SAHz1Uel8PgjzlIwBcIUc54uxQNHrrPWNWEnjTkFAWUe3wIDAQABAoH/SB6uUn7mE6g8TDNwvQjVHXtKVU7cxeNMzYCsnCaYRyMtsUPp7EkDeR4PKSJuoXWeQjxyHOyeBvm7KCtWX488CpjcF9G3eKudKhQw46LlrM82lCPnampl242LL7YVI/A0V1qU6SqqAUy+c8iIwn+bQLG5iGdFwLS5kliSBOAQRc/HJ3ox37GX3/JRoGx9BI1rVXA+I8hr9cjE5wji1ZZ3D5FiKfuOKbzcVJ90Z97WfECGeJjqaKCyNqvSI2SFA1IntIPBcVnbBS5rMClQRTley01cMCHq2mT6uAPYq5gPMIe/Ndl5jWFoNBAv3DFijGv3jlE3gs5vu4TZBSbuf9vBAoGBAMGT/Gy0yQnPV/A2EBf5F1pC0KpaKWWWRAmbQhKkklfPEUJJZ7d7StEQ6j/noL0f8YdjxvUPBty8PznioKmmIHZaNEtA0Vnotx/j2maxkeJr0+67hNukR0oslgJT+orgDgahiWxTlaGSCR8iVZ+XgVhHqDgjcVs/2YdXtghBI8S7AoGBALOIqPnGjDhGQ1l0qqZSMHj4zl8MXpA9qHJTmIVFtNK4o1LAJEdru5M00C82FegfI2RDzZJ0RtFcLVwjS+AEX2Ccel9GyafAW3V7LykciZa56UH350dqtn0qrGSLFyOjFAvO2w2Qew5QGyee8aRnxUd5Dk/eChvTuz1P3W5ZHv4tAoGAW646DEYnPPUtogAI6UG5FK+2YignmQxtFtuolGnLQbk5ZFqdu6GyEohfWXrbfxck7kmMTj4asuqZS1IRY6fhkgww3j9Jp7p3GKxyoNaS0FjfXB8F0nzgormxJlMdwy5QlkVlb5+6q3YdydgaE2bPBL+TZVsr8dqwrNAWz5wCU8cCgYBGVE2lcyLw1I2DmJFVEDNO4GCvmT/eD1lSV+8Snijkt1G7k+tiUxCq7PB03iIcyT3rBCieq5AmaY6XXnhVrEDUrte9RRSv80mgrv3dhAFeGzwGDJ/8ORB93d6kkFwjKLosmf7zxFqAU98fWUNd3QzKH+D8ZoXdOsdJkGS02pKqjQKBgQCeWRZer+m3DoLVMSKbXsv+GMWIehroniNp5X3pzIyctdS+tyQOnPnb9lpvnvD/Qag4ne7JteYhiCQGkFGXuxyyM+1OrbvLf2uy1rO7i9QFAQJghHHX3COlWFhho3n/60odmYyjD3cX64OwzaaE9ioq5J2VSaf1ay96nWgVMdqiwA==",
        
        //异步通知地址
        'notify_url' => "",
        //同步跳转
        'return_url' => "http://www.edu.com/index/suc",
    
        //编码格式
        'charset' => "UTF-8",
    
        //签名方式
        'sign_type'=>"RSA2",
        //支付宝网关
        'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",
    
        //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
        'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/QlP+m2M3bxSlQ/DOYbrBynmKiGAmpdCBrg2iLOvARvFuhYFJBb7em4MICvL8S1oj1mPIH7xPiBunc+W9Jgmm6j86tDJma4ylPucgTWTpa2Uv6y5ZW/Co2GJrQouq0wtbLV99NagLxLufFdusciXW6NqgxkptHGscW0HZajqIKk1Qv605nLWkrO4pmvlQps3ffxcds7GaUnBUpnBU7anEqkZcpY3w/B4Q8TxirXfSNRswnSLV9Tt70GQWqD01/hRPKL1wWK6uzaJ8MVbeXPUyZFuo+o8f5BHUTfxFww5cTbkelr90jA53cZgkcriGc4G5Efp1QTSjC24oqrIH10EQIDAQAB",
    );
    
         //商户订单号,商户网站订单系统中唯一订单号,必填
        $out_trade_no = 12321;
        //订单名称,必填
        $subject = trim("testdsfs");
        //付款金额,必填
        $total_amount = 30;
        //商品描述,可空
        $body = trim("sdfds");
      //构造参数
      $payRequestBuilder = new AlipayTradePagePayContentBuilder();
      $payRequestBuilder->setBody($body);
      $payRequestBuilder->setSubject($subject);
      $payRequestBuilder->setTotalAmount($total_amount);
      $payRequestBuilder->setOutTradeNo($out_trade_no);
      $aop = new AlipayTradeService($config);
      $response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);
    
      // //输出表单
      // var_dump($response);
    
        }
    

    8.调用结果

    9.上面同步通知成功实际已异步为准代码如下

    public function alipay_notify()
        {
            if (request()->isPost()) {
                import('alipay.pagepay.service.AlipayTradeService');
     
                $arr = request()->param();
                $alipaySevice = new AlipayTradeService(config('alipay'));
                $alipaySevice->writeLog(var_export(request()->param(), true));
                $result = $alipaySevice->check($arr);
                if ($result) {//验证成功
                    //商户订单号
                    $out_trade_no = $arr['out_trade_no'];
                    //支付宝交易号
                    $trade_no = $arr['trade_no'];
                    if ($arr['trade_status'] == 'TRADE_FINISHED' || $arr['trade_status'] == 'TRADE_SUCCESS') {
                        //查询订单是否真的已支付
                        import('alipay.pagepay.buildermodel.AlipayTradeQueryContentBuilder');
                        $RequestBuilder = new AlipayTradeQueryContentBuilder();
                        $RequestBuilder->setOutTradeNo($out_trade_no);
                        $response = $alipaySevice->Query($RequestBuilder);
                        if ($response->trade_status == 'TRADE_SUCCESS' || $response->trade_status == 'TRADE_FINISHED') {
                           
                        }
                    }
                    echo "success";
                } else {
                    //验证失败
                    echo "fail";
                }
            }
        }
    

      

     

    注意:其中有一个错误提示[http://www.tshinet.com/index.php/article/index/id/582.html] [https://www.fengyan.cc/1418.html]

  • 相关阅读:
    深入Java微服务之网关系列1:什么是网关
    logstash系列快速调试demo
    logstash系列input和output方案预研结果
    99zeppelin使用和一些预研
    filebeat系列如何给日志增加一些额外的标记字段
    filebeat系列快速调试demo
    logstash系列使用中的一些点
    Redis常用命令
    springboot使用外置tomcat
    Redis持久化和事务
  • 原文地址:https://www.cnblogs.com/zh718594493/p/14082505.html
Copyright © 2020-2023  润新知