本源码是基于码支付API创建的
1、打开码支付官方,注册账号,登录账号
2、点击系统设置->复制码支付ID,码支付密钥
3、点击支付宝支付,上传支付宝商家收款码
4、下载码支付APP,登录APP,开启检测支付宝收款
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。