欢迎您光临买源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点,服务永无止境!

ThinkPHP5.0集成支付宝扫码支付(PC端)

还是先下载支付宝电脑网站支付demo,目录结构如下:

1600858567-4c57a79582c05b7

把demo文件夹放到tp5的 vendor 文件夹下面,重命名为alipay:

1600858567-d992a4acbe32c16

配置 config.php 的支付参数,去蚂蚁金服商家中心找,或者使用沙箱测试环境。注意签名方式要和私钥、公钥的签名方式相同。

<?php
$config = array (	
    //APPID。
    'app_id' => "xxx",
 
    //商户私钥
    'merchant_private_key' => "xxx",
    
    //异步通知地址
    'notify_url' => "https://www.oyhdo.com/alipay/alinotify",
    
    //同步跳转
    'return_url' => "https://www.oyhdo.com/alipay/alinotify",
 
    //编码格式
    'charset' => "UTF-8",
 
    //签名方式
    'sign_type'=>'RSA2',
 
    //支付宝网关 (我使用的沙箱环境)
    'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",
        //'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
 
    //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    'alipay_public_key' => "xxx",
);

设置 log.txt 权限为777,以便记录日志。

Alipay.php控制器:

<?php
namespace app\index\controller;
use think\Controller;
class Alipay extends Controller
{
    public function index(){
        header("Content-type:text/html;charset=utf-8");
        
        $total_amount = input('post.total_amount');
        if($total_amount){
            //引入支付宝支付
            require_once VENDOR_PATH.'/alipay/config.php';
            require_once VENDOR_PATH.'/alipay/pagepay/service/AlipayTradeService.php';
            require_once VENDOR_PATH.'/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
 
            //商户订单号,商户网站订单系统中唯一订单号,必填
            $out_trade_no = input('post.out_trade_no');
 
            //订单名称,必填
            $subject = input('post.goods_name');
 
            //付款金额,必填
            $total_amount = $total_amount;
 
            //商品描述,可空
            $body = input('post.goods_body');
 
            //构造参数
            $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
            $payRequestBuilder->setBody($body);
            $payRequestBuilder->setSubject($subject);
            $payRequestBuilder->setTotalAmount($total_amount);
            $payRequestBuilder->setOutTradeNo($out_trade_no);
 
            //电脑网站支付请求
            $aop = new \AlipayTradeService($config);
            $response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);
 
            //输出表单
            var_dump($response);
        }else{
            $out_trade_no = 'ALPAY'.date('YmdHis'); //订单号
            $goods_name = '在线支付'; //商品名称
            $goods_body = 'test'; //商品描述
 
            $this->assign('out_trade_no',$out_trade_no);
            $this->assign('goods_name',$goods_name);
            $this->assign('goods_body',$goods_body);
            return view();
        }
    }
}

前台测试页面:

<!DOCTYPE html>
<html>
<head>
<title>alipay_test</title>
</head>
<body>
<form name=alipayment action="{:url('Alipay/index')}" method="post" target="_blank">
    商户订单号:<input type="text" name="out_trade_no" value="{$out_trade_no}" /><br/>
    订单名称:<input type="text" name="goods_name" value="{$goods_name}"/><br/>
    付款金额:<input type="text" name="total_amount" /><br/>
    商品描述:<input type="text" name="goods_body" value="{$goods_body}"/><br/>
    <button type="submit">付 款</button>
</form>
</body>
</html>

1600858568-5f6110a681d821d
扫码支付:

1600858568-33d365c0c02acd3

1600858570-34b498a5646d6d6

支付成功:

1600858570-79e437f16839bb6

 

转自CSDN博客,原文地址:https://blog.csdn.net/msllws/article/details/84334127

免责声明:
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

买源码 » ThinkPHP5.0集成支付宝扫码支付(PC端)

发表评论