uniapp接盛付通支付
发布于 2023-09-07 14:48:56 阅读()作者:147小编
已有9352成功领取POS机
uniapp接盛付通支付
App微信支付iOS微信支付小程序支付微信公众号支付
最近接到一个项目,需要做App微信支付iOS微信支付小程序支付微信公众号支付在这个过程中走了很多弯路。因此记录一下App微信支付iOS微信支付小程序支付在app支付中查看uni-app**?可以实现?app微信支付??App微信支付iOS微信支付小程序支付注:iOS微信支付需要调起上面链接里面的App支付?可以实现?iOS微信支付,需要在苹果开发账号配置一些东西详细看文档?并且IOS只能打包在手机测试微信公众号支付查看文档?https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6?里面有详细的流程,我遇到了一些坑?做之前建议小伙伴们把需要的东西提前准备好???注:微信支付需要openid前端需要拿code去换取后台的openid?获取code的请看问文档微信开放文档https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http://nba.bluewebgame.com/oauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect上面的链接需要填appid??redirect_uri而redirect_uri需要urlEncode对链接进行处理?scope的参数snsapi_base不弹出授权?snsapi_userinfo弹出授权uniapp支付之微信支付
本文内容是指的uni-app项目的支付,文档中5+ APP的项目类型不涉及。
虽然uni-app已经为我们封装好了一个统一的API,所以在uni-app中我们只需要调用uni.requestPayment即可。但是uni-app官方文档的散乱看起来也挺头疼的。这里我精简整个流程,并对自己开发时碰到问题做个总结。
需要注意的是,支付模块的开发不仅仅是需要客户端的开发,还需要服务端的开发。这里是在保证服务端的配置正确的前提下,对于前端uni-app的开发与配置指南。
这里有必要说明一下,申请微信支付流程对于初次申请者会感觉有些混乱,如果不理清相应关系可能会在各种平台找来找去。
对于APP,要在微信开放平台( https://open.weixin.qq.com )注册申请账号。注这里公司使用需300元认证费。在应用详情中申请开通微信支付功能。
当审核都通过了,就可以获取到应用ID(APPID,即类似于个人ID一样,唯一标识)
有了以上基础,申请微信商户平台( https://pay.weixin.qq.com ),注册申请账号。之后只需关联AppID,即可。
无需配置,只需保证微信小程序配置即可。
在manifest.json文件“App模块配置”项的“Payment(支付)”下,勾选“微信支付”项
调用 [uni.requestPayment(OBJECT)]发起支付,OBJECT参数中provider属性值固定为 wxpay 、
这里 的timeStamp, nonceStr, package, signType, paySign是由后端与微信交互生成的,值得注意的是package,微信直传过来的值是packageValue。
这里是orderInfo,该属性值为订单对象。依然值得注意的是package,微信直传过来的值是packageValue。
partnerid,微信传过来的是partnerId。
prepayid,微信传过来是prepayId。
noncestr,微信传过来的是nonceStr。
timestamp,微信传过来的是timeStamp。
这里一定一定要注意大小写,不然订单请求失败,让你找问题,找到痛不欲生。
至此,微信小程序已经可以正常支付了。而APP则需要打包才可以。uni-app有两种打包方式,一个是提交云端打包,一个是本地离线打包。这里说下离线打包的相关配置和问题。
关于离线打包我会单独出一篇,这里不在讲解。只进行微信支付相关配置讲解。
在uni-app官方提供的App离线SDK中有一个打包工程,如果想使用微信支付,就需要添加相应的依赖库以及**,这点我就很怀念cocopods,方便太多了。
注意:SDK 中的
1.在URL Types 中添加配置: identifier 填写 weixin ,URL Schemes 填写 wx[后面是您在微信平台申请的appkey] ,如果没有该项按照图中的格式创建。注意 wx 这两个字母必须添加。uniapp微信支付,nestjs后台需要怎样配置
uniapp微信支付,nestjs后台配置,后端拿到微信正确的响应后,需要从其中取出一些字段,存在map中,然后包装成查询参数字符串加上key,再md5后大写,将获得的字符串放在map中,作为sign的属性值,最后将map返给前端即可,这里需要注意的是,不论是发给微信的参数,还是发给前端让前端发给微信的参数的每一个字段名都需要跟微信要求的一致。
uniapp集成支付宝支付无法唤起支付宝客户端
问题:支付demo是可以的,但是项目里面无法唤起支付支付宝客户端
原因:targetSdkVersion大于或等于30,无法检测到支付宝客户端是否安装,需要提供应用可见性声明。微信支付接口申请流程(二维码收款平台在线收款处理方法)
前言
微信支付是企业级项目中经常使用的功能。作为后端开发人员,完全掌握这项技术是很有必要的。
标志;徽标
一、申请流程和步骤
图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点击试玩uniapp支付宝怎么兼容从底部弹窗
更换系统设置。uniapp支付宝更换系统设置即可达到兼容从底部弹窗。uni-app(uni,读youni,是统一的意思)是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码。
相关文章推荐
-
盛付通pos机安装(盛付通POS机安装办理) 08-27
-
盛付通pos机简介() 08-28
-
杭州盛付通pos机办理() 09-06
-
盛付通pos机银行专用(刷卡机盛付通) 09-13
-
盛付通pos机费率1%(盛付通POS机费率多少) 09-07
-
pos机盛付通和快付(盛付通和快钱刷哪个更好) 08-31
-
盛付通无线pos机终端() 09-11
-
盛付通pos机怎么绑定(盛付通怎么绑定商户) 09-10
-
盛付通pos机的特点() 09-08
-
盛付通pos机怎么设置(盛付通刷卡机怎么用) 09-17
-
快付和盛付通哪个好(刷卡机pos哪个好) 09-10
-
盛付通pos(盛付通pos机怎么使用) 09-13
-
盛付通POS编码 09-14
-
做盛付通代理怎么返点 09-08
-
盛付通4g电签机构政策 09-12
-
怎么解除盛付通签约 09-10
-
盛付通一个人可以注册几台 09-15
-
盛付通100 09-12
-
广发克星盛付通 09-09
-
广发信用卡盛付通刷不出来 09-09