zoukankan      html  css  js  c++  java
  • 开发自己的网上支付案例代码(易宝支付php)

    1.简单的图解(如上所示)

    易宝支付与支付宝是不一样的,但也有类似之处,支付宝是专门为淘宝软件开发的一套机制,资金会在中间支付公司(支付宝)停留,等待顾客确认,当顾客确认后,才会真正扣钱。而易宝支付时,资金不会在中间公司停留,这是两者最大的区别

    如果有什么不懂的,可以去查看 “易宝支付产品通用接口帮助文档”。

    注:这些参数在使用时是固定的,是各大银行规定好的,使用时不可改变。

    ***webpay1.php

    <html>
    <head>
    <meta http-equiv="content-type"content="text/html charset=utf-8"/>
    </head>
    <form action="webpay2.php"method="POST">
    <table>
    <tr>
    <td colspan="4">
    订单号:<input type="text"name="p2_Order"/>
    支付金额:<input type="text"name="p3_Amt"/>
    </td>
    </tr>
    <tr>
    <td colspan="4">
    请选择支付方式:
    </td>
    </tr>
    <tr>
    <td>
    <input type="radio"name="pd_FrpId" value="CMBCHINA-NET"/>招商银行
    </td>
    <td>
    <input type="radio"name="pd_FrpId"value="ICBC-NET"/>工商银行
    </td>
    <td>
    <input type="radio"name="pd_FrpId"value="ABC-NET"/>农业银行
    </td>
    <td>
    <input type="radio"name="pd_FrpId"value="CCB-NET"/>建设银行
    </td>
    </tr>
    <tr>
    <td colspan="4">
    <input type="submit"value="确认支付"/>
    </td>
    </tr>
    </table>
    </form>
    </html>

    webpay2.php

    <html>
    <head>
    <meta http-equiv="content-type"content="text/html charset=utf-8"/>
    </head>
    <?php
    include_once "common.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="";
    //网易支付成功后,给url返回信息
    $p8_Url="http://localhost:80/res.php";
    $p9_SAF="0";
    $pa_MP="";
    $pr_NeedResponse="1";
    $pd_FrpId=$_REQUEST['pd_FrpId'];
    注:以上13个参数是易宝支付规定好的,顺序也必须一致,顺序错了会引起下一步的密码生成错误,将无法开发成功。需要去查手册。

    $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;

    //这是易宝为商务提供的接口,也是固定不变的,不可以随意更改。

    //建议:使用时主义其中 “1”和“l”的区别,在本页中你可以区分的很清楚,但在ide中很难区分,我就是因为这个问题出错,整整查了一两个小时的错误,却无从查起。查的人都要崩溃了。
    $merchantKey="69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
    $hmac=HmacMd5($data,$merchantKey);
    ?>

    您的订单号是<?php echo $p2_Order;?>支付的金额是<?php  echo $p3_Amt; ?>
    <form action="https://www.yeepay.com/app-merchant-proxy/node"method="post">
    <input type="hidden"name="p0_Cmd"value="<?php  echo $p0_Cmd;?>"/>
    <input type="hidden"name="p1_MerId"value="<?php  echo $p1_MerId;?>"/>
    <input type="hidden"name="p2_Order"value="<?php  echo $p2_Order;?>"/>
    <input type="hidden"name="p3_Amt"value="<?php  echo $p3_Amt;?>"/>
    <input type="hidden"name="p4_Cur"value="<?php  echo $p4_Cur;?>"/>
    <input type="hidden"name="p5_Pid"value="<?php  echo $p5_Pid;?>"/>
    <input type="hidden"name="p6_Pcat"value="<?php  echo $p6_Pcat;?>"/>
    <input type="hidden"name="p7_Pdesc"value="<?php  echo $p7_Pdesc;?>"/>
    <input type="hidden"name="p8_Url"value="<?php  echo $p8_Url;?>"/>
    <input type="hidden"name="p9_SAF"value="<?php  echo $p9_SAF;?>"/>
    <input type="hidden"name="pa_MP"value="<?php  echo $pa_MP;?>"/>
    <input type="hidden"name="pd_FrpId"value="<?php  echo $pd_FrpId;?>"/>
    <input type="hidden"name="pr_NeedResponse"value="<?php  echo $pr_NeedResponse;?>"/>
    <input type="hidden"name="hmac"value="<?php  echo $hmac;?>"/>
    <input type="submit"value="确认网上支付">
    </form>
    </html>

    common.php

    此函数是一个固定的易宝生成密码的算法,直接用就可以了。

    <?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)));
    }

    /*$merchantKey="69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
    echo "val=".HmacMd5("hello",$merchantKey);*/
    ?>

    res.php

    <?php
    echo "支付成功";
    ?>

    注运行截图:

    注:这次开发是我个人亲自实验过的,所以尝试时请注意输入的支付金额,是真的会扣除,不要随意尝试哟!否则如果你不听话,瞬间成为无产阶级,请不要怪我!!!!!!!!

    本篇分享到此结束。

    革命尚未成功,同志仍需努力!

  • 相关阅读:
    在实体属性上通过注解格式化日期
    @Validated和@Valid区别:Spring validation验证框架对入参实体进行嵌套验证必须在相应属性(字段)加上@Valid而不是@Validated
    两种根据关键字查询的方法SQL
    excel批量导入数据
    下载excel模板
    上传人员照片
    身份证校验类
    把字符串参数分割成数组 传入SQL foreach遍历查询
    使用Hibernate-Validator优雅的校验参数
    如何使用Graphics2D在一张图片上画线(包括箭头)
  • 原文地址:https://www.cnblogs.com/aasu/p/9126095.html
Copyright © 2011-2022 走看看