搞完了微信搞支付宝~~~
还是先下载支付宝电脑网站支付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>
扫码支付:
支付成功:
【版权声明】感谢转载,转载请注明出处。 李维山博客http://msllws.top