PC網站和uniapp安卓APP、H5接入支付寶支付

? ? ? ? 首先我們需要完成支付寶賬號注冊,支持的賬號類型:支付寶企業賬號、支付寶個人賬號、個體工商戶。

    ????????到支付寶商家平臺 產品中心開通APP支付、手機網站支付、電腦網站支付的產品權限。

    ? ? ? ? 一、電腦PC網站接入

    ????????電腦PC網站支付是指商戶在電腦網頁展示商品或服務,用戶在商戶頁面確認使用支付寶支付時,瀏覽器自動跳轉支付寶電腦網頁完成付款的支付產品。

    ?????簽約申請提交材料要求如下:

    • 提供網站地址,網站能正常訪問且頁面顯示完整,網站需要明確經營內容且有完整的商品信息。
    • 網站必須通過 ICP 備案,且備案主體需與支付寶賬號主體一致。若網站備案主體與當前賬號主體不同時需上傳授權函。
    • 如以個人賬號申請,需提供營業執照,且支付寶賬號名稱需與營業執照主體一致。

    ? ? ? ? 1、登錄支付寶開放平臺創建 網頁/移動應用。應用類型選擇網頁應用,填入應用訪問的網站地址。?

    ? ?

    ? ? ? ? 2、配置接口加簽方式、應用網關,詳見接入準備。

    ????????需要注意應用網關:用于接收支付寶異步通知消息,需要傳入 http(s) 公網地址。不設置的話無法接受異步通知。支付寶網關地址:開發者調用 OpenAPI 發送 http(s) 請求的目標地址,需配置在AlipayClient中。

    ? ? ? ? 3、網頁/移動應用:需要手動上線。提交審核后,預計 1 個工作日的審核時間。

    ? ? ? ? 4、綁定商家賬號

    ????????在支付寶開放平臺創建的應用歸屬于對應的開放平臺賬號。如果要在應用中使用支付和資金等相關產品,需要將應用和支付寶商家平臺賬號綁定,應用才可調用需要商家開通的產品。

    ? ? ? ? 5、集成支付寶SDK

            <dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.40.308.ALL</version></dependency>

    ? ? ? ? 6、支付配置

    ? ? ? ? 7、接入?統一收單下單并支付頁面接口

    ? ? ? ? 可以參考示例代碼編寫自己的代碼:

    package com.ynfy.buss.mall.pay.service.alipay._native.impl;import com.alipay.api.AlipayClient;
    import com.alipay.api.DefaultAlipayClient;
    import com.alipay.api.domain.AlipayTradePagePayModel;
    import com.alipay.api.request.AlipayTradePagePayRequest;
    import com.alipay.api.response.AlipayTradePagePayResponse;
    import com.ynfy.buss.mall.pay.service.alipay._native.INativePayService;
    import com.ynfy.common.utils.HttpUtils;
    import lombok.extern.slf4j.Slf4j;
    import org.jeecg.common.exception.JeecgBootException;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;import java.math.BigDecimal;/*** 支付寶電腦網站支付** @author yangfeng* @since 2020/12/21 17:44*/
    @Slf4j
    @Component
    public class AliNativePayServiceImpl implements INativePayService {/*** app的id*/@Value("${alipay.wapAppId}")private String wapAppId;/*** 私鑰*/@Value("${alipay.privateKey}")public String privateKey;/*** 公鑰*/@Value("${alipay.publicKey}")public String publicKey;/*** 支付回調地址*/@Value("${alipay.notifyUrl}")String notifyUrl;/*** 網關地址*/@Value("${alipay.serverUrl}")String serverUrl;@Overridepublic Object pay(String orderSn, BigDecimal price, String description) {AlipayClient alipayClient = new DefaultAlipayClient(serverUrl, wapAppId, privateKey, "json", "UTF-8", publicKey, "RSA2");AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();AlipayTradePagePayModel model = new AlipayTradePagePayModel();model.setBody(description);model.setSubject(description);model.setOutTradeNo(orderSn);model.setProductCode("FAST_INSTANT_TRADE_PAY");// 設置PC掃碼支付的方式model.setQrPayMode("1");// 設置請求后頁面的集成方式model.setIntegrationType("PCWEB");model.setTimeoutExpress("30m");model.setTotalAmount(price.toString());request.setBizModel(model);request.setNotifyUrl(notifyUrl);try {AlipayTradePagePayResponse response = alipayClient.pageExecute(request, "GET");return response.getBody();} catch (Exception e) {throw new JeecgBootException("支付寶電腦網站統一下單接口報錯:" + HttpUtils.getErrorMsgFromWxPay(e.getMessage()));}}}
    

    ? ? ? ? 8、iframe嵌入上述接口返回的連接,展示在自己的支付頁面中。效果如下圖:

    ? ? ? ? 用戶支付完成后,觸發回調通知,根據支付結果更新訂單狀態。回調接口代碼:

     @IgnoreAuth@ApiLog(value = "支付寶支付回調")@PostMapping("aliPayCallback")public Object aliPayCallback() throws Exception {log.info("支付寶支付回調通知...");//獲取支付寶POST過來反饋信息,將異步通知中收到的待驗證所有參數都存放到map中Map<String, String> params = new HashMap<>();Map<String, String[]> requestParams = request.getParameterMap();for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext(); ) {String name = iter.next();String[] values = requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";}//亂碼解決,這段代碼在出現亂碼時使用。//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");params.put(name, valueStr);}//調用SDK驗證簽名//公鑰驗簽log.info("支付寶支付回調返回參數:{}", params);boolean signVerified = AlipaySignature.rsaCheckV1(params, publicKey, "UTF-8", "RSA2");if (signVerified) {log.info("支付寶支付驗簽成功...");List<PurchaseOrder> updateOrderList = new ArrayList<>();// 驗簽成功后// 獲取支付結果參數String tradeStatus = request.getParameter("trade_status");log.info("支付寶支付回調交易狀態:{}", tradeStatus);String outTradeNo = request.getParameter("out_trade_no");log.info("支付寶支付回調訂單號:{}", outTradeNo);String gmtPayment = request.getParameter("gmt_payment");// 根據支付結果參數處理業務邏輯if ("TRADE_SUCCESS".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {// 更新訂單狀態為支付成功orderService.updateOrderPayCallback(updateOrderList, CommonConstant.PAY_METHOD_ALI, outTradeNo, true, gmtPayment);log.info("支付寶支付回調通知處理完成,共更新{}個訂單", updateOrderList.size());return "success";} else {// 更新訂單狀態為支付失敗orderService.updateOrderPayCallback(updateOrderList, CommonConstant.PAY_METHOD_ALI, outTradeNo, false, null);return "fail";}}log.info("支付寶支付驗簽失敗...");return "fail";}

    ????????然后在頁面中定時器監聽訂單狀態,通知用戶支付是否成功。

    ? ? ? ? 二、uniapp手機網站(H5)接入支付

    ????????手機網站支付是指商家在移動端網頁展示商品或服務,用戶在商家頁面確認使用支付寶支付后,瀏覽器自動跳轉支付寶 App 或支付寶網頁完成付款的支付產品。

    ? ? ? ? 1、登錄支付寶開放平臺創建 網頁/移動應用,這里的應用類型也是網頁應用,可以和上面的PC網頁應用共享,所以不用再創建。

    ? ? ? ? 2、接入?手機網站支付接口2.0

    ? ? ? ? 可以參考示例代碼編寫自己的代碼:

    package com.ynfy.buss.mall.pay.service.alipay.h5.impl;import com.alipay.api.AlipayClient;
    import com.alipay.api.DefaultAlipayClient;
    import com.alipay.api.domain.AlipayTradeWapPayModel;
    import com.alipay.api.request.AlipayTradeWapPayRequest;
    import com.alipay.api.response.AlipayTradeWapPayResponse;
    import com.ynfy.buss.mall.pay.service.alipay.h5.IH5PayService;
    import com.ynfy.common.utils.HttpUtils;
    import lombok.extern.slf4j.Slf4j;
    import org.jeecg.common.exception.JeecgBootException;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;import java.math.BigDecimal;/*** 支付寶H5支付** @author yangfeng* @since 2020/12/21 17:44*/
    @Slf4j
    @Component
    public class AliH5PayServiceImpl implements IH5PayService {/*** app的id*/@Value("${alipay.wapAppId}")private String wapAppId;/*** 私鑰*/@Value("${alipay.privateKey}")public String privateKey;/*** 公鑰*/@Value("${alipay.publicKey}")public String publicKey;/*** 支付回調地址*/@Value("${alipay.notifyUrl}")String notifyUrl;/*** 網關地址*/@Value("${alipay.serverUrl}")String serverUrl;@Overridepublic Object pay(String orderSn, BigDecimal price, String description) {AlipayClient alipayClient = new DefaultAlipayClient(serverUrl, wapAppId, privateKey, "json", "UTF-8", publicKey, "RSA2");// 構造請求參數以調用接口AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();model.setSubject(description);model.setOutTradeNo(orderSn);// 設置產品碼model.setProductCode("QUICK_WAP_WAY");model.setTimeoutExpress("30m");model.setTotalAmount(price.toString());request.setBizModel(model);request.setNotifyUrl(notifyUrl);try {AlipayTradeWapPayResponse response = alipayClient.pageExecute(request, "GET");return response.getBody();} catch (Exception e) {throw new JeecgBootException("支付寶h5統一下單接口報錯:" + HttpUtils.getErrorMsgFromWxPay(e.getMessage()));}}}
    

    ? ? ? ? ? ? ? ?3、uniapp調用上述支付接口,跳轉返回的鏈接頁面代碼:

    
    /*** 支付* @param response*/
    export function payment(response, clientType) {//app端需要判斷操作系統是否為華為鴻蒙// #ifdef APP-PLUSif (isHarmonyOS()) {uni.showToast({icon: "none",title: "鴻蒙暫不可支付",});return}// #endifconst provider = clientType == 'WxPay' ? "wxpay" : clientType == 'AliPay' ? 'alipay' : '';if (!provider) {uni.showToast({icon: "none",title: "支付方式缺失",});return}//app微信支付 orderInfo為json對象//app支付寶支付 orderInfo為字符串,https://uniapp.dcloud.net.cn/tutorial/app-payment-alipay.htmllet orderInfo = null;if (provider == "wxpay") {orderInfo = {appid: response.appid,noncestr: response.nonceStr,package: response.packageVal,partnerid: response.partnerId,prepayid: response.prepayId,timestamp: response.timestamp,sign: response.sign}} else if (provider == "alipay") {orderInfo = response}uni.requestPayment({provider: provider,// #ifdef APP-PLUSorderInfo: orderInfo,// #endif// #ifdef MP-WEIXINtimeStamp: response.timeStamp,nonceStr: response.nonceStr,package: response.packageVal,signType: response.signType,paySign: response.paySign,// #endifsuccess: (e) => {uni.showToast({icon: "none",title: "支付成功!",});setTimeout(() => {uni.navigateTo({url: "/subpages/myorder/myorder"})}, 1000)},fail: (e) => {uni.showModal({title: "支付失敗",content: "如果您已支付,請勿反復支付",showCancel: false,success: () => {uni.redirectTo({url: "/subpages/myorder/myorder?orderStatus=0",});},});},});
    }export function isHarmonyOS() {const sysInfo = uni.getSystemInfoSync();// 檢查版本號是否包含"HarmonyOS"或"10+"等標識return /(10\+|\+HarmonyOS)/.test(sysInfo.system);
    }// 去支付
    export async function goPay(orderSn, clientType) {const orderData = await apiGetOrder(orderSn);const payParams = {clientType: clientType,// #ifdef MP-WEIXINpaymentType: "MP",// #endif// #ifdef H5paymentType: "H5",// #endif// #ifdef APP-PLUSpaymentType: "APP",// #endifprice: orderData.orderPrice,orderSn: orderSn,description: orderData.orderTitle};const response = await apiPay(payParams);// #ifdef MP-WEIXIN || APP-PLUSpayment(response, clientType)// #endif// #ifdef H5if (clientType == 'WxPay') {window.location.href = response.h5Url} else if (clientType == 'AliPay') {window.location.href = response}// #endif
    }

    ?????????4、打開支付寶APP完成付款。效果如下:

    ? ? ? ? 三、uniapp安卓?APP支付

    ????????APP支付是指商家在商家移動端 App 中集成支付寶 SDK,調起支付寶來完成付款的一種支付產品。適用于在商家移動端 App 內使用支付寶支付功能的場景。

    ?????簽約申請提交材料要求如下:

    • 如應用已上架,需提供應用名稱和已上架的應用市場;若應用未上架,需提供 Demo 或產品說明文檔。
    • 應用必須包含明確的經營內容和價格信息;且經營內容須與營業執照經營范圍一致。
    • 如應用開發者與支付寶賬號名稱不一致需提供開發者授權函。
    • 個人賬號申請,需提供營業執照,且支付寶賬號名稱需與營業執照主體一致。

    ? ? ? ? 1、登錄 支付寶開放平臺,點擊創建 網頁/移動應用。(僅支持應用類型為 移動應用 接入)。

    ?? ? 2、配置接口加簽方式、應用網關,詳見接入準備。?

    ? ? ? ? 3、網頁/移動應用:需要手動上線。提交審核后,預計 1 個工作日的審核時間。

    ? ? ? ? 4、綁定商家賬號

    ????????在支付寶開放平臺創建的應用歸屬于對應的開放平臺賬號。如果要在應用中使用支付和資金等相關產品,需要將應用和支付寶商家平臺賬號綁定,應用才可調用需要商家開通的產品。

    ? ? ? ? 5、接入?app支付接口2.0

    ? ? ? ? 可以參考示例代碼編寫自己的代碼:

    package com.ynfy.buss.mall.pay.service.alipay.app.impl;import com.alipay.api.AlipayClient;
    import com.alipay.api.DefaultAlipayClient;
    import com.alipay.api.domain.AlipayTradeAppPayModel;
    import com.alipay.api.request.AlipayTradeAppPayRequest;
    import com.alipay.api.response.AlipayTradeAppPayResponse;
    import com.ynfy.buss.mall.pay.service.alipay.app.IAppPayService;
    import com.ynfy.common.utils.HttpUtils;
    import lombok.extern.slf4j.Slf4j;
    import org.jeecg.common.exception.JeecgBootException;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;import java.math.BigDecimal;/*** 支付寶APP支付** @author yangfeng* @since 2020/12/21 17:44*/
    @Slf4j
    @Component
    public class AliAppPayServiceImpl implements IAppPayService {/*** app的id*/@Value("${alipay.appAppId}")private String appId;/*** 私鑰*/@Value("${alipay.privateKey}")public String privateKey;/*** 公鑰*/@Value("${alipay.publicKey}")public String publicKey;/*** 支付回調地址*/@Value("${alipay.notifyUrl}")String notifyUrl;/*** 網關地址*/@Value("${alipay.serverUrl}")String serverUrl;@Overridepublic Object pay(String orderSn, BigDecimal price, String description) {AlipayClient alipayClient = new DefaultAlipayClient(serverUrl, appId, privateKey, "json", "UTF-8", publicKey, "RSA2");AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();model.setSubject(description);model.setOutTradeNo(orderSn);// 設置產品碼model.setProductCode("QUICK_MSECURITY_PAY");model.setTimeoutExpress("30m");model.setTotalAmount(price.toString());request.setBizModel(model);request.setNotifyUrl(notifyUrl);try {//這里和普通的接口調用不同,使用的是sdkExecuteAlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);return response.getBody();} catch (Exception e) {throw new JeecgBootException("支付寶APP統一下單接口報錯:" + HttpUtils.getErrorMsgFromWxPay(e.getMessage()));}}}
    

    ? ? ? ? ?6、uniapp調用上述接口,調起支付寶支付控件。效果如圖:

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/news/914071.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/news/914071.shtml
    英文地址,請注明出處:http://en.pswp.cn/news/914071.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    MCU芯片內部的ECC安全機制

    MCU&#xff08;微控制器單元&#xff09;芯片內部的 ECC&#xff08;錯誤檢測與糾正&#xff09;安全機制 是一種至關重要的硬件級可靠性技術&#xff0c;主要用于保護關鍵存儲單元&#xff08;如 SRAM、Flash、Cache&#xff09;中的數據完整性&#xff0c;防止因外部干擾或硬…

    【自動駕駛】經典LSS算法解析——深度估計

    LSS-Lift.Splat,Shoot 論文題目&#xff1a;Lift, Splat, Shoot: Encoding Images From Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 代碼&#xff1a;https://github.com/nv-tlabs/lift-splat-shoot 概括&#xff1a;先做深度估計和特征融合&#xff0c;然后投…

    《【第八篇-圖片總結篇】Python圖片處理自動化:終極工廠!從裁剪壓縮到智能加水印,打造你的視覺內容生產流水線!》

    在數字時代&#xff0c;圖片無處不在。然而&#xff0c;高質量的圖片背后&#xff0c;往往隱藏著繁瑣的后期處理&#xff1a;圖片文件太大導致加載慢&#xff1b;尺寸不符需要裁剪&#xff1b;版權保護要加水印&#xff1b; 為了兼容性還得批量轉換格式……這些重復、機械的工…

    frame 與新窗口切換操作【selenium 】

    &#x1f9ed; 一、切換到 iframe 內部進行操作在瀏覽器自動化測試中&#xff0c;iframe 是一個特別的存在。它相當于在當前頁面中嵌入了另一個獨立的 HTML 頁面。當我們試圖直接訪問 iframe 中的元素時&#xff0c;往往會發現定位不到&#xff0c;比如&#xff1a;elements w…

    MYSQL C_API使用全解

    文章目錄C_API&#xff08;簡單的&#xff09;安裝這個庫使用流程初始化連接mysql_init建立連接mysql_real_connect執行SQL語句mysql_query處理結果mysql_store_resultmsyql_use_resultmysql_num_rowsmsyql_free_resultmysql_num_fieldsmysql_fetch_row多線程安全關閉連接mysql…

    閑庭信步使用圖像驗證平臺加速FPGA的開發:第二課——RGB轉YCbCr的FPGA硬件編程詳解

    &#xff08;本系列只需要modelsim即可完成數字圖像的處理&#xff0c;每個工程都搭建了全自動化的仿真環境&#xff0c;只需要雙擊文件就可以完成整個的仿真&#xff0c;大大降低了初學者的門檻&#xff01;&#xff01;&#xff01;&#xff01;如需要該系列的工程文件請關注…

    RK3566/RK3568 Android11 修改selinux模式

    概述RK3566/RK3568 Android11 SDK默認的selinux是Enforcing模式(強制模式)。Enforcing&#xff1a;強制模式&#xff1a;SELinux在運行中&#xff0c;且已經開始限制domain/type之間的驗證關系 Permisssive&#xff1a;寬容模式&#xff1a;SELinux在運行中&#xff0c;如果驗證…

    iOS Widget 開發-3:Widget 的種類與尺寸(主屏、鎖屏、靈動島)

    iOS 支持多種類型的 Widget&#xff0c;分布在主屏幕、鎖屏、靈動島、待機模式、控制中心等多個系統位置。每種 Widget 都有各自的尺寸、交互能力與限制。 本篇將系統梳理 iOS 當前支持的 Widget 類型與尺寸規格。主屏 Widget&#xff08;Home Screen Widgets&#xff09; 主屏…

    ffmpeg 中 write_option()函數詳細注釋

    author: hjjdebug date: 2025年 07月 11日 星期五 10:51:23 CST descrip: ffmpeg 中 write_option()函數詳細注釋 文章目錄1. 函數原型1.1 參數說明1.2 SpecifierOpt 說明符選項結構2. write_option 代碼注釋2.1 誰調用了write_option 函數?3. 小結:write_option()不僅在ffmpe…

    PandaCoder重大產品更新-引入Jenkinsfile文件支持

    寫在前面 安裝這個插件可以直接平替 Jenkinsfile Pro &#xff0c;節省200元關于插件介紹的處女篇&#xff1a;https://mp.weixin.qq.com/s/fwMEhmx8vxVlvfnipx09Ag為什么叫「熊貓編碼助手」&#xff1f; 熊貓是中國的國寶&#xff0c;備受世界喜愛&#xff0c;代表著中國特色和…

    鏈表算法之【判斷鏈表中是否有環】

    目錄 LeetCode-141題 LeetCode-141題 給定一個鏈表的頭節點&#xff0c;判斷鏈表中是否存在環 class Solution {public boolean hasCycle(ListNode head) {// checkif (head null || head.next null)return false;// 定義兩個指針&#xff0c;一個快指針[fast]&#xff0c…

    Ubuntu 22.04安裝SQL Server指南

    看起來在安裝過程中出現了問題&#xff0c;導致 mssql-server 沒有正確安裝。以下是排查和修復步驟&#xff1a;1. 檢查是否成功安裝了 mssql-server 運行以下命令&#xff0c;確認是否已安裝&#xff1a; dpkg -l | grep mssql-server如果沒有任何輸出&#xff0c;說明 mssql-…

    Vue+ElementUI聊天室開發指南

    Hi&#xff0c;我是布蘭妮甜 &#xff01;在現代Web應用中&#xff0c;實時聊天功能已成為許多社交平臺、協作工具和客戶支持系統的核心需求。本文將詳細介紹如何使用Vue.js框架配合ElementUI組件庫實現一個功能完整的聊天室應用。我們將從項目搭建開始&#xff0c;逐步實現用戶…

    提升你的AI交互技能:使用Anthropic互動提示教程

    探索Anthropic的互動式提示工程教程&#xff1a;讓Claude與你更默契 在當今人工智能世界中&#xff0c;熟練掌握有效的提示工程成為了與AI進行高效溝通的關鍵。Anthropic推出了一款全面且互動性強的教程&#xff0c;名為“Prompt Engineering Interactive Tutorial”&#xff0…

    從 JavaFX WebView 遷移至 JxBrowser

    長久以來&#xff0c;JavaFX 一直包含一個內置的 WebView 組件&#xff0c;這是在 Java 應用中渲染 Web 內容的一個穩定方案。然而&#xff0c;在更復雜或要求更高的使用場景中&#xff0c;它可能就不夠用了。因此&#xff0c;許多開發者轉向了像 JxBrowser 這樣的替代方案。 …

    將 Go 應用從 x86 平臺遷移至 Amazon Graviton:場景剖析與最佳實踐

    簡介 近年來&#xff0c;Amazon Graviton 處理器以其優越的性價比和強勁的性能&#xff0c;成為了構建高效、可擴展云原生應用的重要選擇。Graviton 采用基于 Arm64 架構的芯片&#xff0c;與傳統的 x86 架構相比存在不少架構差異。雖然 Go 天生對 Arm64 具有良好支持&#xf…

    arcgis api for js 設置地圖服務請求帶有請求頭信息

    通過地圖的config模塊的請求攔截器來設置請求頭信息&#xff0c;如下示例&#xff1a; 1、引入&#xff1a;‘esri/config’ 1、設置請求頭信息 import { loadArcgisModules } from /utils/map/mapLoadUtil export default { mounted() {this.loadMap()}, methods: {/** ****…

    工業通信升級新選擇:耐達訊CCLINKIE轉Modbus TCP網關

    在工業自動化系統中&#xff0c;協議轉換網關的選擇直接影響系統穩定性與通信效率。對于CCLINKIE轉Modbus TCP場景&#xff0c;耐達訊通信技術網關憑借以下特性&#xff0c;成為多個項目中的優選方案。技術選型要點協議兼容性支持CCLINKIE的令牌環機制與Modbus TCP的TCP/IP協議…

    使用python的 FastApi框架開發圖書管理系統-前后端分離項目分享

    今天給大家分享一個 我最近使用python 框架 fastapi 寫的一個web項目 &#xff0c;叫圖書管理系統。項目主要是來鞏固 python的編程技術。使用的是前端后 分離開發。 主要實現的功能&#xff1a; 1、用戶管理&#xff1a;可以新增、編輯、刪除用戶信息。 2、圖書管理&#xff1…

    上位機知識篇---Docker

    Docker 詳細介紹 一、Docker 是什么 Docker 是一個開源的容器化平臺&#xff0c;它允許開發者將應用程序及其依賴項打包到一個標準化的單元&#xff08;稱為容器&#xff09;中&#xff0c;確保應用在任何環境中都能以相同的方式運行。 簡單來說&#xff0c;Docker 解決了 &…