本源码是基于码支付API创建的

1、打开码支付官方,注册账号,登录账号

2、点击系统设置->复制码支付ID,码支付密钥

image.png

3、点击支付宝支付,上传支付宝商家收款码

image.png

4、下载码支付APP,登录APP,开启检测支付宝收款

image.png

5、代码上传到服务器

<?php
header("Content-type:text/html;charset=utf-8");


//获取相关配置
require "mzf_config.php";

//获得URL传入的值
$param = $_GET["title"];//获得自定义参数,我这里定义为商品标题,商品名称,直接在url传入
$price = $_GET["price"];//价格,直接在url传入

// 生成pay_id
$createPay_id = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
str_shuffle($createPay_id);
$Payid = substr(str_shuffle($createPay_id),0,16);

$data = array(
    "id" => $codepay_id,//你的码支付ID
    "pay_id" => "mzf_".$Payid, //唯一标识,用于标识本次支付的事件
    "type" => 1,//默认支付宝
    "price" => $price,//金额
    "param" => $param,//自定义参数
    "notify_url" => $notify_url,//异步通知地址
    "return_url"=>"",//跳转地址
    "page" => 4,//4则返回JSON
); //构造需要传递的参数

ksort($data); //重新排序$data数组
reset($data); //内部指针指向数组中的第一个元素

$sign = ''; //初始化需要签名的字符为空
$urls = ''; //初始化URL参数为空

foreach ($data AS $key => $val) { //遍历需要传递的参数
    if ($val == ''||$key == 'sign') continue; //跳过这些不参数签名
    if ($sign != '') { //后面追加&拼接URL
        $sign .= "&";
        $urls .= "&";
    }
    $sign .= "$key=$val"; //拼接为url参数形式
    $urls .= "$key=" . urlencode($val); //拼接为url参数形式并URL编码参数值

}
$query = $urls . '&sign=' . md5($sign .$codepay_key); //创建订单所需的参数
$url = "http://api2.xiuxiu888.com/creat_order/?{$query}"; //支付页面
$paydata_json = file_get_contents($url);
$arr = json_decode($paydata_json, true);
$qrcode = $arr["qrcode"]; //二维码
$pay_id = $arr["pay_id"]; //pay_id
$money = $arr["money"]; //pay_id
$order_id = $arr["order_id"]; //pay_id

//初始化订单
mysql_query("INSERT INTO mzf_alipay (pay_id) VALUES ('$pay_id')");
mysql_close($con);
?>

<!DOCTYPE html>
<html>
<head>
    <title>码支付-异步支付-支付宝</title>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-3.3.1.min.js"></script>
    <link rel="stylesheet" type="text/css" href="mzf_alipay.css">
    <link rel="icon" href="zhifubao.png" type="image/x-icon" /> 
</head>
<body>
<!-- 顶部 -->
<div id="topcon">
    <div class="top">
        <div class="logo">
            <img src="alipay-icon.png"/>
        </div>
    </div>
</div>

<!-- 二维码区域 -->
<div id="ewmcon">
    <div class="ewmdiv">
    <div class="tips">请打开支付宝扫码支付</div>
    <div class="tofee" style="font-family: '宋体';">¥<?php echo $money; ?>元</div>
        <div class="qrcode">
            <div class="ewmstatus"></div>
            <img src="<?php echo $qrcode; ?>">
        </div>
        <div id="goodsname" style="text-align: center;font-size: 16px;margin-top: 30px; color: #666;">订单名:<?php echo $param; ?></div>
        <div id="dingdanhao" style="text-align: center;font-size: 16px;margin-top: 10px; color: #666;">订单号:<?php echo $order_id; ?></div>
        <div id="expire"></div>
        <div id="paytips" style="text-align: center;color: #ccc;font-size: 14px;margin-top: 25px;">上面多少金额就得支付多少,一分不能差,否则无法显示支付结果</div>
    </div>
</div>

<input type="text" value="<?php echo $pay_id; ?>" id="pid" style="display: none;">
</body>

<!-- 异步订单 -->
<script>
var lunxun = setInterval("test()",1000);
function test() {
    var payid = $("#pid").val();
    $.ajax({
        type: "GET",
        url: "mzf_lunxun.php?payid=" + payid,
        dataType:"json",
        processData: false,
        success: function(data, textStatus) {   
        if(data.result == '0') {
            console.log("正在监听订单支付状态")
            }else{
                 console.log("支付完成,停止监听")
                 $("#topcon").html("<div class=\"top\"><div class=\"logo\"><img src=\"alipay-icon.png\"/></div></div>");
                    $("#ewmcon").html("<div class=\"ewmdiv\"><div class=\"tips\">您已扫码完成支付</div><div class=\"tofee\" style=\"font-family: '宋体';\">支付成功</div><div class=\"qrcode\" style='border:none;'><div class=\"ewmstatus\"></div><img src=\"alipay-success.png\"></div><div id=\"download\"><a href=\"download\" style=\"padding: 8px 10px;width:140px;border-radius:5px;margin:0 auto;border:1px solid #333;display: block;font-size:18px;\">下载源码</a></div></div>");  
                //停止轮询
                clearInterval(lunxun);
            }
        }
    });
}
</script>

<!-- 过期时间倒计时 -->
<script type="text/javascript">        
var maxtime = 1 * 60;
function CountDown() {
    if (maxtime >= 0) {
        minutes = Math.floor(maxtime / 60);
        seconds = Math.floor(maxtime % 60);
        msg = "0" + minutes + ":" + seconds;
        document.all["expire"].innerHTML = msg;
        if (maxtime == 5 * 60)
            console.log(maxtime);
            --maxtime;
    } else{
        clearInterval(expire);
        $("#expire").text("请重新发起支付")
        $("#ewmcon .ewmdiv .qrcode .ewmstatus").html("<div class=\"isexpire\">已过期</div>");
    }
}
expire = setInterval("CountDown()", 1000);                
</script>
</body>
</html>

6、发起支付

支付链接

http://域名/目录/index.php?titit=商品名称&price=价格

示例:点击体验

http://www.liketube.cn/test/mzf_alipay/index.php?title=里客云科技&price=0.01

7、支付页面

image.png

8、支付成功

image.png

9、DEMO

点击体验>>


TANKING
4.8k 声望511 粉丝

热爱分享,热爱创作,热爱研究。