php沙箱支付 最简单

1.支付宝开放平台注册账号开启沙箱服务

2.能力管理,支付能力下载的SDK插件解压放到public/plugins文件夹下

1.开启沙箱

2.找到沙箱应用获取appid,秘钥等,点击查看可以查看秘钥信息

 3.全局配置文件config中配置以下代码段

//支付方式
'pay_type' => [
    'alipay' => ['pay_code'=>'alipay', 'pay_name'=>'支付宝', 'logo'=>'/static/home/img/_/pay2.jpg'],
    'wechat' => ['pay_code'=>'wechat', 'pay_name'=>'微信支付', 'logo'=>'/static/home/img/_/pay3.jpg'],
    'union' => ['pay_code'=>'union', 'pay_name'=>'银联', 'logo'=>'/static/home/img/_/pay4.jpg'],
],

4.在插件Alipay中找到config配置文件,配置相关参数

4.支付方法

    function pay()
    {
//        接收数据
        $data = request()->post();
//        print_r($data);die;
        $validate = $this->validate($data,[
            'order_sn'=>'require',
            'pay_code|支付方式'=>'require'
        ]);
         if($validate != true)
         {
             $this->error($validate);
         }
         $order = \app\home\model\Order::where('order_sn',$data['order_sn'])->find();
         if(!$order)
         {
             $this->error('订单不存在');
         }
         //将选择的支付方式,修改到订单表
         $pay_type = config('pay_type');
//         print_r($pay_type);die;
         $order->pay_code = $data['pay_code'];
         $order->pay_name = $pay_type[$data['pay_code']]['pay_name'];
         $order->save();
         echo "<form id='alipayment' action='/plugins/alipay/pagepay/pagepay.php' method='post' style='display:none'>
    <input id='WIDout_trade_no' name='WIDout_trade_no' value='{$order['order_sn']}'/>
    <input id='WIDsubject' name='WIDsubject' value='{$order['consignee']}' />
    <input id='WIDtotal_amount' name='WIDtotal_amount' value='{$order['order_amount']}'/>
    <input id='WIDbody' name='WIDbody' value='测试订单,你付款了我也不发货' />
</form><script>document.getElementById('alipayment').submit();</script>";


    }
  */
    public function callback()
    {
        //参考/plugins/alipay/return_url.php
        //接收参数
        $params = input();
        //参数检测(签名验证)  接收到的参数 和 支付宝传递的参数 是否发生改变
        require_once("./plugins/alipay/config.php");
        require_once './plugins/alipay/pagepay/service/AlipayTradeService.php';
        $alipaySevice = new \AlipayTradeService($config);
        $result = $alipaySevice->check($params);
        if($result){
            //验签成功
            $order_sn = $params['out_trade_no'];
            $order = \app\common\model\Order::where('order_sn', $order_sn)->find();
            //展示结果
            return view('paysuccess', ['pay_name' => '支付宝', 'order_amount'=>$params['total_amount'], 'order' => $order]);
        }else{
            //验签失败
            //展示结果
            return view('payfail', ['msg' => '支付失败']);
        }

    }

 html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{width: 1200px;height: 1000px;margin: 0 auto;}
        .title{width: inherit;height: 100px;padding: 30px;

            background-color:orangered;color: white;}
        ul li{display: block;float: left;margin-left: 30px;width:140px;height: 60px;
            list-style-type: none;
        }
        .content{
           padding: 20px;
            width:inherit;height:100px;}
        .btn{width: 120px;
            background-color:red;height: 40px;
            color:white; float: right;margin-right: 50px;border: none}
    </style>

</head>
<body>
  <div class="box">
      <div class="title">
          <h2>订单提交成功!去支付啦</h2>
          <p>剩余时间:23小时59分40秒</p>
      </div>
    <div class="content">
        <p>订单编号:<span>{$res.order_sn}</span></p>
        <p>订单价格:<span class="price">{$total_price}</span>元</p>
        <p>收货信息:<span>{$res.consignee}&emsp;{$res.address}</span></p>
    </div>
      <div>
          <p>&emsp;&nbsp;请选择以下支付方式</p>
          <ul>
              <li class="pay_code"  pay_code="{$res.pay_code}" {if( $res.pay_code == 'alipay')}style="border: 2px solid rgb(228, 57, 60);"{/if}><img src="/alipay.png" alt=""></li>
              <li><a href=""><img src="/wechat.png" alt=""></a></li>
          </ul>
      </div>
      <p>
          <button class="btn">去支付</button>
      </p>
  </div>
  <form id="payForm" action="{:url('home/order/pay')}" method="post">
      <input type="hidden" name="order_sn" value="{$res.order_sn}">
      <input type="hidden" name="pay_code" value="">
      <input type="hidden" name="totalprice" value="">
  </form>
</body>
</html>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
</script>
<script>

    $('.btn').click(function () {
        var order_sn = $('span:first').text();
        var totalprice = $('.price').text();
        var pay_code = $('.pay_code').attr('pay_code');
        $('input[name=pay_code]').val(pay_code);
        $('input[name=totalprice]').val(totalprice);
        //发送请求 表单提交
        $('#payForm').submit();

    })
</script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值