當前位置:編程學習大全網 - 編程語言 - 微信支付接口申請流程(二維碼收款平臺在線收款處理方法)

微信支付接口申請流程(二維碼收款平臺在線收款處理方法)

前言

微信支付是企業級項目中經常使用的功能。作為後端開發人員,完全掌握這項技術是很有必要的。

標誌;徽標

壹、申請流程和步驟

圖1-1

註冊微信支付賬號,獲取微信小程序APPID,獲取微信商戶 商家ID,獲取微信商家 API私鑰,配置微信支付回調地址,綁定微信小程序與微信支付的關系,搭建SpringBoot項目,編寫後臺支付接口,發布部署接口服務項目,使用微信小程序或UniAPP調用微信支付功能,支付接口的包配置,openid的jwt或token分發。原微信小程序完成支付對接

二、註冊商家

2.1商戶平臺

。商家或企業想通過微信支付銷售商品,首先要通過微信平臺註冊商家。註冊成功後會有商家信息等界面,包括賬號信息,企業信息等等。如圖2-1所示:

圖2-1

2.2商戶id

商戶id是項目開發中的唯壹id,是微信支付給予每壹個商戶或企業的唯壹ID。也是客戶拉起微信支付的憑據之壹。 quot微信支付商戶號 quot圖2-1中是商家id。

三、API私鑰

成功註冊商家後,還可以在微信平臺設置API私鑰。如圖3-1所示:

圖3-1

API私鑰也叫支付密鑰,用戶拉起微信支付時後臺需要商戶id和API密鑰。

四、商戶簽約微信支付產品

商家可根據需求簽約微信支付的產品,主要包括:

JSAPI支付:商家調用微信支付提供的JSAPI接口,在支付場景中調用微信支付模塊完成收款;原生支付:商家系統根據微信支付協議生成支付二維碼,用戶再使用微信 quot掃描 quot完成付款方式;小程序支付:在微信中通過分享給朋友或掃描二維碼打開小程序,即可調用微信支付完成下單過程;支付碼支付:用戶出示微信錢包中的條碼和二維碼,商家掃描用戶條碼即可完成收款;刷臉支付:用戶可以通過 quot刷臉 quot在整合了微信刷臉支付SDK的線下設備上。如圖4-1所示:

圖4-1

五、配置回調地址

支付回撥地址是微信支付服務器返回給用戶的支付信息的地址。如果商家簽了微信小程序產品,支付回撥地址可以配置,也可以不配置。地址是公司的域名,或者沒有配置。

六、小程序獲取APPID

首先妳要在官網:

圖6-1

註冊成功後,可以獲得小程序的唯壹APPID。如圖6-2所示:

圖6-2

七、微信支付與小程序綁定

在微信支付平臺綁定APPID。如圖7-1所示:

圖7-1

八、實戰部分

8.1SpringBoot框架搭建

首先創建壹個初始化SpringBoot項目;在項目/模塊的resources文件夾下編寫properties/yml配置文件;開發環境和生產環境應該在配置文件中隔離;配置文件還包括服務器、數據庫、spring、token、日誌、時區、json格式、mybatis-plus、swagger、redis的全局統壹配置,服務器配置,微信小程序配置等。項目基礎架構後端接口控制器、與前端數據交互配置雲服務器配置Swagger配置接口攔截器微信支付配置CommonConStanumsajaxresultsBaseController basentitypage頁面所需的域接口和參數mappermapper文件接口serviceService:承擔控制器層的接口方法定義。Impl:接口的具體實現邏輯。utils文件工具類Json工具類時間格式工具類第三方登錄工具類

8.2微信支付相關接口

8.2.1小程序用戶登錄接口

。首先,用戶需要在小程序上授權微信用戶登錄,調用接口獲取。通過憑證可以交換用戶的登錄狀態信息,包括當前小程序的唯壹標識符、用戶的唯壹標識符以及本次登錄的會話密鑰。

具體登錄流程如圖8-1所示:

圖8-1

此時調用服務器接口,請求參數如圖8-2所示:

圖8-2

用戶登錄後返回的參數如圖8-3所示:

圖8-3

8.2.2統壹下單接口

用戶登錄小程序後,在小程序頁面拉起支付請求時,會調用統壹下單界面。

在拉起壹個支付請求時,訂單接口的參數需要兩部分:壹部分是商家和小程序相關的openid和appid,另壹部分是商品相關的價格、名稱、數量等參數。

下面用代碼詳細解釋壹下微信支付接口。代碼以REST風格的API接口形式編寫。

統壹訂購界面

@ API operation@ request mappingpublic Ajax result unified order{//驗證小程序用戶的登錄//查詢數據庫訂單信息//只有未付款的訂單才能發起支付//0元購買未付款/* *設置與商戶和小程序相關的請求參數* *//獲取小程序的appid字符串appid=wxmauil.getappid;WxPayUnifiedOrderRequest WxPayUnifiedOrderRequest=new WxPayUnifiedOrderRequest;wxpayunifieorderequest . set appId;//商品名稱string body=sysorderscout . getcourename;body=body.length 40?body.substring:body;wxpayunifieorderequest . set body;//訂單編號WXPayUnifiedOrder請求。SetOutTradeNo);//訂單金額wxpayunifiedorequest . settotalfee。multiply )。int value);//事務類型wxpayunifiedorequest . settradetype;//支付回調地址wxpayunifiedorequest . setnotifyurl#039;/wx/API/order/notify-order );wxpayunifiederrequest . setspbillcreateip;//當前applet中用戶的唯壹標識符wxpayunifiedorerrequest . set OpenID);//調用微信服務類wxpayservice wxpayservice=wxpayconfiguration . getpayservice;返回Ajax result . success);}

8.2.3創建訂單接口

創建訂單界面

用戶可以在商品頁面下壹個商品的訂單,這個時候就需要為用戶創建壹個購買商品的訂單。

流程是通過接口請求用戶信息、商品信息等參數,經過邏輯判斷後創建新訂單,最後返回訂單所需數據。

@ API operation@ request mappingpublic Ajax result create{//微信用戶信息//判斷是否購買了同款產品。如果有,則不能新建訂單//在滿足條件後將數據插入數據庫wxOrderResponse wxOrderResponse=orderservice . add;//如果新增失敗,則提示If{ return Ajax result . error會被退回;}返回Ajax result . success;}

8.2.4取消訂單接口

取消訂單界面

當用戶拉起微信支付時,如果在支付界面點擊取消支付,則該操作視為取消訂單的支付,此時訂單的支付狀態應顯示在訂單頁面。

該接口可以將訂單id作為請求參數,首先確定數據庫中是否存在訂單信息,然後限制可以取消的訂單類型,最後更新數據庫表狀態。

@ API operation@ request mappingpublic Ajax result cancel{//判斷訂單是否有sys orders sys orders=sysorderservice . get byid;if{ return Ajax result . error;}//只有未付款的訂單才能取消,如果){ return Ajax result . error,MyReturnCode。ERR _ 70001 . getmsg);} sysordersservice . order cancel;返回Ajax result . success;}

8.2.5訂單詳情接口

訂單明細界面

當訂單生成後,用戶可以在頁面上查看貨物訂單的詳細信息。

界面可以通過訂單id從數據庫中獲取詳細信息,該頁面顯示的數據由業務需求決定。

@ API operation@ request mapping@ apimplicitparams})公***Ajax結果myorderDetail{//從數據庫獲取詳細參數sysorderdetailresponse=sysorderservice . Get detail;返回Ajax result . success;}訂單詳細信息邏輯

/* * *訂單詳情頁面參數處理* @ param orderId * @ return sysorderdetail response */@ override public sysorderdetail response get detail{ SysOrderDetailResponse SysOrderDetailResponse=Order mapper . get detail;//處理頁面字符串phone num=sysorderdetailresponse . get mobile的手機號碼;sysorderdetailresponse . set mobile ****#039;phoneNum.substring);//根據不同的訂單狀態顯示不同的數據。//計算剩余待支付時間並顯示返回sysOrderDetailResponse}

8.2.6支付回調接口

微信支付回撥是用戶支付貨款後,將數據發送到微信服務器,然後微信服務器將支付結果返回給用戶和商家的過程。

其中主要關註的是用戶支付-微信回撥判斷-數據庫修改的流程。

支付回撥接口

@ API operation@請求映射公***字符串通知訂單引發WxPayException { log . info;//微信支付服務WxPayService WxPayService=wxpayconfiguration。getpayservice;WxPayOrderNotifyResult notifyResult=wxpayservice。parseordernotifyresult;log . info;//對創建的訂單進行支付系統訂單系統訂單=訂單服務。獲取壹個);if { if.相乘).int value==通知結果。gettotalfee){ String time end=notify結果。gettime end;本地日期時間付款時間=本地日期時間效用。解析;//支付時間sysOrders.setPaymentTime;系統訂單。setorderamount);//微信訂單編號系統訂單。settransactionid);//更新數據庫訂單服務。通知訂單;log . info);返回wxpaynotifyresponse . success;} else { return wxpaynotifyresponse。失敗;} } else { return wxpaynotifyresponse。失敗;}}其中,notifyOrder方法的作用是在支付成功後在數據庫更新訂單的狀態。

通知訂單方法

@ Override @ Transactional公***void通知訂單{//只有未支付訂單能操作,即is_pay字段為0的訂單if){//更新訂單支付狀態系統訂單。setispay;系統訂單。設置狀態);系統訂單映射器。更新byid;//更新商品表狀態//更新訂單生命周期表}}至此,Spring Boot中的微信支付全過程已經分享完成。如有不足,望大家指正。

王者之心2點擊試玩

  • 上一篇:高分求PHP+MSSQL分頁程序
  • 下一篇:幼兒園教案:甜甜的冷飲
  • copyright 2024編程學習大全網