• tp3.2 支付宝手机网站支付


    手机网站支付接口,支付宝官方文档:https://b.alipay.com/signing/productSet.htm?navKey=all

    第一步:

    1. 1)登陆支付宝企业账号

      进入支付宝官网 ,登陆已进行过实名认证的企业账号。

    2. 2)选择支付产品

      进入支付宝产品大全页面,选择“手机网页支付”,点击“立即签约”。

    3. 3) 完善申请资料

      将需申请支付的网址、联系人信息填写完成后提交,等待支付宝审核。

    4. 4) 申请通过

      支付宝会在 5 个工作日内完成审核,审核完成后将以短信及邮件的方式告知企业。

    5. 5) 开通查询接口

      产品签约完成后,可登陆支付宝客服页面,寻找人工客服,要求开通账户明细与交易查询接口。 

    第二步:创建应用,填写相关信息,审核通过获取appid,上传应用公钥,获得支付宝公钥(要不生成的应用公钥和私钥保存好在下面还要用到这些参数)

    第三步:下载支付宝sdk链接(新版接口)https://docs.open.alipay.com/54/106682/   ,放在项目引入第三方类库文件夹下

    第四步:配置config

     1 <?php
     2 $config = array (    
     3         //应用ID,您的APPID。
     4         'app_id' => "2018032240265098",
     5         //异步通知地址
     6           'notify_url' => "http://xxx/Home/Alipay/notifyurl",
     7             //同步跳转
     8             'return_url' => "http://xxx/Home/Alipay/returnurl",
     9 
    10     //商户的私钥,此处填写原始私钥去头去尾,RSA公私钥生成:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.nBDxfy&treeId=58&articleId=103242&docType=1
    11         'private_key'    => "",
    12 
    13 
    14 //支付宝的公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner
    15     'alipay_public_key'=> "",
    16 
    17         //编码格式
    18         'charset' => "UTF-8",
    19 
    20         //签名方式
    21         'sign_type'=>"RSA2",
    22 
    23         //支付宝网关
    24         'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
    25 );
    View Code

    第五步:调起支付关键代码

    pay()方法

        $timeout_express="1m";
            $payRequestBuilder = new AlipayTradeWapPayContentBuilder();
            $payRequestBuilder->setBody($body);
            $payRequestBuilder->setSubject($subject);
            $payRequestBuilder->setOutTradeNo($out_trade_no);
            $payRequestBuilder->setTotalAmount($total_amount);
            $payRequestBuilder->setTimeExpress($timeout_express);
            $payResponse = new AlipayTradeService($alipay_config);//$alipay_config就是引用的支付宝配置好的config
         $result=$payResponse->wapPay($payRequestBuilder,$alipay_config['return_url'],$alipay_config['notify_url']);
    echo $result;
    notifyurl异步回调
         $arr=$_POST;
            $alipaySevice = new AlipayTradeService($config);
            $alipaySevice->writeLog(var_export($_POST,true));
            $result = $alipaySevice->check($arr);
            if($result) {//验证成功
                $out_trade_no = $_POST['out_trade_no'];
                //支付宝交易号
                $trade_no = $_POST['trade_no'];
                //交易状态
                $trade_status = $_POST['trade_status'];
                if($_POST['trade_status'] == 'TRADE_FINISHED'||$_POST['trade_status'] == 'TRADE_SUCCESS') {

    //判断支付状态是否成功,成功之后根绝项目逻辑写自己的代码
           $data['state']=1; 
    $res = D('api_order')->where(array('orders',$out_trade_no))->save($data); $type=2; $this->verificationcode($type);
    }
       echo "success"; //请不要修改或删除
    }
    else
      {
       //验证失败
          echo "fail"; //请不要修改或删除
      }
    returnurl同步回调
            $arr=$_GET;$alipaySevice = new AlipayTradeService($alipay_config);
            $alipaySevice->writeLog(var_export($_GET,true));
            $alipaySevice->writeLog(var_export($alipay_config,true));
            $result = $alipaySevice->check($arr);
            if($result) {//验证成功以后跳转到自己要跳的页面
             
                $this->redirect('/Home/Alipay/successpage');
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            }
            else {
                //支付失败
                echo "验证失败";
            }
     
     
    成为不了聪明的人,那就做一个有耐心、肯钻研,坚持不懈,永不放弃的人……
  • 相关阅读:
    【11.3】
    WPF中内嵌网页的两种方式
    .net的winform中DialogResult属性的使用
    MVC过滤器使用方法
    C#调用C++的DLL错误解决方法
    WPF中UserControl的属性和事件
    React架构之路
    读完这一篇,字符串格式化界的“白富美”(f-strings)抱回家!
    关于使用format()方法格式化字符串,读这一篇就够了!
    String,StringBuffer与StringBuilder
  • 原文地址:https://www.cnblogs.com/wrld/p/9117753.html
Copyright © 2020-2023  润新知