uniapp支付之微信支付

如题所述

第1个回答  2022-07-27
本文内容是指的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 这两个字母必须添加。
相似回答