alipay支付接口

<?php if ($fn_include = $this->_include("header.html", "/")) include($fn_include); ?>
<link href="<?php echo HOME_THEME_PATH; ?>/css/news.css" rel="stylesheet">


<link rel="stylesheet" href="{THEME_PATH}js/ui-dialog.css">

<script type="text/javascript" src="/statics/js/layer/layer.js"></script>

<style>
    .main2{
        margin-left:auto;
        position:static;
    }
    
    tr,table{
        width:100%;
        text-align:center;
        
    }
    tr{
        padding:0px 0 15px;
        display:block; /*将tr设置为块体元素*/
        margin:0 auto;
        width:96%;
    }
    .line{
        border-top:1px solid #dddddd;
        padding:30px 0 10px;
    }
    td{
        width:520px;
        height:32px;
        padding-left:5px;
        text-align:center;
    }
    td span:nth-child(1){
        width:90px;
        text-align:right;
        display:inline-block;
    }
    tr input,.sub{
        width:230px;
        height:30px;
        border-radius:5px;
        border:1px solid gainsboro;
        background:#f5f5f5;
        padding-left:10px;
        margin:0 10px;
    }
    .sub{margin-left:127px;width:200px;color:white;background:#108ee9;border:none;height:40px;margin-top:10px;font-size:16px;}
    
    tr td:nth-child(1){
        text-align:left;
    }
    
    .footer{
        margin-top:100px;
    }
</style>
<?php if ($fn_include = $this->_include("nav.html", "/")) include($fn_include); ?>
</div>

    <div class="main2" >
        <div style="width:90%;height:5rem;line-height:5rem;background:#108ee9;margin:10px auto;padding-left:10px;color:white;font-size:16px;">
            填写保单 - <?php echo $get['name']; ?>
        </div>
        
        <form action="/index.php?c=form_baoxianfuwu" class="form-horizontal" method="post" accept-charset="utf-8">
            
        <div style="width:90%;margin:10px auto;">
            <table id="" border="0">
                
                <input type="hidden" id="bxmc" value="{$get['name']}" />
                <input type="hidden" id="tbbxgsmc" value="{$get['company']}" />
                <input type="hidden" id="bxcpid" value="{$get['insid']}" />
                    
                <tr class="line">
                    
                    <td><span>投保人名称</span><input type="datetime" name="data[tbrmc]" id="tbrmc" value="江苏运满舱科技有限公司" readonly/></td>
                    <td><span>被保险人名称</span><input type="datetime" name="data[bbxrmc]" id="bbxrmc" value="" /></td>
                </tr>
                <tr>
                    <td><span>联系人</span><input type="datetime" name="data[lianxiren]" id="lianxiren" value="" /></td>
                    <td><span>联系电话</span><input type="datetime" name="data[lxdh]" id="lxdh" value="" /></td>
                </tr>
                <tr class="line">
                    <td><span>发票/运单号</span><input type="datetime" name="data[fpydh]" id="fpydh" value="" /><span style="color:green;">(选填)</span></td>
                    
                    <td><span>数量</span><input type="datetime" name="data[shuliang]" id="shuliang" value="" /><span>吨</span></td>
                </tr>
                
                <tr>
                    <td><span>货物种类</span><input type="datetime" name="data[hwzl]" id="hwzl" value="" /></td>
                    <td><span>货物名称</span><input type="datetime" name="data[hwmc]" id="hwmc" value="" /></td>
                </tr>
                
                <tr class="line">
                    <td><span>船名</span><input type="datetime" name="data[chuanming]" id="chuanming" value="" /></td>
                    <td><span>联系方式</span><input type="datetime" name="data[lxfs]" id="lxfs" value="" /></td>
                </tr>
                <tr>
                    <td><span>起运港</span><input type="datetime" name="data[qiyungang]" id="qiyungang" value="" /></td>
                    <td><span>目的港</span><input type="datetime" name="data[mudegang]" id="mudegang" value="" /></td>
                </tr>
                <tr>
                    <td><span>起运日期</span><input type="datetime" name="data[qiyunriqi]" id="qiyunriqi" value="" /><span style="color:red;">(请提前两小时提交表单)</span></td>
                    <td><span>邮寄地址</span><input type="datetime" name="data[youjidizhi]" id="youjidizhi" value="" /></td>
                </tr>
                <tr class="line">
                    <td><span>保险金额</span><input type="datetime" onblur="q()" name="data[baoxianjine]" id="baoxianjine" value="" />元(费率:0.2‰)</td>
                    <td><span>保费</span><input type="datetime" name="data[baofei]" id="baofei" value="" readonly/></td>
                </tr>
            </table>
            
            <button type="button" onclick="submit_baodan()" class="sub">提交保单</button></br>
            
            <input type="checkbox" name="gouxuan" id="gouxuan" value="" style="height:15px;width:272px;margin-top:15px;margin-right:-115px;vertical-align:-3px;" />已阅读并同意《水路货物运输保险条款》、《用户投保须知》
        </div>
        </form>
        
        
        <script>
        
        
        function submit_baodan(id){
            
            var bxmc = $('#bxmc').val();
            var tbbxgsmc = $('#tbbxgsmc').val();
            var bxcpid = $('#bxcpid').val();
            
            var tbrmc = $('#tbrmc').val();

            var bbxrmc = $('#bbxrmc').val();
            
            if(!bbxrmc){
                
                layer.alert('被保险人名称不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            var lianxiren = $('#lianxiren').val();
            
            if(!lianxiren){
                
                layer.alert('联系人不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            var lxdh = $('#lxdh').val();
            
            if(!(/^1[3|4|5|8][0-9]\d{4,8}$/.test(lxdh))){
                
                layer.alert('请输入正确的手机号码', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            
            
            var fpydh =$('#fpydh').val();
            
            
            var shuliang = $('#shuliang').val();
            if(!shuliang){
                
                layer.alert('数量不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            var hwzl= $('#hwzl').val();
          
            if(!hwzl){
                
                layer.alert('货物种类不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            var hwmc = $('#hwmc').val();
            
            if(!hwmc){
                
                layer.alert('货物名称不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            
            var chuanming = $('#chuanming').val();
            if(!chuanming){
                
                layer.alert('船名不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            var lxfs = $('#lxfs').val();
            
            if(!lxfs){
                
                layer.alert('联系方式不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            var qiyungang = $('#qiyungang').val();
            var mudegang = $('#mudegang').val();
            
            var qiyunriqi = $('#qiyunriqi').val();
            var youjidizhi = $('#youjidizhi').val();
            
            var baoxianjine = $('#baoxianjine').val();
            if(!baoxianjine){
                
                layer.alert('保险金额不能为空', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            var baofei = $('#baofei').val();
            
            var gouxuan =$("#gouxuan").is(":checked");
            
            if(!gouxuan){
                
                layer.alert('请勾选条款', {
                      skin: 'demo-class'
                     ,closeBtn: 1    // 是否显示关闭按钮
                      ,anim: 1 //动画类型
                      ,btn: ['确定'] //按钮
                      ,icon: 5    // icon
                     });
              
                return false;
            }
            
            $.ajax({
                type: "POST",
                url:"/index.php?c=form_baoxianfuwu",
                
                data: {"bxmc":bxmc,"tbbxgsmc":tbbxgsmc,"bxcpid":bxcpid,"tbrmc":tbrmc,"bbxrmc":bbxrmc,"lianxiren":lianxiren,"lxdh":lxdh,"fpydh":fpydh,"shuliang":shuliang,"hwzl":hwzl,"hwmc":hwmc,"chuanming":chuanming,"lxfs":lxfs,"qiyungang":qiyungang,"mudegang":mudegang,'qiyunriqi':qiyunriqi,"youjidizhi":youjidizhi,"baoxianjine":baoxianjine,"baofei":baofei,'order_status':0},
                
                dataType: 'json',
                
                success: function(msg) {
                    if(msg.status){
                        layer.msg('提交成功');
                        setTimeout(function () {                            
                            location.href = 'http://www.ymc56.cn/index.php?c=pay&m=index&form=baoxianfuwu&id='+msg.id;
                        }, 1000);
                    }else{
                        layer.msg('<font color=red>'+msg.code+'</font>', 3);
                    }
                },
                error:function(error){
                    alert("error");
                }
            });
            
            
        }
        
        
        
        function q(){
            var baoxianjine = $('#baoxianjine').val();
            $('#baofei').val(baoxianjine*0.0002);
        }
        

</script>

   <script>
       $('.hyzx2').addClass("active");
       $('.hyzx').mouseenter(function(){
           $('.hyzx').addClass("active");
            $('.hyzx2').removeClass("active");
            $('.hyzx1').removeClass("active");
       })
       $('.hyzx1').mouseenter(function(){
           $('.hyzx1').addClass("active");
           $('.hyzx2').removeClass("active");
           $('.hyzx').removeClass("active");
       })
   </script>
</div>

    <?php if ($fn_include = $this->_include("footer.html", "/")) include($fn_include); ?>
    <script>
    $(".hk").css("left",750)
         var hk
    $(".dhx").mouseenter(function(){
      hk = $(this).index();
      $(".hk").stop().animate({left:hk*150},300);
    }).mouseleave(function(){
      $(".hk").stop().animate({left:750},300);
    })
    </script>
<?php

require_once FCPATH.'branch/fqb/D_Form.php';

class Form_baoxianfuwu extends D_Form {

 public function __construct() {
  parent::__construct();
 }

 public function index() {
     $uid = $this->uid;
     $member = dr_member_info($uid);
     $username = $member['username'];
            $data = $this->input->post();
            $data['uid']=$uid;
            $data['author']=$username;
         $data['inputip'] = $this->input->ip_address();
     $data['inputtime'] = SYS_TIME;
            $result = $this->db->insert('imt_1_form_baoxianfuwu', $data);
            $id = $this->db->insert_id();
            if($result){
                exit(json_encode(['status' => 1, 'id' => $id,'message'=>'订单提交成功']));
            }else{
                exit(json_encode("数据提交失败"));
            }
 }
}
<?php

if (!defined('BASEPATH')) exit('No direct script access allowed');

/* v3.2.0  */

class Pay extends M_Controller {

    /**
     * 构造函数
     */
    public function __construct() {
        parent::__construct();
    }

    public function msg() {
        $this->template->assign(array(
                'msg' => '提示信息'
            ));
        $this->template->display('msg.html');
    }
    
    public function index(){
        
        if($_GET['form']=="apply"){
            //培训课程
            $form = $this->db->where('id', $_GET['id'])->get('3_form_'.$_GET['form'])->row_array();
        } elseif ($_GET['form']=="gongyouyewu"){
            //供油业务
            
            $form = $this->db->where('id', $_GET['id'])->get('imt_1_form_gongyouyewu')->row_array();
            
        } elseif ($_GET['form']=="baoxianfuwu"){
            //保险服务
            $form = $this->db->where('id', $_GET['id'])->get('1_form_'.$_GET['form'])->row_array();
        }
        
        switch ($_GET['form']) {
            case 'apply':
                $course = $this->db->where('id', $form['courseid'])->get('imt_3_course')->row_array();
                $money = $course['price'];
                $title = '课程【'.$course['title'].'】费用';
                break;
                
            case 'gongyouyewu':
                
                $gongyouyewu = $this->db->where('id', $form['youpinid'])->get('imt_1_oiloffer')->row_array();
                
                $money = $form['zongfeiyong'];
                
                $title = '供油【'.$gongyouyewu['title'].'】费用';
                break;
            
            case 'baoxianfuwu':
                
                $baoxianfuwu = $this->db->where('id', $form['id'])->get('imt_1_form_baoxianfuwu')->row_array();
                
                $money = $baoxianfuwu['baofei'];
                
                $title = '保险【'.$baoxianfuwu['bxmc'].'】费用';
                break;
                
            
            default:
                // code...
                break;
        }
        if(IS_AJAX){
            $this->db->insert('member_paylog', array(
                'uid' => $this->uid,
                'type' => 'alipay',
                'note' => $title,
                'order' => $_GET['id'],
                'value' => $money,
                'module' => $_GET['form'],
                'status' => 0,
                'inputtime' => SYS_TIME
            ));
            $insert_id = $this->db->insert_id();
            if($insert_id){
                echo 'http://www.ymc56.cn/index.php?c=pay&m=pay&id='.$insert_id;
            }
        } else {
            $this->template->assign(array(
                    'title' => $title,
                    'money' => $money
                ));
            $this->template->display('pay.html');            
        }
    }
    
    public function pay(){
        $id = $_GET['id'];
        $order = $this->db->where('id', $id)->get('member_paylog')->row_array();
        $pay = $order['type'];
        $title = $order['note'];
        $sn = "FC-{$id}-".$this->uid.'-'.$order['module'].'-'.$order['order'];
        $money = $order['value'];
        $result = NULL;        require_once WEBPATH.'api/pay/'.$pay.'/pay.php';
        echo $result['form'];
    }
}
<?php

$pay = require WEBPATH.'api/pay/alipay/config.php';

$alipay_config['key'] = $pay['key'];
$alipay_config['partner'] = $pay['id'];
$alipay_config['sign_type'] = 'MD5';
$alipay_config['transport'] = 'http';
$alipay_config['return_url'] = SITE_URL.'api/pay/alipay/return_url.php';
$alipay_config['notify_url'] = SITE_URL.'api/pay/alipay/notify_url.php';
$alipay_config['input_charset']= 'utf-8';
$alipay_config['seller_email'] = $pay['username'];


if ($this->mobile && $pay['wap']) {
    // 手机接口

    $alipay_config['return_url'] = SITE_URL.'api/pay/alipay/wap_return_url.php';
    $alipay_config['notify_url'] = SITE_URL.'api/pay/alipay/wap_notify_url.php';

    require_once(WEBPATH.'api/pay/alipay/wap/alipay_submit.class.php');

    /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/
    //返回格式
    $format = "xml";
    $v = "2.0";
    $req_id = date('Ymdhis').rand(0, 9999);
    //必填,须保证每次请求都是唯一

    //**req_data详细信息**
    $notify_url = $alipay_config['notify_url'];
    $call_back_url = $alipay_config['return_url'];
    $merchant_url = SITE_URL;
    $seller_email = $alipay_config['seller_email'];
    $out_trade_no = $sn;
    $subject = $title;
    $total_fee = $money;
    $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';

    /************************************************************/

    //构造要请求的参数数组,无需改动
    $para_token = array(
        "service" => "alipay.wap.trade.create.direct",
        "partner" => trim($alipay_config['partner']),
        "sec_id" => trim($alipay_config['sign_type']),
        "format" => $format,
        "v" => $v,
        "app_pay" => "Y",
        "req_id" => $req_id,
        "req_data" => $req_data,
        "_input_charset" => trim(strtolower($alipay_config['input_charset']))
    );

    //建立请求
    $alipaySubmit = new AlipaySubmit($alipay_config);

    $html_text = $alipaySubmit->buildRequestHttp($para_token);

    //URLDECODE返回的信息
    $html_text = urldecode($html_text);

    //解析远程模拟提交后返回的信息
    $para_html_text = $alipaySubmit->parseResponse($html_text);

    //获取request_token
    $request_token = $para_html_text['request_token'];


    /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/

    $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';

    //构造要请求的参数数组,无需改动
    $parameter = array(
        "service" => "alipay.wap.auth.authAndExecute",
        "partner" => trim($alipay_config['partner']),
        "sec_id" => trim($alipay_config['sign_type']),
        "format" => $format,
        "v" => $v,
        "req_id" => $req_id,
        "req_data" => $req_data,
        "_input_charset" => trim(strtolower($alipay_config['input_charset']))
    );

    //建立请求
    $alipaySubmit = new AlipaySubmit($alipay_config);
    $result['form'] = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');

} else {
    // PC 接口

    require WEBPATH.'api/pay/alipay/alipay_submit.class.php';
    require WEBPATH.'api/pay/alipay/alipay_service.class.php';

    /**************************请求参数**************************/

    //构造要请求的参数数组
    $parameter = array(
        'service'   => 'create_direct_pay_by_user',
        'payment_type'    => '1',

        'partner'   => trim($alipay_config['partner']),
        '_input_charset' => trim(strtolower($alipay_config['input_charset'])),
        'seller_email' => trim($alipay_config['seller_email']),
        'return_url'  => trim($alipay_config['return_url']),
        'notify_url'  => trim($alipay_config['notify_url']),

        'out_trade_no' => $sn,
        'subject'   => $title,
        'body'    => fc_lang('会员(%s)支付订单ID:%s', $this->member['username'], $id),
        'total_fee'  => $money,
    );

    //构造即时到帐接口
    $alipayService = new AlipayService($alipay_config);
    $result['form'] = $alipayService->create_direct_pay_by_user($parameter);
}

有帮助(- 没帮助(-