Thinkphp5开发电脑网站支付宝支付详细流程(线上测试篇)

news/2024/5/11 19:55:36/文章来源:https://blog.csdn.net/jartins/article/details/81115689

在沙箱测试篇讲过的我在这里就不再做重复,详情请见上一篇PHP开发电脑网站支付宝支付详细流程(沙箱测试篇)

在沙箱测试的时候使用的是沙箱环境中的配置,现在进行线上测试,需要创建应用

1、创建应用

登录蚂蚁金服开放平台商户账号,进入管理中心

选择开发者中心->网页&移动应用

选择支付接入

根据开发需求填写基本信息

创建完成后,完善基本信息

上传应用图标

选择需要的功能(注:功能需要签约)

在开发配置这里,按照沙箱测试的时候一样,生成密钥,设置授权回调地址等,然后提交审核(审核需要1个工作日)

审核通过后会显示状态已上线,同样也可以看到appid

可以点击查看->应用信息查看你需要的信息和配置

官方创建应用详细流程请见(https://docs.open.alipay.com/399/106843/)

2、封装类库,选择需要的功能放入框架

我自己选择了支付模块的功能,找到付款需要的类库,全部放入extend

(需要的可以下载https://pan.baidu.com/s/17A2YMahZX6nNmS2sCwJKzQ)

我拿出配置文件放入application/extra目录下,格式改成return的数组形式

注意:我在配置文件里加入了seller_id的配置(seller_id可以在账户信息中查看)

建立一个支付的控制器,引入文件,具体代码如下


<?php
namespace app\index\controller;
use think\Controller;
//支付控制器
class Pay extends Controller{//发起电脑网站支付请求public function pagePay(){//商户订单号,商户网站订单系统中唯一订单号,必填$out_trade_no = trim($_POST['out_trade_no']);//订单名称,必填$subject = trim($_POST['subject']);//付款金额,必填 $total_amount = trim($_POST['total_amount']);//商品描述,可空//$body = trim($_POST['body']);//构造参数$payRequestBuilder = new \alipay\AlipayTradePagePayContentBuilder();// $payRequestBuilder->setBody($body);$payRequestBuilder->setSubject($subject);$payRequestBuilder->setTotalAmount($total_amount);$payRequestBuilder->setOutTradeNo($out_trade_no);$aop = new \alipay\AlipayTradeService();/*** pagePay 电脑网站支付请求* @param $builder 业务参数,使用buildmodel中的对象生成。* @param $return_url 同步跳转地址,公网可以访问* @param $notify_url 异步通知地址,公网可以访问* @return $response 支付宝返回的信息*/$response = $aop->pagePay($payRequestBuilder,config('alipay.return_url'),config('alipay.notify_url'));}//回调地址public function notify_url(){$arr=$_POST;$alipaySevice = new \alipay\AlipayTradeService(); $alipaySevice->writeLog(var_export($_POST,true));$result = $alipaySevice->check($arr);/* 实际验证过程建议商户添加以下校验。1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号,2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额),3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email)4、验证app_id是否为该商户本身。*/
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为一致的
//如果有做过处理,不执行商户的业务程序			
//注意:
//退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
}
else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//请务必判断请求时的total_amount与通知时获取的total_fee为一致的
//如果有做过处理,不执行商户的业务程序			
//注意:
//付款完成后,支付宝系统发送该交易状态通知
}
//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
echo "success";//请不要修改或删除
}else {//验证失败echo "fail";}}
}


在生成订单后,访问pagePay这个函数,发起电脑网站的支付请求

在请求回应后跳转到回调地址notify_url,若是支付正常,则更新数据库的信息,具体代码就不再这里进行展示了(如果实在需要可以私聊我)

注意:return_url 和 notify_url 的区别

notify_url为服务器通知,支付宝可以保证99.9999%的通知到达率,前提是您的网络通畅。 

return_url为网页重定向通知,是由客户的浏览器触发的一个通知,若客户去网银支付,也会受银行接口影响,由于各种影响因素特别多,所以该种类型的通知支付宝不保证其到达率。 

 

 

 

本章转载自 https://blog.csdn.net/yuijar/article/details/80291726

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_901781.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据采集之爬取2019最好大学网站前四列排名保存为csv文件格式简单案例 BeautifulSoup

数据采集之爬取2019最好大学网站前四列排名 保存为csv文件格式 简单案例 BeautifulSoup 目录&#xff1a; 第一步 观察网页 第二步 使用requests、 BeautifulSoup解析数据 第三步 代码呈现结果 开始&#xff1a; 第一步 观察网页 第二步 使用request、 BeautifulSoup解析…

钉钉扫码登录第三方web网站,及得到用户详情信息

1 注册应用 &#xff08;1&#xff09;授权页面logo地址&#xff1a; 扫码设备显示的图片 &#xff08;2&#xff09;回调域名&#xff1a;用户扫码成功确认后跳转的页面&#xff08;等待页面&#xff09;&#xff0c;携带code(临时授权码&#xff09;和status&#xff08;防止…

政府网站普查,国办标准VS省市标准,谁更严格?谁的合格率更高?

政府网站普查政策实施多年&#xff0c;标准变化多次&#xff0c;目前实施的标准是2019年4月份发布的国务院办公厅制定的《政府网站与政务新媒体检查指标》和《政府网站与政务新媒体监管工作年度考核指标》。 随着普查的常态化&#xff0c;国务院每年根据国办标准抽查一次&…

Day10 总结:产品开发必备的63个网站和工具

点此进入目录&#xff1a;[干货] 十天 教你从创意到上线APP 大家都知道&#xff0c;“爱阅”本身就为我们收集了大量常用的热门网站&#xff08;这里面当然包括了技术类和设计类的网站&#xff09;&#xff0c;不过本篇还是列出在开发过程中用到的网站供大家参考。 1、产品原…

网页嵌入其他网站或新打开其他网页并发送消息

一、背景 公司A想开发一个包含功能1、2、3…的网站&#xff0c;经过调研发现&#xff0c;公司B开发的网站包含了其所需的一半功能&#xff0c;公司A想直接把公司B的网站嵌入到他们的网站中或通过一个按钮跳转到公司B的网站&#xff0c;并希望对公司B的网站做一些控制。 二、相…

20个快速学习CSS的网站

1. A List Apart CSS Topics 老牌CSS站点&#xff0c;从1999年开始一直致力于整理收集面向标准网页开发的优秀文章。 2. CSS Help Pile 收集整理了大量的CSS相关资源&#xff0c;而且归档非常清晰&#xff0c;查询非常方便。 3. CSS Basics 通过一系列教程讲述了CSS的基本概…

个人网站重构

1 占位图片生成 <img src"http://placehold.it/350x150"> 不用引入任何外部文件&#xff0c;会自动形成对应数字大小的图片。 2 关于伪元素和伪类 css3 为了区分两者&#xff0c;已经明确规定了伪类用一个冒号来表示&#xff0c;而伪元素则用两个冒号来表示…

个人网站漏洞修复

环境&#xff1a;Centos 7 && Apache 目录遍历 1.打开Apache 配置文件夹 apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径&#xff1a;/usr/sbin/apachectl web目录:/var/www/html 2.打开httpd.conf,找到Options Indexes FollowSymLinks 将Options Ind…

Google Code项目代码托管网站上Git版本控制系统使用简明教程

转自http://blog.csdn.net/snowdream86/article/details/6706265 作为一个著名的在线项目代码托管网站&#xff0c;Google Code目前主要支持三种版本控制系统&#xff0c;分别为Git, Mercurial和 Subversion。Subversion即SVN相信大家都已经熟知了&#xff0c;这里我们要介绍的…

利用Vultr主机安转宝塔Web面板搭建wordpress博客建站教程

本篇文章是针对新手个人站长&#xff0c;来教大家利用Vultr主机如何安装宝塔Web面板搭建wordpress博客的方法。 1、一台Vultr VPS主机。 2、注册Vultr账号创建VPS实例 创建VPS实例 点击Deploy Now创建服务器实例&#xff0c;Status显示Running表示已经成功安装&#xff0c;…

阿里云服务器安装WordPress,搭建自己的博客网站

阿里云服务器安装WordPress&#xff0c;搭建自己的博客网站 很多人都想搭建自己的博客网站&#xff0c;如今要实现自己的博客网站已经很简单了。这几天我就尝试了一下&#xff0c;随便记录下来&#xff0c;方便后人。 一个自己的博客网站至少需要这几点: 1、服务器。现在有不少…

web前端开发项目资源网站,私家珍藏!分享给大家

1.CodePen&#xff1a; http://codepen.io/ 网站里有很多很酷的特效&#xff0c;而且可以看到效果的源代码&#xff0c;也可以看到实现效果&#xff0c;是一个非常不错的前端开发学习资源网站。 这个是CodePen网站里的一个效果的源码截图&#xff0c;是不是很酷呀&#xff0…

聊一聊如何搭建高性能网站哪一些事

在开发中经常会遇到网站的性能平静下来&#xff0c;打开慢的情况。我们平常开发中怎么一步一步排查这些问题并 解决问题呢 在快节奏的时代中&#xff0c;慢是个不容忍受的事情。 一、 为什么会‘慢’呢&#xff1f; 慢的情况是多种多样的&#xff0c;比如&#xff1a; 用户体验…

java面试——面试题(大型网站数据瓶颈——数据库分库分表)

为什么要做读写分离&#xff1f;减少主库的压力数据库的分库分表

从知名网上展会平台matchupexpo.com分析SEO所必备的8项技能

尽管 SEO 已经存在了几十年&#xff0c;但许多大学仍然没有教授 SEO&#xff0c;也没有在大多数营销课程中提及&#xff08;至少我的经验告诉我是这样的&#xff09;。SEO 专业人员来自不同的背景。有些是程序员&#xff0c;有些是企业家&#xff0c;有些是传统营销人员&#x…

肉眼可见、当天会有效果的SEO方法(针对SEO初学者)

SEO立杆见影的方法简单的说就是以下5个&#xff1a; 选择正确的网址。 为每个页面创建标题和描述&#xff0c;例如&#xff1a; <title>2021中国世博会B2B电子商务批发产品线上展会平台</title>, <head> <meta name "description" conten…

如何判断一个网站是WordPress搭建的网站以及网站SEO网络推广

有很多做外贸的朋友们经常会碰到需要做自己的独立站。这个时候就需要找对应的制作网站的公司进行咨询和洽谈。这个时候常常就会听到对方口中提到一个词&#xff0c;叫“WordPress”。那么到底什么是WordPress? 如何判断一个网站是WordPress搭建起来的呢&#xff1f; 首先WordP…

中国贸易展联亚国际云会展在线B2B贸易线上展览平台Matchupexpo网站SEO日志

本周基本工作情况汇总&#xff1a; 1.维持matchupexpo线上展会网站Alexa排名在8000以内&#xff0c;目前全球排名为7876&#xff0c;排查百度收录异常情况&#xff0c;确保整体收录情况得到增长. 2.每天百度和谷歌端维持发帖发文。 3.清查出网站中的死链&#xff0c;并进行死…

MatchupExpo互联网展会平台网站SEO优化工作总结

1.上周百度端开始重点布局知乎平台&#xff0c;用知乎文章和视频加大力度进行招展工作。 接下来考虑如何迅速吸粉从而进行流量转化。 2.上周每天百度和谷歌端维持发帖发文。完全手工发帖&#xff0c;未使用外挂软件&#xff0c;健康有序的进行外链发布。 3.上周相关网站的死链…