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

14 篇文章 0 订阅

相关文章:ThinkPHP5.0集成微信扫码支付(PC端)
 

搞完了微信搞支付宝~~~

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

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

配置 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>


扫码支付: 

支付成功:

<?php /**  * 支付宝支付  */ return [         //应用ID,您的APPID。         'app_id' => "",         //商户私钥, 请把生成的私钥文件中字符串拷贝在此         'merchant_private_key' => "",         //异步通知地址         'notify_url' => "",         //同步跳转         'return_url' => "",         //编码格式         'charset' => "UTF-8",         //签名方式         'sign_type'=>"RSA2",         //支付宝网关         'gatewayUrl' => "https://openapi.alipay.com/gateway.do",         //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。         'alipay_public_key' => "", ];ThinkPHP5 支付宝支付扩展库, 包括手机网站支付、电脑网站支付支付查询、退款、退款查询、对账单等。用法电脑网站支付 Pagepay.php调用 \alipay\Pagepay::pay($params) 即可手机网站支付 Wappay.php调用 \alipay\Wappay::pay($params) 即可交易查询口 Query.php调用 \alipay\Query::exec($query_no) 即可交易退款口 Refund.php调用 \alipay\Refund::exec($params) 即可退款统一订单查询 RefundQuery.php调用 \alipay\RefundQuery::exec($params) 即可交易关闭口 Close.php调用 \alipay\Close::exec($query_no) 即可查询账单下载地址口 Datadownload.php调用 \alipay\Datadownload::exec($bill_type, $bill_date) 即可验签 Notify.php调用 \alipay\Notify::checkSign($params) 即可
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李维山

帮到你就行 不差钱

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

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

打赏作者

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

抵扣说明:

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

余额充值