uniapp H5端 微信医保支付 免密授权 获取payAuthNo

本文介绍了医保系统对接中的关键步骤,包括获取payAuthNo、免密授权流程、接口地址配置和回调处理,以帮助开发者顺利进行医保支付功能集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该文档只提供payAuthNo获取思路,仅供参考!具体请以实际业务需求为准

最近在对接医保需求项目,对接模块为调起医保免密授权流程
先附上医保文档:https://yb.qq.com/yibao-payment/doc?nodeId=83679977515675648
 

简单说一下医保对接流程:

获取payAuthNo > 9001登录签到 -- 1101获取人员信息 > 2201门诊挂号 -- 2202门诊挂号撤销 -- 2203门诊就诊信息上传 > 6201费用明细上传/6401费用明细上传撤销 > 6202支付下单(预结算)> 渠道下单(微信/支付宝)> 6301医保订单结算结果查询 > 6203医保退费 > 2202门诊挂号撤销

获取payAuthNo步骤基于已经拿到国家局下发对应的测试参数之后!!


测试环境地址:

https://mitest.wecity.qq.com/oauth/code?authType=2&isDepart=2&appid=APPID&cityCode=CITYCODE&channel=CHANNEL&orgChnlCrtfCodg=XXX&orgCodg=XXX&bizType=04107&orgAppId=XXX&redirectUrl=RETURN_URL

参数名称见文档2.2.4

一般在点击支付的时候,需要先调起免密授权

在支付按钮调起授权事件,将地址改成变量形式跳转,即可跳转授权
 

以下存在状态管理器中:


授权方法内的内容:
判断正式环境切换地址头部:
if(process.uniEnv.ENV == 'prod') {
			    state.urlHeader = 'https://card.wecity.qq.com/';
				console.log('state.urlHeader', state.urlHeader);
			}

拼接变量
			
			let authUrl = `${state.urlHeader}oauth/code?authType=2&isDepart=2&bizType=04107` +
			`&appid=${getters.wxAppid}` +
			`&cityCode=${state.medicalInsuranceParams.mdtrtareaAdmvs}` +
			`&channel=${state.medicalInsuranceParams.channelNo}` +
			`&orgChnlCrtfCodg=${encodeURIComponent(state.medicalInsuranceParams.authenticationCode)}` +
			`&orgCodg=${state.medicalInsuranceParams.hospitalCode}` +
			`&orgAppId=${state.medicalInsuranceParams.appId}` +
			`&redirectUrl=${encodeURIComponent(redirectUrl)}`
			
跳转免密授权链接
			console.log('微信授权地址:', authUrl);
			window.location.href = authUrl;




跳转后的地址参考:

 

接入的回调地址在接收页面options接收,可以获取到响应参数retCode和authCode,可以根据判断进行后续业务操作!

判断有返回 retCode并且等于0拿到authCode去调起后端的接口,(其他未激活或者未授权可以走其他取消业务流程操作!)传参authCode加其他需要的参数,调起后端接口获取到payAuthNo,即可进入下一步操作!

### 实现 UniApp H5 页面调用微信支付 #### 配置准备 为了使 UniAppH5 应用能够成功调用微信支付,需先完成必要的准备工作。这包括但不限于确保服务器已按照微信官方的要求进行了相应的设置,并获得了所需的支付权限[^1]。 #### 获取必要参数 在实际开发过程中,前端需要向后发送请求来获得一系列用于支付的关键参数,比如 `appId`、`timeStamp`、`nonceStr`、`package` 和 `signType` 以及最终的签名 `paySign`。这些数据由后处理并与微信公众平台交互而得来[^2]。 #### 初始化 HTML 文件与配置 对于基于 UniApp 构建的应用程序来说,在项目的根目录下新增一个HTML文件(例如命名为 index.html),并且要在 manifest.json 中指定该文件作为入口点之一。这样做可以方便地加载特定于H5环境下的资源或脚本[^3]。 #### 注册全局方法以便调用支付功能 为了让整个应用都能轻松访问到微信支付的能力,可以在 main.js 中定义一个全局的方法来进行初始化操作。具体做法是在 Vue 实例之前加入如下代码片段: ```javascript // #ifdef H5 Vue.prototype.$wechatPay = function(options){ wx.chooseWXPay({ ...options, success: res => { console.log('支付成功',res); }, fail: err => { console.error('支付失败',err); } }); }; // #endif ``` 此部分逻辑会根据编译条件判断是否处于H5环境下再执行相应动作;同时利用 WeixinJSBridge 提供的选择支付方式接口 chooseWXPay 来启动支付过程[^4]。 #### 调用支付函数 当一切就绪之后,就可以通过触发某个事件(如点击按钮)来调用预先注册好的 `$wechatPay()` 方法了。此时应传递从前端获取到的所有必需字段给它,从而开启完整的支付体验。 ```html <button @click="handlePayment">立即付款</button> <script> export default{ methods:{ handlePayment(){ const payParams={ appId:'wxd930ea5d5a258f4f', timeStamp:'1576760027', nonceStr:'e61ecf7c5bcfb6b7adbaebc1cb3aaef5', package:'prepay_id=wx20191219141347dfacbf0db50442245371',//注意这里的包名前缀是固定的 signType:'MD5', paySign:'C380BEC2BFD727A4B6845133519F3AD6' } this.$wechatPay(payParams); } } } </script> ``` 以上就是在一个标准的 UniApp H5 工程里集成微信支付 API 所涉及的主要步骤和技术要点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

peachSoda7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值