php对接易宝支付实现真实交易

php对接易宝支付实现真实交易

    • 易宝支付通用接口文档
    • 源码
    • 目录结构
    • index.htm界面
    • index.htm代码
    • do.php界面
    • do.php代码
    • md5.php
    • 交易界面
    • 支付界面
    • 确认界面
    • 交易成功界面
    • 回调界面 callback.php

学习资源推荐 https://blog.csdn.net/qq_42813491/article/details/90213353

易宝支付通用接口文档

链接:https://pan.baidu.com/s/1Na6tZ6obMKeXXFhSqAuBDw 提取码:qp1k

源码

链接:https://pan.baidu.com/s/1GG7u4O-6OqcHp6YEjNC_Yw 提取码:ii4g


目录结构

php对接易宝支付实现真实交易_第1张图片


index.htm界面

php对接易宝支付实现真实交易_第2张图片


index.htm代码


<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>php对接易宝支付实现真实网上交易title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <style>
        .box {
            width: 600px;
            margin: 100px auto;
            background: skyblue;
            text-align: center;
            padding: 30px;
        }
        
        p {
            line-height: 30px;
        }
    style>
head>

<body>
    <div class="box">
        <form action="do.php" method="POST">


            <p>
                <label>订单编号:<input type="text" name="p2_Order" id="init_order" />label>

            p>
            <p>
                <label>支付金额:<input type="text" name="p3_Amt" id="init_money"/> label>

            p>
            <p>
                <label>招商银行<input type="radio" name="pd_FrpId" value="CMBCHINA-NET" />label>
                <label>工商银行<input type="radio" name="pd_FrpId" value="ICBC-NET" />label>
                <label>农业银行<input type="radio" name="pd_FrpId" value="ABC-NET" />label>
                <label>建设银行<input type="radio" name="pd_FrpId" value="CCB-NET" />label>
            p>
            <input type="submit" class=" btn btn-success" value="确认支付" />
        form>
    div>
    <script src="js/jquery-1.11.3.min.js">script>
    <script>
        //上述表单的name的值和单选框value值不要动,不要动,是易宝支付规定的参数值
        $(function() {

            init();
            //初始化函数,随机生成订单编号和真实交易金额
            function init() {
                //随机生成订单编号
                var order_str = "";
                for (var i = 0; i < 10; i++) {
                    order_str += parseInt(Math.random() * 10)
                }
                $("#init_order").val(order_str);
                //随机生成真实交易金额,为避免破产,这里写死了,一分钱
                $("#init_money").val("0.01");
            }

        })
    script>
body>

html>

do.php界面

订单编号随机生成
php对接易宝支付实现真实交易_第3张图片


do.php代码

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>php对接易宝支付实现真实网上交易</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <style>
        body{
            text-align: center; 
            background:#ccc;
        }
        .info {
            width: 600px;
            margin: 100px auto 20px auto;
            background: skyblue;
        }
        
        p {
            line-height: 30px;
        }

        
    </style>
</head>

<body>


include "md5.php";
//固定参数,不可变,顺序也不可变
$p0_Cmd="Buy";
$p1_MerId="10001126856";
$p2_Order=$_REQUEST['p2_Order'];
$p3_Amt=$_REQUEST['p3_Amt'];
$p4_Cur="CNY";
$p5_Pid="";
$p6_Pcat="";
$p7_Pdesc="";
$p8_Url="127.0.0.1/php_pay/callback.php";//支付成功后,返回提示信息,注意,不成功不会跳转到这里
$p9_SAF="0";
$pa_MP="";
$pr_NeedResponse="1";
$pd_FrpId=$_REQUEST['pd_FrpId'];
//拼接商务参数,固定不变
$data="";
$data=$data.$p0_Cmd;
$data=$data.$p1_MerId;
$data=$data.$p2_Order;
$data=$data.$p3_Amt;
$data=$data.$p4_Cur;
$data=$data.$p5_Pid;
$data=$data.$p6_Pcat;
$data=$data.$p7_Pdesc;
$data=$data.$p8_Url;
$data=$data.$p9_SAF;
$data=$data.$pa_MP;
$data=$data.$pd_FrpId;
$data=$data.$pr_NeedResponse;

//商户私钥
$merchantKey="69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
$hmac=HmacMd5($data,$merchantKey);//加密处理,商户必须将生成的RSA密钥对和IP向易宝报备,然后获取易宝公钥
?>


<div class="info">
    <p>订单编号 echo $p2_Order;?></p>
    <p>支付金额  echo $p3_Amt; ?></p>
</div>
<form action="https://www.yeepay.com/app-merchant-proxy/node"method="post">
    <input type="hidden"name="p0_Cmd"value="$p0_Cmd;?>"/>
    <input type="hidden"name="p1_MerId"value="$p1_MerId;?>"/>
    <input type="hidden"name="p2_Order"value="$p2_Order;?>"/>
    <input type="hidden"name="p3_Amt"value="$p3_Amt;?>"/>
    <input type="hidden"name="p4_Cur"value="$p4_Cur;?>"/>
    <input type="hidden"name="p5_Pid"value="$p5_Pid;?>"/>
    <input type="hidden"name="p6_Pcat"value="$p6_Pcat;?>"/>
    <input type="hidden"name="p7_Pdesc"value="$p7_Pdesc;?>"/>
    <input type="hidden"name="p8_Url"value="$p8_Url;?>"/>
    <input type="hidden"name="p9_SAF"value="$p9_SAF;?>"/>
    <input type="hidden"name="pa_MP"value="$pa_MP;?>"/>
    <input type="hidden"name="pd_FrpId"value="$pd_FrpId;?>"/>
    <input type="hidden"name="pr_NeedResponse"value="$pr_NeedResponse;?>"/>
    <input type="hidden"name="hmac"value="$hmac;?>"/>
    <input type="submit" class="btn btn-success" value="确认支付">
</form>

</body>

</html>

md5.php



//易宝支付交易加密函数
function HmacMd5($data,$key){
$key=iconv("GB2312","UTF-8",$key);
$data=iconv("GB2312","UTF-8",$data);
$b=64;
if(strlen($key)>$b){
$key=pack("H*",md5($key));
}
$key=str_pad($key,$b,chr(0x00));
$ipad=str_pad('',$b,chr(0x36));
$opad=str_pad('',$b,chr(0x5c));
$k_ipad=$key ^ $ipad;
$k_opad=$key ^ $opad;
return md5($k_opad . pack("H*",md5($k_ipad . $data)));
}

?>


交易界面

php对接易宝支付实现真实交易_第4张图片

支付界面

php对接易宝支付实现真实交易_第5张图片


确认界面

php对接易宝支付实现真实交易_第6张图片

交易成功界面

php对接易宝支付实现真实交易_第7张图片

回调界面 callback.php

callback.php

     echo "恭喜,支付成功,激动否?";?>

写的比较简单,不成功不会到这里的
在这里插入图片描述

学习资源推荐 https://blog.csdn.net/qq_42813491/article/details/90213353

你可能感兴趣的:(PHP)