1. https://openhome.alipay.com/platform/appDaily.htm?tab=info
进入沙箱应用,获取对应的appid,网关,设置好rsa2秘钥(应用公钥、支付宝公钥),使用安卓系统的手机扫描下载测试的支付宝app;
2.选中对应的功能应用(我目前做的是电脑网站支付),下载好对应的demo代码包,解压好放在tp5 的extend目录下;
结构如图(我改动过)
2.1 buildermodel 目录放了 AlipayTradeCloseContentBuilder.php ;AlipayTradeFastpayRefundQueryContentBuilder.php;
AlipayTradePagePayContentBuilder.php;AlipayTradeQueryContentBuilder.php;AlipayTradeRefundContentBuilder.php;
只是搬动一下文件而已,对应的代码没有改动过;
2.2 phpsdk 目录放了 aop 目录;lotusphp_runtime目录;AopSdk.php; 未改动代码;
2.3 service 目录放了 AlipayTradeService.php;把require_once dirname(dirname(dirname ( __FILE__ ))).'/AopSdk.php';改成了
require_once dirname(dirname ( __FILE__ )).'/phpsdk/AopSdk.php';其他代码未动;
2.4 Webpay.php 文件代码在 支付宝tp5对接(2)里;注意里面为啥用import,不用require_once等等函数去加载;
2.5 去配置文件里面配置需要的数据;
2.6 支付控制器Alipay; 主要易错代码这里补上,require_once PRO_PATH.'/application/extend/alipay/Webpay.php';
use alipay\Webpay;
$pay=new Webpay();
$pay->pagepay(config('deposit'),[
'setOutTradeNo'=>trim($_GET['out_trade_no']),//商户订单号,商户网站订单系统中唯一订单号,必填
'setSubject'=>trim($_GET['oid_subject']),//订单名称,必填
'setTotalAmount'=>trim($_GET['total_amount']),//付款金额,必填
'setBody'=>trim($_GET['oid_body']),//商品描述,可空
]);
其他的就不贴代码了;
2.7 前端调用测试代码;
<form id='pagepay'>
需求订单号:<input type='text' id="oid" name="oid" /><br/>
订单名称:<input type='text' id='oid_subject' name="oid_subject" /><br/>
付款金额:<input type='text' id='total_amount' name="total_amount" /><br/>
商品描述:<input type='text' id='oid_body' name="oid_body" /><br/>
<input type='button' class='btn' id="pagepay_btn" value="付款提交" /><br/>
</form>
<script>
$("#pagepay_btn").click(function(){
var oid = $("#oid").val();
var out_trade_no = '';
var oid_subject = $("#oid_subject").val();
var total_amount = $("#total_amount").val();
var oid_body = $("#oid_body").val();
$.ajax({
url:"/api/public/index.php/home/alipay/get_trade_no",
dataType:'text', async:false,
success:function(d){
out_trade_no = d;
}
});
window.open('/api/public/index.php/home/alipay/deposit_pagepay?oid='+oid
+'&out_trade_no='+out_trade_no+'&oid_subject='+oid_subject+'&total_amount='+total_amount
+'&oid_body='+oid_body);
});
</script>