TP5-支付宝支付接入-Poison

下载官方demo 放入extend下

<?php


namespace app\index\controller;
use think\Loader;
Loader::import('alipay.wappay.service.AlipayTradeService',EXTEND_PATH,'.php');
Loader::import('alipay.wappay.buildermodel.AlipayTradeWapPayContentBuilder',EXTEND_PATH,'.php');
Loader::import('alipay.config.php');
use think\Controller;

class Alipay extends Controller
{
    public function index(){
        return $this->fetch();
    }
    public function pay(){
        $config = array (
            //应用ID,您的APPID。
            'app_id' => "your app_id",
            //商户私钥,您的原始格式RSA私钥
            'merchant_private_key' => "121321313",
            //异步通知地址
            'notify_url' => "324234",

            //同步跳转
            'return_url' => "23423423",

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

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

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

            //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
            'alipay_public_key' => "23423423423",
        );
        $price = $this->request->post('price');
        //商户订单号,商户网站订单系统中唯一订单号,必填
        $out_trade_no = rand(100000,99999999);

        //订单名称,必填
        $subject = '测试';

        //付款金额,必填
        $total_amount = $price;

        //商品描述,可空
        $body = '商品描述测试';
        //超时时间
        $timeout_express="1m";
        //传入参数
        $payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setOutTradeNo($out_trade_no);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setTimeExpress($timeout_express);

        $payResponse = new \AlipayTradeService($config);
        $result = $payResponse->wapPay($payRequestBuilder,$config['return_url'],$config['notify_url']);

        return ;
    }

}

以上填入对应的参数 即可发起支付

接下来就是支付完成后回调的部分

 /**
     * 用于支付宝回调
     */
    public function notify_url(){
        $arr=$_POST;
        $alipaySevice = new \AlipayTradeService($config);//这里引入的配置 如果懒得引入 就自己写一下demo中的配置
        $alipaySevice->writeLog(var_export($_POST,true));
        $result = $alipaySevice->check($arr);
        if($result) {//验证成功
            /
            //请在这里加上商户的业务逻辑程序代
            //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
            //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
            //商户订单号
            $out_trade_no = $_POST['out_trade_no'];
            //支付宝交易号
            $trade_no = $_POST['trade_no'];
            //交易状态
            $trade_status = $_POST['trade_status'];
            if($_POST['trade_status'] == 'TRADE_FINISHED') {
                //判断该笔订单是否在商户网站中已经做过处理
                //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                //请务必判断请求时的total_amount与通知时获取的total_fee为一致的
                //如果有做过处理,不执行商户的业务程序
                //注意:
                //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
            } elseif ($_POST['trade_status'] == 'TRADE_SUCCESS') {
                //判断该笔订单是否在商户网站中已经做过处理
                //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                //请务必判断请求时的total_amount与通知时获取的total_fee为一致的
                //如果有做过处理,不执行商户的业务程序
                //注意:
                //付款完成后,支付宝系统发送该交易状态通知
            }
            //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
            echo "success";		//请不要修改或删除
        }else {
            //验证失败
            echo "fail";	//请不要修改或删除
        }
    }

就是这么简单,你学会了吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值