tp6第三方引入 支付宝沙箱支付

如果是个人测试时只需要更改alipay/config.php内的商户私钥,同步跳转,app_id,支付宝网关和支付宝公钥。

注:public下加入第三方文件

更改alipay/aop/AopClient.php 的第413行为:

foreach ($para_temp as $key => $val){
			if (false === $this->checkEmpty($val)) {
				//$val = $this->characet($val, $this->postCharset);
				$val = str_replace("'","'",$val);
				//$val = str_replace("\"",""",$val);
				$sHtml.= "<input type='hidden' name='".$key."' value='".$val."'/>";
			}
        }

在控制器内设置支付功能

//支付
Route::any('pay','base/pay');
  public function pay(Request $request)
    {
//        获取订单号
        $data = $request->post();
        $order_sn = $data['WIDout_trade_no'];
//        获取订单名称
        $name = $data['WIDsubject'];
//        查询订单价格
        $totalPrice = OrderBusiness::getCarData()['totalPrice'];

//        判断订单号是否被篡改
        $res = \app\home\model\Order::where('user_id', session('userinfo.id'))->where('order_sn', $order_sn)->find();
        if (!$res) {
            return errorX('订单号异常');
        }
        $pay_type = 'alipay';
        switch ($pay_type) {
            case 'alipay':
            {
                echo "<form id='alipayment' action='./alipay/pagepay/pagepay.php' method='post'>
                    <input id='WIDout_trade_no' name='WIDout_trade_no' value='" . $order_sn . "'/>
                    <input id='WIDsubject' name='WIDsubject' value='" . $name . "'/>
                    <input id='WIDtotal_amount' name='WIDtotal_amount' value='" . $totalPrice . "'/>
                    <input id='WIDbody' name='WIDbody' />
                </form><script>document.getElementById('alipayment').submit();</script>";
            }
        }
    }

如果考虑支付过程中断网或者网络异常,只需要用try{}catch(){}包裹住控制器内的支付模块,捕获异常即可

支付回调

//支付回调
Route::any('back','base/alipayRollBack');
  public function alipayRollBack()
    {
        $param = input();
        require_once("./alipay/config.php");
        require_once ("./alipay/pagepay/service/AlipayTradeService.php");
        $alipaySevice = new \AlipayTradeService($config);
        $result = $alipaySevice->check($param);
        if ($result) {//验证成功
            echo '验证成功';
        } else {
            echo "验证失败";
        }
    }

回调验证成功即为支付成功否则支付失败

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值