第三方支付宝支付(非真实金额支付)

config.php配置

'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'],
]
表单抬起第三方连接

echo "<form id='alipayment' action='/pluegin/alipay/wappay/pay.php' method='post' style='display:none'>
    <input id='WIDout_trade_no' name='WIDout_trade_no' value='1000'/>
    <input id='WIDsubject' name='WIDsubject' value='品优购订单' />
    <input id='WIDtotal_amount' name='WIDtotal_amount' value='1111'/>
    <input id='WIDbody' name='WIDbody' value='品优购订单,测试订单,你付款了我也不发货' />
</form><script>document.getElementById('alipayment').submit();</script>";

在第三方config.php中修改

$config = array (   
      //应用ID,您的APPID。
      'app_id' => "",

      //商户私钥,您的原始格式RSA私钥
      'merchant_private_key' => "",
      
      //异步通知地址
      'notify_url' => "http://www.day13.com/finish",
      
      //同步跳转
      'return_url' => "http://www.day13.com/finish",

      //编码格式
      'charset' => "UTF-8",

      //签名方式
      'sign_type'=>"RSA2",

      //支付宝网关
      'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",

      //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
      'alipay_public_key' => "",
      
   
);

//同步回滚

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' => '支付失败']);
        }

    }

/支付页面

<title>支付页</title>

<link rel="stylesheet" type="text/css" href="/static/home/css/pages-pay.css" />
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
</script>
<div class="cart py-container">
    <!--主内容-->
    <div class="checkout py-container  pay">
        <div class="checkout-tit">
            <h4 class="tit-txt"><span class="success-icon"></span><span  class="success-info">订单提交成功,请您及时付款,以便尽快为您发货~~</span></h4>
            <div class="paymark">
                <span class="fl">请您在提交订单<em class="orange time">30分钟</em>之内完成支付,超时订单会自动取消。订单号:<em>{$payData.rng}</em></span>
                <span class="fr"><em class="sui-lead">应付金额:</em><em  class="orange money">¥{$payData.price}</em></span>
            </div>
        </div>

        <div class="qrpay">
            <div class="step-tit">
                <h5>扫码付(支持支付宝、微信)</h5>
            </div>

        </div>
        <!--需增加的代码结束-->
        <div class="checkout-steps">
            <!--收件人信息-->
            <div class="step-tit">
                <h5>支付平台</h5>
            </div>
            <div class="step-cont">
                <ul class="payType">
                    {foreach $pay_type as $v}
                    <li class="" pay_code="{$v.pay_code}" {if($v.pay_code == 'alipay')}style="border: 2px solid rgb(228, 57, 60);"{/if}>{$v.pay_name}</li>
                    {/foreach}
                </ul>
            </div>
            <div class="hr"></div>
            <div class="submit sui-text-center">
                <a class="sui-btn btn-danger btn-xlarge" href="javascript:;">立即支付</a>
            </div>
        </div>
    </div>

</div>
<form id="payForm" action="/payfor" method="post">
    <input type="hidden" name="order_sn" value="{$payData.rng}">
    <input type="hidden" name="pay_code" value="">
    <input type="hidden" name="price" value="price">
</form>
<script type="text/javascript">
    $(function(){
        $("ul.payType li").click(function(){
            $(this).css("border","2px solid #E4393C").siblings().css("border-color","#ddd");
        });

        //去支付
        $('.submit').click(function(){
            //获取选择的支付方式
            var pay_code = '';
            $('.payType li').each(function(i,v){
                //i是下标,v是li标签
                //console.log($(v).css('border-color'));
                if($(v).css('border-color') == 'rgb(228, 57, 60)'){
                    //console.log($(v).attr('pay_code'));
                    pay_code = $(v).attr('pay_code');
                }
            });
            //将支付方式pay_code放到表单中
            $('input[name=pay_code]').val(pay_code);
            //发送请求 表单提交
            $('#payForm').submit();
        })
    })
</script>
<script>
    $(function(){
        //轮询, 查询支付状态
        var order_sn = "{$payData.rng}";
        var timer = setInterval(function(){
            $.ajax({
                "url":"{:url('home/order/status')}",
                "type":"post",
                "data":"order_sn=" + order_sn,
                "dataType":"json",
                "success":function(res){
                    if(res.code == 200 && res.data == 1){
                        clearInterval(timer);
                        location.href = "{:url('home/order/payresult')}?order_sn=" + order_sn;
                    }
                }
            });
        }, 1000);
    })
</script>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值