不使用官网支付宝接口实现支付宝支付

     在pc端做支付宝支付时,本文章应该会给你一些帮助,支付宝支付没有微信支付那么多的坑,都有一些现成的,好了,废话不多说,进入正题。

    以下是你需要的一个文件夹,文件中有你需要的文件


各个文件都有详细的说明,我们来看看各个文件里面的内容吧

apipay.config.php

//合作身份者id,以2088开头的16位纯数字
$alipay_config['partner']		= '';

//收款支付宝账号,一般情况下收款账号就是签约账号
$alipay_config['seller_email']	= '';

//安全检验码,以数字和字母组成的32位字符
$alipay_config['key']			= '6i3teffpnospzruiad9l6g3wucxi2jhv';

//签名方式 不需修改
$alipay_config['sign_type']    = strtoupper('MD5');

//字符编码格式 目前支持 gbk 或 utf-8
$alipay_config['input_charset']= strtolower('utf-8');

//ca证书路径地址,用于curl中ssl校验
//请保证cacert.pem文件在当前文件夹目录中
$alipay_config['cacert']    = getcwd().'\\cacert.pem';

//访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
$alipay_config['transport']    = 'http';
你要使用到这个文件夹,最开始的也是最重要的一步,那就是签约一个即时到付 ,有这个才能使用,即时到付在支付宝官网里面有,我就不详细的说明了


第二个文件:alipayapi.php

require_once("alipay.config.php");
require_once("lib/alipay_submit.class.php");
        //支付类型
        
        $payment_type = "1";
        //必填,不能修改
        //服务器异步通知页面路径
        $notify_url = "http://112.74.28.54/alipay/notify_url.php";
        //需http://格式的完整路径,不能加?id=123这类自定义参数
        //页面跳转同步通知页面路径
        $return_url = "http://112.74.28.54/alipay/return_url.php";
        //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
        //防钓鱼时间戳
        $anti_phishing_key = "";
        //客户端的IP地址
        $exter_invoke_ip = "";
//构造要请求的参数数组,无需改动
    $con = mysql_connect("", "", "");
    mysql_select_db("", $con);
    $sql = "update dtb_order set pre_order_id ='$out_trade_no' where order_id=".$orderid;
    mysql_query($sql, $con);
    mysql_close();
$parameter = array(
		"service" => "create_direct_pay_by_user",
		"partner" => trim($alipay_config['partner']),
		"seller_email" => trim($alipay_config['seller_email']),
		"payment_type"	=> $payment_type,
		"notify_url"	=> $notify_url,
		"return_url"	=> $return_url,
		"out_trade_no"	=> $out_trade_no,
		"subject"	=> $subject,
		"total_fee"	=> $total_fee,
		"body"	=> $body,
		"show_url"	=> $show_url,
		"anti_phishing_key"	=> $anti_phishing_key,
		"exter_invoke_ip"	=> $exter_invoke_ip,
		"_input_charset"	=> trim(strtolower($alipay_config['input_charset']))
);

$alipaySubmit = new AlipaySubmit($alipay_config);
$html_text = $alipaySubmit->buildRequestForm($parameter,"get", "确认");
echo $html_text;

接下来是回调的url:notify_url.php

require_once("alipay.config.php");
require_once("lib/alipay_notify.class.php");

//计算得出通知验证结果
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();
if($verify_result) 
{
    //验证成功
    $out_trade_no = $_POST['out_trade_no'];//商户订单号
    $trade_no =$_POST['trade_no'];//支付宝交易号
    $trade_status = $_POST['trade_status'];//交易状态
    $jifen = $_POST['totol_points'];//自定义你所需要的参数
    $c_id = $_POST['c_id'];
    $total_fee = $_POST['total_fee'];
    if($_POST['trade_status'] == 'TRADE_FINISHED') {
        //判断该笔订单是否在商户网站中已经做过处理
    }else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
        
    }
    echo "success";
}
else
{
    //验证失败
    echo "fail";
}

最后一个就是成功返回的url:return_url.php

require_once("alipay.config.php");
require_once("lib/alipay_notify.class.php");
//计算得出验证结果
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyReturn();
if($verify_result) {//验证成功
    $out_trade_no = $_GET['out_trade_no'];//商户订单号
    $trade_no = $_GET['trade_no'];//支付宝交易号
    $total_fee = $_GET['total_fee'];
    $trade_status = $_GET['trade_status'];//交易状态
    $jifen = $_GET['jifen'];//交易使用的积分
    $c_id = $_GET['c_id'];//会员id
    if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
		//判断该笔订单是否在商户网站中已经做过处理
        $date = date('Y-m-d H:i:s', time());
        $con = mysql_connect("", "", "");
        mysql_select_db("", $con);
        $sql = "update dtb_order set status =6,payment_date='$date' where pre_order_id=" . $out_trade_no;
        mysql_query($sql, $con);
        $f =  $total_fee/1;//如果金额100=1
        $fee = (int) $f;
        if($fee>0)
        {
            $jifen =$jifen+$fee;
            $u_points = "insert into dtb_points_detail (user_id,create_date,type,program_id,rule_id,points) values ('$c_id','$date','add',1,1,'$fee')";
            mysql_query($u_points,$con);
        }
        $up_points = "update dtb_user_points set totol_points=totol_points-'$jifen' where user_id=" .$c_id;
        mysql_query($up_points,$con);
        $in_points = "insert into dtb_points_detail (user_id,create_date,type,program_id,rule_id,points) values ('$c_id','$date','add',1,1,'$jifen')";
        mysql_query($in_points,$con);
        mysql_close();
        echo '<script>window.location.href="https://www.jiaheyoupin.net";</script>';//支付成功所跳转的页面
    }
    else {
        echo "trade_status=".$_GET['trade_status'];
    }
    echo "验证成功<br />";
}
else
{
    //验证失败
    echo "验证失败";
}

最后就是你该怎么在你的项目中引入这个文件夹,我之前一直访问不到就是,我以为的路径跟实际的路径不一样,如果你也会发生访问不到文件夹时,看看是不是路径的问题:
$orderid=$Order->getId();
               $out_trade_no = $pid;//订单编号
               $subject = $shoppingname;
               $total_fee= $t_price;
               $body='test';
               $totol_points = $jifen;
               $c_id = $cust_id;//这些参数是我需要的
               //require '../src/Eccube/alipay/alipayapi.php';
               require 'alipay/alipayapi.php';//引入文件夹

以上就是我使用这个文件夹实现的支付宝支付的过程了,希望可以帮到你,赶快实现起来吧



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值