支付宝支付接口

下载SDK

SDK & Demo - 支付宝文档中心 (alipay.com)

下载完成后可以放在public目录下

然后进入config.php进行配置

因为这是纯支付宝支付所以一些东西都写死了

接收前段传来的值

   public function pay(){
        // 接收数据
        $data=input("post.");
        // 验证订单号是否存在(根据用户id以及订单号)
        $user_id=session('userInfo.id');
        $orderId=$data['orderId'];
        $order=\app\home\model\Order::getOrderByUserId($user_id,$orderId);
        if (!$order){
            // 抛出异常 记录日志
            echo '订单不存在';
        }
        echo "<form id='alipayment' action='/alipay/pagepay/pagepay.php' method='post'>
    <input id='WIDout_trade_no' name='WIDout_trade_no' value=".$orderId."/>
    <input id='WIDsubject' name='WIDsubject' value='假的唬人的'/>
    <input id='WIDtotal_amount' name='WIDtotal_amount' value='".$order['order_amount']."' />
    <input id='WIDbody' name='WIDbody' />
</form><script>document.getElementById('alipayment').submit();</script>";
    }

这时就会自动跳转到支付宝支付页面了

支付完成后就跳转到当初配置的回调地址了(验证支付信息)

这里为了更清楚的展示出来就没有进行封装

// 回调
    public function paySuccess(){
        $rollBack=input();
        require_once("./alipay/config.php");
        require_once './alipay/pagepay/service/AlipayTradeService.php';
        $alipaySevice = new \AlipayTradeService($config);
        $result = $alipaySevice->check($rollBack);
        // 回调成功 修改订单状态 支付方式 支付code
        $data=[
           'pay_code'=>'alipay',
           'pay_name'=>"支付宝",
            'order_status'=>1
        ];
        // 调用模型修改订单数据
        \app\home\model\Order::updateOrder($data,$rollBack['out_trade_no']);
        $user_id=session('userInfo.id');
        // 回调成功:将冻结库存要释放(此时真正购买了这件商品)
        $goods=OrderBusiness::getCartWithGoods();
        // 预扣库存
            foreach ($goods['cartData'] as $val){
                // 判断是否有SKU
                if (isset($val['spec_goods_id'])&& !empty($val['spec_goods_id'])){
                    // 冻结库存自减
                    Db::table('pyg_spec_goods')
                        ->where('id', $val['spec_goods_id'])
                        ->dec('store_frozen',$val['number'])
                        ->update();
                }else{
                    // 冻结库存自减
                    Db::table('pyg_goods')
                        ->where('id', $val['goods_id'])
                        ->dec('frozen_number',$val['number'])
                        ->update();
                }
            }
        // 清空购物车
        Cart::delGoodsCart($user_id);
        
        // 跳转到支付成功页面
        return view('paySuccess');
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呀哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值