B2B电商平台--ChinaPay银联电子支付功能

 

 

一、概念简介

理解什么是UnionPay、ChinaPay

这两个概念如果搞不清楚,绝对够你瞎折腾一段时间的。讲真,拿到这个改换ChinaPay银联支付需求时,我还以为产品经理给错我们官网地址了。

1、UnionPay

中国银联,最大的机构;他本身也提供系统接口但都是B2B的,对于单个商户他们不提供客服,也不提供技术解决,更不会提供商户后台(可查消费记录等);但他的技术接口文档比较齐全,而且也可以使用,警惕不要使用这些接口。

官网:https://open.unionpay.com

2、ChinaPay

银联电子支付公司,第三方的支付公司,UnionPay的所有接口和服务都托管给类似的第三方公司,ChinaPay再向商户服务,ChinaPay有自己的接口标准,但是技术很老,JSP + Servlet 等,官网提供的资料列表很乱,代码样例 for java版本可以说没有,下图中的是Java版示例,但是和接口文档完全不对应,后面是发邮件问才给一个Java示例,与最新接口开发文档也是有出入的;并且从UnionPay官网开通商户后,默认根据地区会自动转到诸如“ChinaPay”这样的第三方支付公司,后面的事情全由ChinaPay代管。

官网:https://service.chinapay.com

二、ChinaPay商户后台

开通商户之后,一般销售会发送邮件给你,一般邮件内容包含开户名称、技术支持联系方式等,另附带一些压缩包,商户登录账号信息,多个账号,不同的账号对应不同的业务接口,略坑,还有接口开发文档,不同语言的SDK、logo等。

主要包括如下内容:

拿到ChinaPay销售发邮件提供的商户号之后,需要到官网登录“商户服务管理系统”,自行申请、下载证书签名等文件,这个也够折腾一段时间的,各种浏览器不支持它们的插件...

注:商户服务管理系统仅支持IE(8、9、10、11)、Firefox、Safari浏览器,其他浏览器暂不支持。

三、获取交易证书

登录商户服务管理系统地址

生产:https://merchant.chinapay.com

测试:https://newpayment-test.chinapay.com

建议用IE或者FireFox登录,需要先下载和安装证书,安装ActiveX控件,登录证书只提供两份,多余两份的请联系销售;登录成功之后可以看到订单、退款单等账单;要实现支付接口,必须先获取一个“交易证书”,如下,到交易证书管理下,点击,弹出选项配置,然后下载即可生成一个 xxx.pfx 交易证书:

点击交易申请证书,获取到证书之后,需要将证书的上传回商户后台,同时本地需要导出证书私钥(带密码),以备用。

四、RSA公钥私钥加密

平台商城与ChinaPay接口通信的时候,都需要对数据进行签名与验签,验证对方身份。这里就涉及到加密算法的知识,其中,RSA加密算法是一种非对称加密算法,在公开密钥加密和电子商业中RSA被广泛使用。

RSA公钥私钥知识只需要记住下面这三点即可:

  1. 一个端有公钥和私钥两个文件(或者两个字符串),通信时候可以用公钥或者私钥加密。

  2. 公钥加密数据发送,私钥解密:保证信息的完整性和保密性,保证加密后的信息第三方劫持后无法查看内容,例如邮件等。

  3. 私钥加密数据发送,公钥解密:保证数据来源可靠,对信息进行签名,ChinaPay即是利用此方式,常用于公告、群发等操作。

五、消费类交易流程

参考接口文档

B2C 、 B2B 、无卡支付交易流程:

支付查询与退款流程图:

demo运行测试:

交易查询:

六、支付接口开发

新建一个SpringBoot测试工程,调试测试成功再整合移动到实际项目中,将ChinaPay提供的xxx.cer、xxx.pfx证书文件拷贝放到指定的路径下,新建一个security.properties放到resources下,便于读取,加载ChinaPay的配置等信息。

1、security.properties 

## Security properties configuration file
# 验签证书路径
verify.file=E:/my-demo/chinapay-demo/src/main/resources/chinapay/cp-test.cer
# 路径
sign.filePath=E:/my-demo/chinapay-demo/src/main/resources/chinapay
# 交易证书路径
sign.file=E:/my-demo/chinapay-demo/src/main/resources/chinapay/cp-test.pfx
# 交易证书密码
sign.file.password=123456
# 交易证书的密钥容器格式
sign.cert.type=PKCS12
# 报文中不参与签名的字段名称,多个字段用逗号进行分隔
sign.invalid.fields=Signature,CertId
# 签名值字段名称
signature.field=Signature
# 日志名称
log4j.name=CONSOLE

2、导入SDK

将ChinaPay提供的SDK jar包导入本地maven仓库,然后在工程pom文件引入:

注:IDEA 导入Jar 到本地 maven 仓库:

其中,命令如下:

install:install-file
-Dfile=F:\chinaPay-demo\chinapaysecure1_5.jar
-DgroupId=com.chinapay.secure
-DartifactId=chinapay-sdk
-Dversion=1.5.0
-Dpackaging=jar

pom 文件引入:

<dependency><groupId>com.chinapay.sdk</groupId><artifactId>chinapay-sdk</artifactId><version>1.0.0</version>
</dependency>

3、支付请求接口

@Slf4j
@Controller
@RequestMapping("/chinaPay")
public class ChinaPayController {public static final String url = "https://sfj-test.chinapay.com/dac/BatchPayTrade";public static final String frontPayUrl = "https://newpayment-test.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0";public static final String endPayUrl = "https://newpayment-test.chinapay.com/CTITS/service/rest/forward/syn/000000000017/0/0/0/0/0";@RequestMapping("/toChinaPay")@ResponseBodypublic String toChinaPay(HttpServletRequest req, HttpServletResponse resp) throws Exception {log.info("####################开始支付####################");Map<String, Object> paramMap = new TreeMap<>();Date nowDate = new Date();paramMap.put("Version", "20140728");paramMap.put("AccessType","0"); //接入类型  0:商户身份接入(默认)1:机构身份接入paramMap.put("MerId", "换成cp提供的商户号");
//        paramMap.put("MerId", "000091908248636");paramMap.put("MerOrderNo", "换成订单流水号");paramMap.put("TranDate", TimeUtil.dateToStr(nowDate,TimeUtil.YYYYMMDD));paramMap.put("TranTime", TimeUtil.dateToStr(nowDate,TimeUtil.HHMMSS));paramMap.put("OrderAmt", "1");//单位:分paramMap.put("BusiType", "0001");//业务类型,固定值paramMap.put("CommodityMsg","大米100斤");paramMap.put("MerBgUrl", "http://yl.foodsyoyo.com/chinaPay/notify");//支付异步通知地址:用来接收交易结果后台通知的地址paramMap.put("MerPageUrl", "http://yl.foodsyoyo.com/chinaPay/payResult");//支付完成跳转的页面paramMap.put("RemoteAddr", "xxxIP");System.out.println("==============订单号===========:"+paramMap.get("MerOrderNo"));SecssUtil secssUtil = ChinaPayUtil.secssUtil;//签名secssUtil.sign(paramMap);if (!SecssConstants.SUCCESS.equals(secssUtil.getErrCode())){log.error(secssUtil.getErrCode() + "=" + secssUtil.getErrMsg());return secssUtil.getErrMsg();}String signature = secssUtil.getSign();paramMap.put("Signature", signature);System.out.println("####################请求总参数####################");System.out.println(paramMap);//必须构建成【自动提交form表单】html,返回商城前端自动跳转到网银支付页面String buildRequest = MerchantApiUtil.buildRequest(paramMap,frontPayUrl, "post", "确定");System.out.println("####################构建的表单####################");System.out.println(buildRequest);req.setAttribute("result",buildRequest);//请求--不能直接使用http工具发起支付请求,需要构建form表单请求自动提交
//        String result = HttpUtils.send(frontPayUrl, paramMap);
//        System.out.println("返回结果:"+result);
//        return "toPay";return buildRequest;
}}

注意:支付接口,ChinaPay要求必须构建成【自动提交form表单】html,返回商城前端自动跳转到网银支付页面,,不能直接使用Http工具发起post支付请求,否则报错。

其中,ChinaPayUtil 工具类如下,主要是初始化商户签名、验签配置信息:

@Slf4j
public class ChinaPayUtil {public static final SecssUtil secssUtil;//初始化static {secssUtil = new SecssUtil();Resource resource = new ClassPathResource("./security.properties");File file = null;try {file = resource.getFile();} catch (IOException e) {e.printStackTrace();}boolean bool = secssUtil.init(file.getPath());if (bool) {PaymentLog.info("ChinaPay交易证书、验签证书初始化成功!");} else {PaymentLog.error("ChinaPay交易证书、验签证书初始化失败:"+secssUtil.getErrCode() + "=" + secssUtil.getErrMsg());}}
}

NetPayClient for Java  使用说明:

详细请参考ChinaPay开发接口文档说明。

ChinaPay 针对不同的开发平台和运行平台提供对应的 NetPayClient 版本,实现消费者、商户和银行间的网上安全支付。功能如下:

  • 商户对交易请求信息进行签名

  • 商户对 ChinaPay 返回的交易应答信息进行签名验证

  • 商户对一段字符串进行签名

(1)核心文件清单:

(2)SecssUtil

我们实际开发,主要是调用SDK的SecssUtil中的方法即可:

4、支付请求-结果通知(异步)

分前台与后台地址回调:当交易完成时,ChinaPay 会通过 http post 方式将应答信息发送给商户发送请求报文中提供的前、后台地址(MerPageUrl 、MerBgUrl),应答的数据包括如下内容:

(参数形式是 key-value 形式,用&分割, 注意大小写, 编码方式统一用 UTF-8) 

注:具体参考接口文档,这里就不一一贴出来了,对着接口文档从request中读取返回的参数解析、验签、处理后续业务即可。

5、Signature说明:

商户发送给 ChinaPay 的信息均需要用商户的交易证书进行数字签名。ChinaPay 收

到商户的信息后会用商户的公钥证书进行验签,以确定是商户发送的信息。支付交易完成后,支付应答会分前台页面跳转和后台 Http 通知方式返回给商户,商户收到应答信息后,需要用 ChinaPay 提供的证书对返回信息进行验签,以确定此报文是由 ChinaPay 发出。

后台返回字段需要通过 urldecode 进行解码后还原原始报文,前台返回报文无需此操作。

  • JAVA 解码方法:URLDecoder.decode(value, "utf-8")

  • PHP 解码方法:urldecode(value)

  • .NET 解码方法:HttpUtility.UrlDecode(value,"utf-8");

因此这里,针对后台回调,在取出返回的数据时,需要验证签名,以确定此报文是由 ChinaPay 发出,如下,验签方法:

/*** 回调验签--验证 chinapay 返回的应答数据
* 参考文档Signature说明:后台返回的所有字段每个都需要通过 urldecode 进行解码后还原原始报文,
* 前台返回报文无需此操作
*
* @param jsonObject
* @param notifyMap 支付回调的信息
* @return
*/
@Override
public boolean verifyNotify(JSONObject jsonObject, Map<String, String> notifyMap) {SecssUtil secssUtil = ChinaPayUtil.secssUtil;try {//验签String sign = notifyMap.get("Signature");if (StringUtils.isNotEmpty(sign)) {secssUtil.verify(notifyMap);//入参:返回商户报文中的所有参数}if (!SecssConstants.SUCCESS.equals(secssUtil.getErrCode())) {PaymentLog.error(secssUtil.getErrCode() + "=" + secssUtil.getErrMsg());PaymentLog.info("ChinaPay返回的应答数据【验签】失败:{}",             secssUtil.getErrMsg());return false;}return true;} catch (Exception e) {e.printStackTrace();}return false;
}

至于post回调,ChinaPay返回的数据,从request中取出解析即可:

Map<String, String[]> requestParams = httpServletRequest.getParameterMap();

6、订单交易查询接口:

 /*** 订单查询* @return*/@RequestMapping("/orderQuery")@ResponseBodypublic QueryOrderResultDto orderQuery(){QueryOrderResultDto orderResultDto = new QueryOrderResultDto();orderResultDto.setFlowTradeNo("xxxxxx");orderResultDto.setResult(false);Map<String, String> paramMap = new TreeMap<>();paramMap.put("Version", "20140728");paramMap.put("TranType", "0502");//交易类型,固定值:0502paramMap.put("BusiType", "0001");//业务类型,固定值// 商户订单号可包含字母和数字,与 MerId 和 TranDate 一起,ChinaPay是根据这三个字段唯一确定一笔订单paramMap.put("MerOrderNo", "xxxxxxx");paramMap.put("MerId", "xxxxxxxxxx");// 原交易日期 , 格式 :yyyyMMdd TODO 替换paramMap.put("TranDate", TimeUtil.dateToStr(new Date(), TimeUtil.YYYYMMDD));//签名SecssUtil secssUtil = ChinaPayUtil.secssUtil;secssUtil.sign(paramMap);if (!SecssConstants.SUCCESS.equals(secssUtil.getErrCode())) {log.error("ChinaPay签名失败:" + secssUtil.getErrCode() + "=" + secssUtil.getErrMsg());orderResultDto.setMessage("ChinaPay签名失败");return orderResultDto;}// TODO 商户向ChinaPay的支付接入地址提交订单信息,【表单】采用“post”方式提交//String buildFormRequest = MerchantApiUtil.buildRequest(paramMap,payQueryUrl, "post", "确定");// TODO 同步请求String resp = HttpUtils.send(payQueryUrl, paramMap);log.info("################交易查询结果:{}",resp);// 解析同步应答字段String[] strs = resp.split("&", -1);Map<String, String> resultMap = new TreeMap<String, String>();for (String str : strs) {String[] keyValues = str.split("=", -1);if (keyValues.length < 2) {continue;}String key = keyValues[0];String value = keyValues[1];if (StringUtil.isEmpty(value)) {continue;}//响应字段解码try {value = URLDecoder.decode(value, "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}resultMap.put(key, value);}//返回数据验签boolean verifyFlag = verifyNotify(resultMap);if (!verifyFlag) {log.error("ChinaPay支付查询--返回数据验签失败!");orderResultDto.setMessage("ChinaPay支付查询--返回数据验签失败!");return orderResultDto;}orderResultDto.setResult(true);orderResultDto.setMessage("查询成功");orderResultDto.setPayType("ChinaPay银联支付");
//        orderResultDto.setTradeState(OrderStatus);return orderResultDto;}

注:其它接口开发参考ChinaPay文档就可以,这里就不一一粘贴示例了0.0

七、测试支付

点击ChinaPay银联支付,商城后台会组装请求参数到form表单,自动提交到ChinaPay

这里测试的商户号只开通了企业网银(B2B),所以只显示一个

这里因为是ChinaPay测试环境,所以可以不填写任何信息,直接点击“支付成功”或“支付失败”即可,完成后续的回调测试:

八、总结

这里演示了一个支付请求接口,包括核心的配置与接口参数详解,只要调通一个,后面的支付查询、退款、扫码支付、分账等就基本类似的套路。主要是ChinaPay的技术支持只提供邮件沟通,沟通效率太慢,遇到对接问题时,发邮件,他们的回答很简单,主要是去多看接口文档,然而接口文档写得马马哈哈,文档有些地方过于简略,只能去尝试调试,有些坑自己踩过才知道,多问ChinaPay。

九、附录-常见接入问题

  1. 开发过程中,商户签名报 SecurityException 异常

    检查交易证书密码是否配置正确,并检查配置文件 security.properties 是否配置正确。需要将 security.properties 放在类路径下,详细配置请参考上面。

  2. 开发过程中,商户签名报“未初始化配置”异常

    检查签名或验签之前是否调用 SecssUtil.init();方法,如果未调用,则调用SecssUtil.init()方法初始化安全签名配置

  3. 签名过程出现 Illegal key size 错误

    请检查下载的 pfx 证书是否正确,或者重新申请 CFCA 交易证书

  4. 交易失败!错误信息:证书未配置

    这个报错通常有两个原因,一是没有申请交易证书,二是交易地址提交错误,测试地址和正式地址搞错了。

  5. 交易失败!错误信息:验签失败

    需要确认交易证书在 Internet 选项---内容---证书---颁发给的名字和在商户服务管理系统里面查到的交易证书的证书名称是一样的。证书确认没有问题,需要确认参加签名的字段和传过来的字段是一样的。

  6. 支付请求,结果通知(异步)回调,验签失败

    请参考Signature字段说明,后台返回的所有字段每个都需要通过 urldecode 进行解码后还原原始报文,前台返回报文无需此操作。

注:当然,开发中还会遇到其它各种不同的问题,请参考文档,解决不了请及时询问ChinaPay技术人员。

●SpringBoot电商项目实战-Curator分布式锁实现

●学会Zookeeper分布式锁,让面试官对你刮目相看

●SpringCloud电商秒杀微服务-Redisson分布式锁方案

一只 有深度 有灵魂 的公众号0.0

右上角按钮分享给更多人哦~

来都来了,点个在看再走吧~~~

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

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

相关文章

线上支付之----网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明!!

一、网关支付这是在线支付的最普遍形式。大致支付过程&#xff1a;第三方支付公司作为代理&#xff08;网关&#xff09;&#xff0c;接入一堆银行。用户在网关页面&#xff08;可以在商户端&#xff0c;也可以第三方支付平台端&#xff09;选择银行&#xff0c;页面跳转到第三…

支付宝和银联 充值和支付流程(后台)

最近做了支付&#xff0c;现在把后台支付的流程记录下来&#xff0c;方便以后查找。 这里面充值是用的支付宝&#xff0c;而支付是银联和支付宝都用到了&#xff0c;只记录业务逻辑。支付的时候&#xff0c;由于系统本身是有自己的账户体系的&#xff0c;所以有可能会设计一半余…

大模型工具学习权威综述,BMTools 背后的论文!

近期&#xff0c;来自清华大学、中国人民大学、北京邮电大学、UIUC、NYU、CMU等高校的研究人员联合 OpenBMB开源社区、知乎、面壁智能公司探索了基础模型调用外部工具的课题&#xff0c;联合发表了一篇74页的 基础模型工具学习 综述论文&#xff0c;并发布了 开源工具学习平台。…

5. 《认知觉醒》

概述 本篇文章是认知觉醒的读书笔记. 书中的精彩瞬间 所谓心智&#xff0c;通俗地说&#xff0c;就是我们看待人和事的态度&#xff0c;以及由此做出的判断与选择人与人之间的根本差异是认知能力上的差异&#xff0c;因为认知影响选择&#xff0c;而选择改变命运&#xff0c;所…

chatgpt赋能python:Python和.mat文件:什么是.mat文件,如何使用Python操作.mat文件?

Python 和 .mat 文件&#xff1a;什么是 .mat 文件&#xff0c;如何使用 Python 操作 .mat 文件&#xff1f; 如果您是一个数据分析师或数据科学家&#xff0c;那么您应该经常处理各种类型的数据文件。在这些文件中之一就是 MATLAB 的 .mat 文件。.mat 文件是一种可以方便地存…

吐槽一下程序员职场那些令人迷惑的行为

鲁迅先生曾经说过&#xff1a;“科技大佬们的“毒鸡汤”&#xff0c;别喝&#xff01;喝了你一定会后悔&#xff0c;他们说什么也别相信&#xff01;那些所谓的情怀&#xff0c;没有任何意义&#xff01; 今天讲讲在互联网这个行业中那些让人迷惑的行为&#xff0c;纯个人吐槽&…

【程序员段子】10个让你笑爆肚皮的程序员段子,不好笑算我输(生活太苦,不如经常来点儿甜~)

前言 今天是你们周末休息后的第一天早上&#xff0c;开始打鸡血上班了吧。 没事多看看幽默笑话&#xff0c;释放一下这一周来的压力&#xff0c;并准备好今天的战斗&#xff01;么么哒~ ~ 程序员——世人笑我太疯癫&#xff0c; 我笑他人看不穿 正文 1&#xff09;面试 …

粥左罗教你从零开始学写作笔记系列

​​​​​​​目录 一 写作认知:多数人理解错了写作 第01讲&#xff1a;写作能力是人人需要的底层能力 第02讲&#xff1a;写作能力的三个核心是什么&#xff1f; 第03讲&#xff1a;如何迈出写作的第一步&#xff1f; 第04讲&#xff1a;如何坚持&#xff0c;长期写下去…

【小红书排名规则】社区规则、账号权重、笔记权重和推荐规则

小红书社区规则 重新上架以来&#xff0c;小红书的审核也更加严格了&#xff0c;所以今天来帮大家梳理一下小红书社区的规则。先说三个机制&#xff0c;分别是公平机制、监测机制和检测机制。 01 公平机制   因为现在的小红书笔记生产量太多了&#xff0c;一秒时间同类话题可…

小红书热词速看 | 古茗有何营销动作?

【导语】 据古茗官方数据&#xff0c;新系列推出当日即售空&#xff0c;单店最高出杯420杯&#xff0c;最快24小时内卖断货&#xff1b;上架3天&#xff0c;销量突破100万杯&#xff1b;10天&#xff0c;就售出了343万杯&#xff0c;其中2款牛油果奶昔用掉了40万斤牛油果&…

小红书标题文案套路90%博主都在用,一看就会

最近看了一篇很有意思的文章&#xff0c;很有意思&#xff0c;大概就是小红书博主的一些流量密码&#xff0c;看完之后&#xff0c;我去小红书一对比&#xff0c;还真的是这样的&#xff01; 并且除了文章提到一些标题流量密码&#xff0c;我还发现了一些别的“流量词”&#…

获取最新、最全的小红书地理位置签到数据。

小红书签到数据是什么&#xff1f; 一般情况下&#xff0c;小红书签到数据是带有经纬度坐标系的。小红书用户在签到时&#xff0c;可以选择授权小红书获取其位置信息&#xff0c;并将该经纬度信息保存到签到记录中。这样&#xff0c;其他用户就可以在地图上看到该用户的签到位置…

小红书起号分析流程

一、明确账号定位 在小红书里做账号&#xff0c;定位先行&#xff0c;请明确账号定位&#xff01;你需要明确地让潜在粉丝和小红书用户知道&#xff1a;你是谁、你能提供什么、你有什么独特的地方&#xff1f; 比如博主一只小鱼瓶账号分析&#xff1a;从主页笔记内容和标注&…

哪些ipad的APP可以很好的阅读英文文献?

用ipad做实验阅读文献做阅读笔记&#xff1f;&#xff01;ipad还有多少隐藏功能是你想象不到的&#xff1f;别急&#xff0c;让我带你开启ipad的隐藏玩法&#xff1a;由于科研学习的需要&#xff0c;很多科研人有阅读复杂冗长的英文文献需求。而笔记本电脑和鼠标的使用难免会受…

论文阅读|ERNIE-SAT: SPEECH AND TEXT JOINT PRETRAININGFOR CROSS-LINGUAL MULTI-SPEAKER TEXT-TO-SPEECH

原文链接&#xff1a;https://arxiv.org/pdf/2211.03545v1.pdf 代码链接&#xff1a;https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/aishell3_vctk/ernie_sat 一、摘要 & 引言 1. 语音表示学习方法&#xff08;Speech Representation Learning&am…

文献阅读:Training language models to follow instructions with human feedback

文献阅读&#xff1a;Training language models to follow instructions with human feedback 1. 文献工作简介2. 模型优化设计3. 实验结果4. 总结 & 思考 文献链接&#xff1a;https://arxiv.org/abs/2203.02155 1. 文献工作简介 这篇文章是OpenAI在上年提出的一篇对于…

[工具分享] 如何快速的添加海外客户的whatsApp和line进入通讯录

很多做外贸的朋友经常需要和海外的朋友联系&#xff0c;我们经常有时候需要添加海外客户的whatsApp和line等海外社交软件更好的与客户沟通&#xff0c;其他的App呢也是类似的,一下分享的方法 第一步、首先下载软件&#xff1a; 腾讯网盘&#xff1a;https://share.weiyun.com…

高等数学(第七版)同济大学 习题8-5 个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题8-5 函数作图软件&#xff1a;Mathematica 1. 一球面过原点及 A ( 4 , 0 , 0 ) 、 B ( 1 , 3 , 0 ) 和 C ( 0 , 0 , − 4 ) 三点&#xff0c;求球面的方程及球心的坐标和半径 . \begin{aligned}&1. \ 一球面过原点及A…

高等数学——积分

目录 一&#xff0c;求积分 二&#xff0c;积分题目 三&#xff0c;积分表推导 &#xff08;1&#xff09;含有axb的积分 &#xff08;2&#xff09;含有的积分 &#xff08;3&#xff09;含有的积分 &#xff08;4&#xff09;含有(a>0)的积分 &#xff08;5&#x…

高数教材班复习Hint(3.1-3.6)

Chapter 3 Lesson 1 H i n t 1 {Hint}^1 Hint1&#xff1a;微分中值定理——联系函数和导数 费马引理&#xff1a;对于邻域 U ( x 0 ) U(x_0) U(x0​)&#xff0c;如果对于 f ( x ) ≤ f ( x 0 ) f(x) \leq f(x_0) f(x)≤f(x0​)(或 f ( x ) ≥ f ( x 0 ) f(x) \geq f(x_0) f…