微信支付接口申请流程(二维码收款平台在线收款处理方法)


前言



微信支付是企业级项目中经常使用的功能。作为后端开发人员,完全掌握这项技术是很有必要的。


标志;徽标



一、申请流程和步骤



图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点击试玩

  • 寰俊鏀粯鎺ュ彛鐢宠娴佺▼(浜岀淮鐮鏀舵骞冲彴鍦ㄧ嚎鏀舵澶勭悊鏂规硶)
    绛旓細JSAPI鏀粯:鍟嗗璋冪敤寰俊鏀粯鎻愪緵鐨凧SAPI鎺ュ彛,鍦ㄦ敮浠樺満鏅腑璋冪敤寰俊鏀粯妯″潡瀹屾垚鏀舵;鍘熺敓鏀粯:鍟嗗绯荤粺鏍规嵁寰俊鏀粯鍗忚鐢熸垚鏀粯浜岀淮鐮,鐢ㄦ埛鍐嶄娇鐢ㄥ井淇 quot鎵弿 quot瀹屾垚浠樻鏂瑰紡;灏忕▼搴忔敮浠:鍦ㄥ井淇′腑閫氳繃鍒嗕韩缁欐湅鍙嬫垨鎵弿浜岀淮鐮佹墦寮灏忕▼搴,鍗冲彲璋冪敤寰俊鏀粯瀹屾垚涓嬪崟杩囩▼;鏀粯鐮佹敮浠:鐢ㄦ埛鍑虹ず寰俊閽卞寘涓殑鏉$爜鍜屼簩缁寸爜,鍟嗗鎵...
  • 寰俊瀹樻柟浜岀淮鐮鏀舵鎬庝箞鐢宠
    绛旓細1鐐瑰嚮鏀朵粯娆惧湪寰俊鏀粯鐣岄潰涓紝鐐瑰嚮鏀朵粯娆俱2閫夋嫨浜岀淮鐮佹敹娆惧湪鏀朵粯娆剧晫闈腑锛岀偣鍑讳簩缁寸爜鏀舵銆3鐐瑰嚮鏀舵灏忚处鏈湪浜岀淮鐮佹敹娆剧晫闈腑锛岀偣鍑绘敹娆惧皬璐︽湰銆4閫夋嫨鏀舵宸ュ叿鍦ㄥ睍寮鐨勬敹娆惧皬璐︽湰鐣岄潰涓紝鐐瑰嚮鏀舵宸ュ叿鍗冲彲銆5閫夋嫨妯℃澘鍦ㄥ井淇″畼鏂规敹娆剧爜鐣岄潰涓紝閫夋嫨闇瑕佺敵璇风殑妯℃澘鍗冲彲銆
  • 寰俊鍟嗗浜岀淮鐮佺敵璇锋祦绋
    绛旓細1锛夎繘鍏ユ敮浠樺疂APP棣栭〉锛岀偣鍑烩滄敹浠樻鈥濓紱2锛夐夋嫨鈥滀簩缁寸爜鏀舵鈥濓紝棰嗗彇鏀堕挶鐮侊紝骞堕夋嫨鐗╂枡鏂瑰紡锛3锛夋煡鐪嬪崗璁苟鍚屾剰鍚庣敵璇枫傚井淇″晢瀹舵敹娆剧爜鐢宠娴佺▼ 1锛夐夋嫨鈥滄敹娆惧晢涓氱増鈥濓紱2锛夌偣鍑烩滃紑濮嬬敵璇封濓紱3锛夋敞鍐屽井淇℃敮浠樺晢鎴峰彿锛4锛夊~鍐欑浉鍏宠祫鏂欏苟鎻愪氦銆傛楠3锛氭病鏈夎惀涓氭墽鐓у浣曠敵璇峰晢瀹舵敹娆剧爜 娌℃湁钀ヤ笟鎵х収鐨勫晢...
  • 濡備綍鍦寰俊涓鐢宠鍟嗗鏀舵浜岀淮鐮?
    绛旓細棣栧厛锛岀櫥褰曚綘鐨勫井淇¤处鍙凤紝鎵惧埌鍙充笅瑙掔殑"鎴"锛岀偣鍑昏繘鍏"鏀粯"閫夐」锛屾帴鐫鎵惧埌骞剁偣鍑"閽卞寘"锛屽湪閽卞寘鐣岄潰涓壘鍒"鏀朵粯娆"锛岃繘鍏ュ悗閫夋嫨"浜岀淮鐮佹敹娆"銆傝繘鍏ヤ笅涓姝ワ紝鐢宠杩囩▼寮濮嬶細鍦ㄤ簩缁寸爜鏀舵椤甸潰锛岀偣鍑"绔嬪嵆鐢宠"锛屽湪寮瑰嚭鐨勭獥鍙d腑锛屽~鍐欏晢瀹剁殑鍚嶇О锛岀‘淇濆畠鑳藉噯纭湴浣撶幇浣犵殑鍝佺墝鎴栨湇鍔°傚悓鏃讹紝鎻愪緵浣犵殑璇︾粏閫...
  • 寰俊鍟嗗浜岀淮鐮鏀舵鎬庝箞鐢宠 濡備綍鐢宠鍟嗗鐗堝井淇℃敹娆剧爜
    绛旓細1銆佹墦寮鈥滃井淇♀濆簲鐢紝鐐瑰嚮鍙充笅瑙掆滄垜鈥濄2銆佺偣鍑鈥滄敮浠樷濓紝杩涘叆涓嬩竴涓〉闈㈠悗锛岀偣鍑烩滄敹浠樻鈥3銆佽繘鍏ュ埌鈥滄敹浠樻鈥濋〉闈㈠悗锛屾壘鍒扳滀簩缁寸爜鏀舵鈥濋夐」骞剁偣鍑昏繘鍏ワ紝鐒跺悗鐐瑰嚮浜岀淮鐮佷笅鏂圭殑鈥滄敹娆惧皬璐︽湰鈥4銆佽繘鍏モ滄敹娆惧皬璐︽湰鈥濅箣鍚庯紝鐐瑰嚮宸︿笂瑙掔殑鈥滃紑鍚晢瀹舵湇鍔♀濊繘鍏ヤ箣鍚庯紝鎴戜滑鐐瑰嚮鈥滃墠寰琛ュ厖鈥5銆佽繖閲岄夋嫨鈥...
  • 寰俊鎬庝箞鐢宠浜岀淮鐮鏀舵
    绛旓細1銆佹墦寮鎵嬫満涓婄殑鈥寰俊鈥濓紝鐐瑰嚮鈥滄垜鈥濄2銆佺劧鍚庣偣鍑讳釜浜虹晫闈㈠垪琛ㄤ腑鐨勨鏀粯鈥濋夐」銆3銆佸啀鐐瑰嚮鐣岄潰涓殑鈥鏀朵粯娆鈥濄4銆佽繘鍏ユ敹浠樻鐣岄潰鍚庯紝鐐瑰嚮鍒楄〃涓殑鈥浜岀淮鐮鏀舵鈥濄5銆佸啀鐐瑰嚮璇ョ晫闈腑鐨勨滄敹娆惧皬璐︽湰鈥濄6銆佺偣鍏朵腑鐨勨滄敹娆剧爜鈥濋夐」銆7銆佸彲閫夋嫨瀹樻柟鏀舵鐮侊紝閫夋嫨鍚庣偣鍑荤晫闈㈡渶涓嬫柟鐨勨滅珛鍗鐢宠鈥濇寜閽...
  • 寰俊浜岀淮鐮鏀舵鎬庢牱鐢宠
    绛旓細棣栧厛杩涘叆銆寰俊銆戯紝鎵撳紑鍙充笅瑙掔殑銆愭垜銆戯紝鐐瑰嚮澶村儚涓嬫柟鐨勩鏀粯銆戯紝鏄剧ず鏀粯椤甸潰鍚庨夋嫨銆鏀朵粯娆銆戯紝鎵惧埌骞舵墦寮銆浜岀淮鐮鏀舵銆戯紱杩涘叆鍚庣偣鍑汇愭敹娆惧皬璐︽湰銆戯紝閫夋嫨銆愭敹娆剧爜銆戞湇鍔★紝鏍规嵁鑷繁鐨勯渶姹傛寫閫夊悎閫傜殑鏀舵鐮佺増寮忓苟鐐瑰嚮銆愮珛鍗宠喘涔般戯紝杈撳叆鍟嗗鍚嶇О鍜屾敹璐у湴鍧鍚庛愮珛鍗虫敮浠樸戯紝鏍稿浠樻閲戦鍜屾敮浠樻柟寮忔棤璇悗...
  • 寰俊鏀舵鐮鐢宠娴佺▼
    绛旓細寰俊鏀舵鐮佺殑鐢宠娴佺▼鐩稿绠鍗曪紝涓鑸彲浠ラ氳繃浠ヤ笅鍑犱釜姝ラ瀹屾垚锛1. 鎵撳紑寰俊骞惰繘鍏“鎴”鐨勯〉闈紱2. 鐐瑰嚮“鏈嶅姟”鎴“閽卞寘”閫夐」锛3. 閫夋嫨“鏀朵粯娆”鍔熻兘锛4. 鐐瑰嚮“浜岀淮鐮鏀舵”鎴栫被浼奸夐」锛5. 鏍规嵁鎻愮ず瀹屾垚鐩稿叧淇℃伅濉啓鍜岃韩浠介獙璇侊紱6. 鐢熸垚骞...
  • 濡備綍鍦寰俊涓鐢宠鏀舵浜岀淮鐮?
    绛旓細姝ラ涓锛氭墦寮寰俊锛岃В閿鏀粯鍔熻兘</鐐瑰嚮寰俊涓荤晫闈㈠彸涓婅鐨"+"鍥炬爣锛屽睍寮鍔熻兘鑿滃崟锛岄夋嫨"鏀舵/鏀粯"锛屾帴鐫杩涘叆"浜岀淮鐮鏀舵"鐣岄潰銆傜户缁繁鍏ワ紝鐐瑰嚮"鏀舵灏忚处鏈"锛屽湪杩欓噷锛屼綘闇瑕佹壘鍒板苟鐐瑰嚮"鏀舵鐮"閫夐」锛屽紑濮嬩綘鐨勫畾鍒朵箣鏃呫傛楠や簩锛鐢宠涓撳睘浜岀淮鐮</鐐瑰嚮"绔嬪嵆鐢宠"锛屽~鍐欏叧閿俊鎭互纭繚浠樻浣撻獙娴佺晠銆傞鍏...
  • 濡備綍鍦寰俊涓敓鎴愬拰鐢宠鍟嗗鏀舵浜岀淮鐮?
    绛旓細棣栧厛锛屾墦寮浣犵殑寰俊锛屾壘鍒板彸涓婅閭d釜鑿滃崟鐨勬墿灞曞浘鏍囷紝鐐瑰嚮杩涘叆锛堝姟蹇呯‘淇濆井淇$増鏈槸鏈鏂扮殑鍝︼級銆傛帴鐫锛屾粦鍔ㄨ嚦鏀粯閫夐」锛屾繁鍏ユ帰绱紝浣犱細鍙戠幇闅愯棌鐨勫疂钘忊斺浜岀淮鐮鏀舵鍔熻兘銆傜偣鍑诲畠锛屾墦寮浣犵殑鍟嗕笟鏀舵涔嬭矾銆傚湪浜岀淮鐮佹敹娆剧殑鐣岄潰锛岀洰鍏夎绮惧噯锛屾壘鍒板簳閮ㄧ殑绠$悊鍏ュ彛鈥斺旀敹娆惧彴璐︼紝杩欓噷灏嗘槸浣犵殑鏀舵绁炲櫒鐨勫叧閿缃湴...
  • 扩展阅读:二维码收款洗黑钱联系方式 ... 小程序一键生成二维码 ... 收款码查对方联系方式 ... 二维码收款怎么找对方 ... 免费一键生成二维码 ... 商家收款二维码 ... 码支付接口官网 ... 二维码收款人联系方式 ... 二维码收款洗黑钱app下载 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网