【支付宝】对接手机网站支付踩坑点记录

前言

简单记录一下对接Wap支付的问题,alipay和wxpay认证过程差不多,有个体商户或企业即可,前者文档不易懂后者还好,但是wxpay门槛高,个人认为pc网站支付(native支付)就是为了收300认证费!

应用公私钥

在这里插入图片描述
第一个,用于去支付宝开放平台获取支付宝私钥
在这里插入图片描述

第二个,应用私钥RSA2048是商户私钥

开放平台产品绑定问题

问题:接入检测未通过,显示未绑定,点击绑定后显示绑定成功,并跳转到图三,再次刷新依然没有绑定成功

图一:
在这里插入图片描述

图二:
在这里插入图片描述

图三:

在这里插入图片描述

解决方案:
支付宝工作人员说,不需要去管,显示已开通即可,直接通过代码调用实现即可
在这里插入图片描述

对接测试

在这里插入图片描述
测试通过,发现没有问题,能在正常拉起支付
在这里插入图片描述

支付DEMO

https://opendocs.alipay.com/common/02kkv5?pathHash=17e7ce50

PHP下载
JAVA下载
.NET下载

在这里插入图片描述

源码目录结构说明
├─src
│  └─com.alipay
│      └─config
│          ├─AlipayConfig        配置类
│      └─util
│          ├─logFile        日志类
├─WebContent
│  └─META-INF
│  └─ wappay 手机网站支付
│          ├─close.jsp 统一收单交易关闭接口调试入口页面
│          ├─downloadurl.jsp 查询对账单下载地址接口调试入口页面
│          ├─ pay.jsp 支付宝手机网站支付接口(alipay.trade.wap.pay)接口调试入口页面
│          ├─query.jsp 统一收单线下交易查询调试入口页面
│          ├─refund.jsp 统一收单交易退款接口调试入口页面
│          ├─ refundquery.jsp 统一收单交易退款查询调试入口页面
│  └─ META-INF
│      └─ lib 依赖类库
│          ├─alipay-sdk-java-3.3.0.jar
│          ├─alipay-sdk-java-3.3.0-source.jar
│          ├─ commons-logging-1.1.1.jar
│          ├─ commons-logging-1.1.1-sources.jar
│       ├─index.html
│       ├─notify_url.jsp
│       ├─ return_url.jsp

编写业务逻辑

新建数据库,存放下单信息
在这里插入图片描述

下单操作

<?php
/* ** 功能:支付宝手机网站支付接口(alipay.trade.wap.pay)接口调试入口页面* 版本:2.0* 修改日期:2016-11-01* 说明:* 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。请确保项目文件有可写权限,不然打印不了日志。*/header("Content-type: text/html; charset=utf-8");
include '../../api/conn.php';require_once dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'service/AlipayTradeService.php';
require_once dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'buildermodel/AlipayTradeWapPayContentBuilder.php';
require dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'./../config.php';
if (!empty($_GET['openid'])){// 参数接收$out_trade_no =date("YmdHis").mt_rand(100,999).mt_rand(1000,9999);//订单创建$subject = ''; //订单名称,必填$openid= $_GET['openid'];//注册的手机号$recharge= $_GET['recharge'];//recharge 0余额1....$remaks = $_GET['remaks'];//remaks 各续费的服务id$money=$_GET['money'];//recharge为0时生效 付款金额,必填$body = '';//商品描述,可空
if ($recharge==0) {$total_amount=$money;$subject='鱿鱼助手-C币充值';
} else {//查询服务费$sql="SELECT * FROM `funtion` WHERE `id` = '$recharge'";$result = $conn->query($sql);if ($roows=mysqli_fetch_assoc($result)) {//success$total_amount=$roows['price'];$subject='续费'.$roows['name'];} else {die('请求余额出错');
}//查询服务费}// 参数接收//超时时间$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);// //创建订单到数据库$insert="INSERT INTO `alipay_order` (`id`, `out_trade_no`, `openid`, `name`, `money`, `is_pay`, `recharge`, `remaks`, `create_time`) VALUES (NULL, '$out_trade_no', '$openid', '$subject', '$total_amount', '0', '$recharge', '$remaks', CURRENT_TIMESTAMP)";$r=$conn->query($insert);// $result=$payResponse->wapPay($payRequestBuilder,$config['return_url'],$config['notify_url']);return ;
}
else{die("参数不正确拉起支付失败");
}
?>

异步通知操作

该部分回调简单,可根据自己的业务进行处理,部分构造demo已经提供,开发者做好自己的业务处理即可!

<?php
/* ** 功能:支付宝服务器异步通知页面* 版本:2.0* 修改日期:2016-11-01* 说明:* 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。*************************页面功能说明************************** 创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。* 该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。* 如果没有收到该页面返回的 success 信息,支付宝会在24小时内按一定的时间策略重发通知*/
require_once("config.php");
require_once("../api/conn.php");
require_once 'wappay/service/AlipayTradeService.php';$arr=$_POST;
$alipaySevice = new AlipayTradeService($config); 
$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') {$sq="UPDATE `alipay_order` SET `is_pay` = '1'  WHERE  out_trade_no='$out_trade_no'";$r=$conn->query($sq);//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序//请务必判断请求时的total_amount与通知时获取的total_fee为一致的//如果有做过处理,不执行商户的业务程序			//注意://付款完成后,支付宝系统发送该交易状态通知}//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——echo "success";		//请不要修改或删除}else {//验证失败echo "fail";	//请不要修改或删除}?>

数据库

在这里插入图片描述

下单流程

拉起支付时,在下单页面pay.php(/alipay/wappay)中插入订单创建记录到数据库,存储拉起支付的用户及订单信息,通过异步通知notify_url.php (/alipay)进行回调

支付成功将对应的支付订单号,支付状态改为支付成功,最后根据自己的业务进行编写即可

 else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {//下单成功操作
$sq="UPDATE `alipay_order` SET `is_pay` = '1'  WHERE  out_trade_no='$out_trade_no'";
$r=$conn->query($sq);//查询订单数据进行奖励}

最后

《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

推荐专栏:

《Python爬虫脚本项目实战》

该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦作者对python有很大的兴趣,完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

如果您对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!

🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐

【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

⭐⭐欢迎订阅⭐⭐
在这里插入图片描述

Python爬虫脚本项目实战
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

PROSAIL模型前向模拟与植被参数遥感提取代码实现

原文链接&#xff1a;PROSAIL模型前向模拟与植被参数遥感提取代码实现https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247602140&idx7&sn7c4ca9239865d536ba81ba4c26a34031&chksmfa820e3bcdf5872d540c0dfe8c533c8696c8b4658427aab254f246a739f96b36bc37…

IDEA 加大运行内存

IDEA 中&#xff0c;有时会出现运行卡顿的情况&#xff0c;大概率是内存不足导致的&#xff0c;可以通过如下步骤加大运行内存&#xff1a; 自定义虚拟机内存。 根据电脑内存大小设置&#xff0c;16G内存推荐设置为4G。 重启IDEA&#xff0c;使新配置生效。 显示内存占用。…

在选择试验台底座时,应注意哪些问题——河北北重

在选择试验台底座时&#xff0c;应注意以下几个方面&#xff1a; 底座尺寸和承载能力&#xff1a;底座的尺寸和承载能力应与试验台的尺寸和所需承载的设备重量相匹配&#xff0c;确保底座能够稳定承载试验台和设备。 材料和质量&#xff1a;底座的材料应具有足够的强度和耐久性…

【视觉论文】VIT - Vision Transformers

论文&#xff1a;AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 链接&#xff1a;https://arxiv.org/abs/2010.11929 很多人博主都写烂了的论文&#xff0c;我到现在才真正翻开论文看&#xff0c;21年的工作&#xff0c;正好是刚毕业那年&…

中医药性笔记

目录 当归黄芪党参白术甘草茯苓半夏陈皮升麻柴胡 当归 补血。 当归&#xff0c;腾讯医典 黄芪 土金之药。 补中气的同时补肺气。益卫固表、利水消肿、 腾讯医典黄芪 党参 土金之药。健脾益肺&#xff0c;生津养血。 党参补气之力弱于人参、用于脾肺气虚的轻症。 党…

TPS54560BQDDARQ1功能和参数介绍及如何进行热管理

制造商:Texas Instruments 产品品种:开关稳压器 RoHS:是 安装风格:SMD/SMT 封装 :SO-PowerPad-8 输出电压:0.8 V to 58.8 V 输出电流:5 A 输出端数量:1 Output 最大输入电压:60 V 拓扑结构:Buck 最小输入电压:4.5 V 开关频率:100 kHz to 2.5 MHz 最小作业温度:- 40 C 最大作业温…

贪吃蛇游戏C语言破解:成为编程高手的必修课!

​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ 文章专栏&#xff1a;C语言实战项目 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 1、游戏效果演示 贪吃蛇游戏效果演示 2、win32 A…

vue2+vxe-table实现表格增删改查+虚拟滚动

vue2vxe-table实现表格增删改查虚拟滚动 使用的vxe-table版本&#xff1a;v3.x (vue 2.6 长期维护版) 完整代码 <template><div><vxe-toolbar ref"xToolbar" export :refresh"{query: findList}"><template #buttons><vxe-b…

1W 1.5KVDC 3KVDC 隔离宽范围输入,单、双输出 DC/DC 电源模块——TP2L-1W 系列

TP2L-1W系列是一款高性能、超小型的电源模块&#xff0c;宽范围2&#xff1a;1,4:1输入&#xff0c;输出有稳压和连续短路保护功能&#xff0c;隔离电压为1.5KVDC&#xff0c;3KVDC工作温度范围为–40℃到85℃。特别适合对输出电压的精度有严格要求的地方&#xff0c;外部遥控功…

瑞_Docker(笔记超详细,有这一篇就够了)

文章目录 1 Docker入门1.1 卸载旧版Docker1.2 安装Docker1.2.1 安装Docker的yum库1.2.2 配置Docker的yum源1.2.3 安装Docker1.2.4 启动和校验&#xff08;开机自启&#xff09;1.2.5 配置镜像加速 1.3 使用示例&#xff1a;部署MySQL1.3.1 命令解读 2 Docker基础2.1 常见命令2.…

第二届 eBPF 开发者大会分享回顾 - Pipy 与 eBPF:重塑系统级编程的新范式

四月的西安&#xff0c;春意盎然&#xff0c;这座古城在温暖的春风中更添了几分旖旎风光。第二届 eBPF 开发者大会在西安顺利召开。 本次大会由西安邮电大学主办&#xff0c;主题为“发挥 eBPF 技术力量&#xff0c;提升计算机系统可观测性和性能”&#xff0c;旨在探讨和分享 …

世界读书日 | 开发者必读书单重磅来袭,华为云DTSE专家天团力荐

春色恰如许&#xff0c;读书正当时。 读书&#xff0c;就像解锁一把神秘钥匙&#xff0c;为开发者洞开新世界的大门&#xff0c;赋予他们破译复杂难题的能力、挑战未知领域的勇气。书页翻动间&#xff0c;开发者得以站在巨人的肩膀上&#xff0c;汲取前人经验&#xff0c;积蓄…

比特币之路:技术突破、创新思维与领军人物

比特币的兴起是一段充满技术突破、创新思维和领军人物的传奇之路。在这篇文章中&#xff0c;我们将探讨比特币发展的历程&#xff0c;以及那些在这一过程中发挥重要作用的关键人物。 技术突破与前奏 比特币的诞生并非凭空而来&#xff0c;而是建立在先前的技术储备之上。在密码…

自定义数据 微调CLIP (结合paper)

CLIP 是 Contrastive Language-Image Pre-training 的缩写&#xff0c;是一个擅长理解文本和图像之间关系的模型&#xff0c;下面是一个简单的介绍&#xff1a; 优点&#xff1a; CLIP 在零样本学习方面特别强大&#xff0c;它可以&#xff08;用自然语言&#xff09;给出图像…

lementui el-menu侧边栏占满高度且不超出视口

做了几次老是忘记&#xff0c;这次整理好逻辑做个笔记方便重复利用&#xff1b; 问题&#xff1a;elementui的侧边栏是占不满高度的&#xff1b;但是使用100vh又会超出视口高度不美观&#xff1b; 解决办法&#xff1a; 1.获取到侧边栏底部到视口顶部的距离 2.获取到视口的高…

操作系统:进程间通信 | 管道

目录 1.进程间通信介绍 1.1.简要介绍 1.2.进程间通信的目的 1.3.进程间通信的本质 2.管道 2.1.管道的通信原理 2.2.匿名管道 2.3.命名管道 2.4.基于匿名管道的进程池demo 2.4.1.进程池的相关引入 2.4.2.整体框架的分析 2.4.3.代码的实现 1.进程间通信介绍 1.1.简…

华为认证FAQ | 考试预约、考券购买常见问题

●考试预约常见问题● Q : 如何进行考试预约&#xff1f; A : 登录“华为人才在线官网” >>参考考试预约操作指引在线预约考试>>检查考试预约记录&#xff0c;确认预约成功 (私信获取考试预约操作指引文档&#xff09;。&#xff08;注&#xff1a;非本人预约…

程序员学CFA——数量分析方法(四)

数量分析方法&#xff08;四&#xff09; 常见概率分布基本概念离散型随机变量与连续型随机变量离散型随机变量连续型随机变量 分布函数概率密度函数&#xff08;PDF&#xff09;累积分布函数&#xff08;CDF&#xff09; 离散分布离散均匀分布伯努利分布二项分布定义股价二叉树…

程序的表示、转换与链接:三、运算电路基础

目录 一、整数加减运算理论二、数字逻辑电路基础和整数加减运算部件三、如何启用逻辑电路&#xff1a;从C表达式到逻辑电路四、C语言中的各类运算 一、整数加减运算理论 整数加减运算 无符号整数加减运算&#xff1a;指针、地址等通常被说明为无符号整数&#xff0c;因而在进行…

pycharm远程连接server

1.工具–部署–配置 2.部署完成后&#xff0c;将现有的项目的解释器设置为ssh 解释器。实现在远端开发 解释器可以使用/usr/bin/python3