PHP thinkcmf支付宝PC扫码支付以及手机网站支付

PHP thinkcmf支付宝支付

  • 1.下载对应的sdk包(这里演示PC扫码支付)
    PHP thinkcmf支付宝PC扫码支付以及手机网站支付_第1张图片

  • 2.在支付宝后台把相关数据设置好
    PHP thinkcmf支付宝PC扫码支付以及手机网站支付_第2张图片

3.配置文件中设置相应的参数
PHP thinkcmf支付宝PC扫码支付以及手机网站支付_第3张图片

  • PHP支付代码以及回调
/**
 *  PC扫码支付
*/
public function page_pay()
    {
        header("Content-type: text/html; charset=utf-8");
        //引入对应的sdk包
       	require_once EXTEND_PATH.'page/pagepay/service/AlipayTradeService.php';
        require_once EXTEND_PATH.'page/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
      	//订单号
        $out_trade_no = trim($_POST['order_no']);
        //订单名称,必填(此处为订单类型名称)
        $subject = trim($_POST['order_type']);

        //付款金额,必填
         $total_amount = 0.01;
        //商品描述,可空
        $body = '支付订单金额';
		 //构造参数
        $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setOutTradeNo($out_trade_no);
        $aop = new \AlipayTradeService(config('alipay'));
        /**
         * pagePay 电脑网站支付请求
         * @param $builder 业务参数,使用buildmodel中的对象生成。
         * @param $return_url 同步跳转地址,公网可以访问
         * @param $notify_url 异步通知地址,公网可以访问
         * @return $response 支付宝返回的信息
         */
        $notify_url = "同步通知地址,自己根据需求设置";
        $response = $aop->pagePay($payRequestBuilder,config('alipay.return_url'),$notify_url);
        //输出表单
        return $response;
    }

	//异步回调方法
	public function page_notify_url()
    {
        require_once EXTEND_PATH.'page/pagepay/service/AlipayTradeService.php';
        $arr=$_POST;
        $alipaySevice = new \AlipayTradeService(config('alipay'));
        $alipaySevice->writeLog(var_export($_POST,true));
        $result = $alipaySevice->check($arr);

        if($result) {//验证成功

            //支付宝交易订单号
            $out_trade_no = $_POST['out_trade_no'];

            if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
               //处理订单逻辑代码,也可在同步通知地址进行处理
            }
            return "success";
        }else {
            return "fail";
        }
    }



============================================================================

 /**
     * 支付宝手机网页支付
     */
    public function wap_pay()
    {
        header("Content-type: text/html; charset=utf-8");
        require_once EXTEND_PATH . 'wap/wappay/service/AlipayTradeService.php';
        require_once EXTEND_PATH . 'wap/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php';

        //商户订单号,商户网站订单系统中唯一订单号,必填
        
    	//订单号
       		$out_trade_no = trim($_POST['order_no']);

            //订单名称,必填(此处为订单类型名称)
	        $subject = trim($_POST['order_type']);
	
	        //付款金额,必填
	        $total_amount = $order_info['payment'];

			
			// $total_amount = 0.01;

            //商品描述,可空
            $body = '支付订单金额';

            //超时时间
            $timeout_express = "20m";

            $payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
            $payRequestBuilder->setBody($body);
            $payRequestBuilder->setSubject($subject);
            $payRequestBuilder->setOutTradeNo($pay_no);
            $payRequestBuilder->setTotalAmount($total_amount);
            $payRequestBuilder->setTimeExpress($timeout_express);
		
            $payResponse = new \AlipayTradeService(config('alipay'));
          
            $notify_url = "异步回调地址";
            $return_url = "同步跳转地址";
            $result = $payResponse->wapPay($payRequestBuilder,$return_url,$notify_url);
			
            return $result;
        }
    }


 /**
     * 支付宝手机网页异步回调通知--处理订单状态以及用户状态
     */
    public function wap_notify_url()
    {
    	
        require_once EXTEND_PATH.'wap/wappay/service/AlipayTradeService.php';
        
        $arr=$_POST;
        
        $alipaySevice = new \AlipayTradeService(config('alipay'));
        
        //日志打印
        $alipaySevice->writeLog(var_export($_POST,true));
        
        $result = $alipaySevice->check($arr);
		
        if($result) {//验证成功
			
            //支付宝交易订单号
            $pay_no = $_POST['out_trade_no'];

            if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
            
            	//处理支付成功后的逻辑
               
            }
            return "success";
        }else {

            return "fail";

        }
    }


ios系统,手机网站支付同步跳转,不能跳转到网页问题:
PHP thinkcmf支付宝PC扫码支付以及手机网站支付_第4张图片

注意:异步回调地址一定要外网可访问,没有权限,还有就是要关闭调试模式

你可能感兴趣的:(PHP,支付宝,后台)