thinkphp+支付宝接口功能
2018-06-22 05:19:21来源:未知 阅读 ()
1.
打开Submit.php文件,把以下代码去掉;require_once("alipay_core.function.php");require_once("alipay_md5.function.php");
同样,打开Notify.php文件,把以下两段代码去掉require_once("alipay_core.function.php");require_once("alipay_md5.function.php");
2.
01. 在配置文件中Conf/Config.php文件中对支付宝相关参数进行配置
'alipay_config'=>array(
'partner' =>'208****73', //这里是你在成功申请支付宝接口后获取到的PID;
'key'=>'p3****g48',//这里是你在成功申请支付宝接口后获取到的Key
'sign_type'=>strtoupper('MD5'),
'input_charset'=> strtolower('utf-8'),
'cacert'=> getcwd().'\\cacert.pem',
'transport'=> 'http',
//这里是卖家的支付宝账号,也就是你申请接口时注册的支付宝账号
'sign_type'=>'MD5',
),
'alipay' =>array(
//这里是卖家的支付宝账号,也就是你申请接口时注册的支付宝账号
'seller_email'=>'123@qq.com',
//这里是异步通知页面url,提交到项目的Pay控制器的notifyurl方法;
'notify_url'=>'http://www.xxx.com/Pay/notifyurl',
//这里是页面跳转通知url,提交到项目的Pay控制器的returnurl方法;
'return_url'=>'http://www.xxx.com/Pay/returnurl',
//支付成功跳转到的页面,我这里跳转到项目的User控制器,myorder方法,并传参payed(已支付列表)
'successpage'=>'User/myorder?ordtype=payed',
//支付失败跳转到的页面,我这里跳转到项目的User控制器,myorder方法,并传参unpay(未支付列表)
'errorpage'=>'User/myorder?ordtype=unpay',
),
02 .PayController 控制器中定义相关方法
html:
<input onkeyup="value=value.replace(/[^\d]/g,'') "
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
type="text" datatype="*" placeholder="请输入充值金额" value="" id="pay" name="pay">
<div onclick="save();" class="p-btn">确认</div>
function save(){
。。。。
$.ajax({
url:"{:U('User/payorder')}",
data:{"phone":phone,"pay":pay,"hideuid":hideuid},
type:'post',
success:function (data) {
if(data.success ==1){
layer.alert(data.message+'点击确定前往支付',{icon:6},function () {
window.location.href = Think.U('Portal/Pay/chongzhi','ordernumber='+data.newnum);
});
}
}
});
}
UserController:
payorder 方法:保存订单表数据,返回新增的订单号,使ajax 跳转到chongzhi 页面(在该页面中,点击支付,前往topay 支付)
PayController:
// 前往支付 啊
生成订单号 createOrderNo ,返回 2017052300001 00001 同一天,根据number(即订单数,无论订单下几个参会人) +1即可(同样适用于一个订单下多人参与)
锁就是数据库锁,最常见的体现就是事务。查询对象时需要防止同时操作的话也需要加锁
lock lock
支付宝服务器异步通知页面方法
(同步接口)支付成功后 跳转回该页面
充值后修改状态:
finishchongzhi
总结:
1.把执行支付操作(toalipay),处理异步返回结果(notifyurl_phone),处理跳转返回结果(returnurl_phone)三个支付接口的核心页面写到一个PayAction控制器中。
2.提交支付的页面中,可以在提交之前先把一些参数要传递的内容先通过隐藏域的方法组合好,比如金额先计算好,订单名称,订单描述等先用字符串组合好。然后提交表单,这样,在toalipay方法中只要直接构造传递参数,直接进行提交就行过了。
3.支付返回后的处理因为要在异步和跳转两个方法中都要进行相应的判断和处理,所以,把这些判断和处理写到一个自定义函数中,这样只要调用函数即可,使得代码更加清晰明了。
4.notify_url和return_url两种模式的返回url必须使用http://xxxxxxx这样的绝对路径,因为里是从支付宝平台返回到你的项目页面,不能使用相对路径。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP网页安全认证的实例详解 2020-01-16
- php调用云片网接口发送短信的实现方法 2019-12-14
- 详解PHP接口继承及接口多继承原理与实现方法 2019-12-13
- PHP实现手机归属地查询API接口实现代码 2019-09-23
- 微信支付:chooseWXPay:fail, the permission value is offl 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash