tp框架接入支付宝支付

tp框架接入支付宝支付

你好!有很多人在接入支付宝支付时无从下下手,那么在本篇文件,带你详细的了解并实现支付宝支付,废话不多说,咱们开始

第一步 下载demo

请自行注册开发者账号。

  1. 进入支付宝开放平台,文档中心》APP支付》下载SDK&Demo,放到tp框架的Vendor中
    tp框架接入支付宝支付_第1张图片

4.配置文件
在tp框架中配置接入支付宝需要的配置的参数

 //支付宝 支付配置
    'ALI_CONFIG'  => array(
        'gatewayUrl'            => 'https://openapi.alipay.com/gateway.do',//支付宝网关(固定)'
        'appId'                 => 'appIDappIDappIDappIDappIDappIDappID',//APPID即创建应用后生成
        //由开发者自己生成: 请填写开发者私钥去头去尾去回车,一行字符串
        'rsaPrivateKey'         =>  'AfewqFEWfefedwfewfewfewfewfewfewfwefewfewfeefwef',
        //支付宝公钥,由支付宝生成: 请填写支付宝公钥,一行字符串
        'alipayrsaPublicKey'    =>  'ewqdwqfwqdfwqfwqfwqfqwfwqfwqfwqfwqfwqferagrGERW',
        )
  1. 控制器代码
    调用alipay之前可根据自己的业务需求传入相应的参数,如我添加了一个订单,我把订单号传入do_alipay的方法中去进行支付,在回调中修改订单状态。进而完成支付。
 //每日刮分支付宝报名
    public function do_alipay($id){
    	if(IS_POST){
    	    Vendor('Alipay.aop.AopClient');  //引入alipay文件
            Vendor('Alipay.aop.request.AlipayTradeAppPayRequest');
            $huiyuan = M("huiyuan")->where("id = $id")->find();
            $out_trade_no = $huiyuan['order_sn'];//订单号
            $body = '年费会员';//商品名
            $subject = '教育';//商品介绍
            $order_amount = $huiyuan['money'];//总价
            $aliConfig = C('ALI_CONFIG'); //加载配置项
            $aop = new \AopClient();
            $aop->gatewayUrl = $aliConfig['gatewayUrl'];  //赋值网关
            $aop->appId = $aliConfig['appId']; //APPid 
            $aop->rsaPrivateKey = $aliConfig['rsaPrivateKey']; //私钥
            $aop->alipayrsaPublicKey=$aliConfig['alipayrsaPublicKey'];  //支付宝公钥
            $aop->apiVersion = '1.0';
            $aop->postCharset='UTF-8';
            $aop->format='json';
            $aop->signType='RSA2';
            $request = new \AlipayTradeAppPayRequest();
            $bizContent = "{"."\"body\":\"$body\","."\"subject\":\"$subject\","."\"out_trade_no\":\"$out_trade_no\","."\"timeout_express\":\"90m\","."\"total_amount\":\"$order_amount\","."\"product_code\":\"QUICK_MSECURITY_PAY\""."}";
            $request->setBizContent($bizContent);
            $request->setNotifyUrl('http://xxx.xxx.cn/Api/Notify/huiyuan_ali');//这里是设置回调方法
            $request->setReturnUrl($aliConfig['returnUrl']);
             // pageExecute 是PC和手机网站 有页面输出
             // Execute  API调用 没页面输出
             // SdkExecute APP服务端的
            // $result = $aop->pageExecute($request);//pc端
            $result = $aop->sdkExecute($request);
            return $result;
    	}
    }
  1. 回调方法

回调方法 我在里获取了订单号 对订单号修改了状态

public function huiyuan_ali(){
	     $order_sn = I("post.out_trade_no");
          // var_dump($order_sn);die;
          file_put_contents('./huiyuan.txt',$order_sn);
          $huiyuan = M('huiyuan')->where("order_sn = $order_sn")->find();
               if($huiyuan['status']=='1'){
                      // var_dump($e_time);die;
                  $arr = array(
                     'k_time' =>time(),
                     'e_time'=> strtotime("+1 year"),
                     'status' =>2, );
           $res = M("huiyuan")->where("id = '$huiyuan[id]'")->save($arr);
             $k_time = date('Y-m-d H:i:s');
             $e_time = date('Y-m-d H:i:s',strtotime("+1 year"));
            $row =  array('user_id' => $huiyuan['user_id'],
                          'name'=>'会员购买',
                          // 'cont'=>'恭喜,'.$k_time.'会员购买成功,'.$e_time.'到期',
                          'cont'=>'恭喜你成功充值年费vip会员',
                          'add_time'=>time());
            $res = M("new_log")->add($row);   

                  }
             echo "success";
      }
  1. 回调地址 可以为域名/模块名/控制器/方法
  2. 码字不易,求点赞
  3. 如果任何侵权行为请联系管理员删除

你可能感兴趣的:(支付)