有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

uniapp 微信支付 支付宝支付 实现orderInfo介绍

uni-app cat 2个月前 (07-24) 111次浏览 已收录 2个评论 扫描二维码

App平台支付流程

流程:支付平台功能申请 -> manifest.json 里配置支付参数 -> uni-app 里调用 API 进行支付。具体参考uniapp官方提供的app平台支付流程
支付平台功能申请

支付宝App支付功能申请
创建应用(获取appid)
开通App支付功能
配置密钥(获取公钥、私钥)

具体可参考支付宝官方文档(支付宝官方->开放能力->接入准备): App支付快速接入

微信App支付功能申请

到微信开放平台申请移动应用并开通支付功能,申请应用后可以获取 AppID 和 AppSecret 值。

应用接入微信商户平台,选择 App 支付。参考:具体步骤。

通支付功能后可获取支付业务服务器配置数据:PARTNER:财付通商户号,PARTNER_KEY:财付通密钥,PAYSIGNKEY:支付签名密钥。

需要将从微信开放平台申请的appid,填回到 manifest-App SDK配置-支付-微信支付 中。打包后生效(此处有个坑就是需要用基座运行,这样打包后运行最终才会调用成功)。

开发

前端使用uni.requestPayment(OBJECT)进行支付,具体可以参考requestPayment。

uni.requestPayment支付API中有个很重要的参数就是orderInfo,但是官方并没有给出该参数的格式,所以我直接将我们项目的参数拿出来当示例代码:

微信支付订单:参数说明可以参考APP调起支付API

orderInfo(Object):
{ 
"appid": "wxf2adc953107964fx",
"partnerid": "1508439501", 
"prepayid": "wx1311241248288069a3b92cecb8ae6a000x", 
"timestamp": "1631503452", 
"noncestr": "slhxr43wvjonquyr55vvdl5amf5pxx4x", 
"package": "Sign=WXPay", 
"sign": "F7FC674CB8EE57916F560E267576394x"
 }

支付宝支付订单:参数说明可以参考app支付接口2.0

orderInfo(String):
alipay_sdk=alipay-sdk-php-20180705&app_id=202100116263372x&biz_content=%7B%22body%22%3A%22%5Cu5145%5Cu503c48.9%5Cu5143%22%2C%22subject%22%3A%22%5Cu5145%5Cu503c48.9%5Cu5143%22%2C%22out_trade_no%22%3A%221910213766263492%22%2C%22total_amount%22%3A48.9%2C%22timeout_express%22%3A%2230m%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%7D&charset=UTF-8&format=json&method=alipay.trade.app.pay&notify_url=https%3A%2F%2Fpay.book118.com%2Fpay%2Fcallback%2Falipay.html&sign_type=RSA2&timestamp=2021-09-13+11%3A24%3A49&version=1.0&sign=Nddm8dMCfbMjE1ZET5EnfqvYynNSUU65WsMFWioqBPSnKaBLctuFL6ZZLdA9ObrPFmjD30NZw5pdE36BtBTG8KwOTuAtEc4C3%2BZxGd217ZzV2oZT4HOpPe3in9ZvnyAZSUustdKgKALpurlq9p0G%2Fb2lEeZIELp2hg51c0KU1spGok%2BdQxZ6KV298hJw%2BoNTfRWTUnguuy1UtXINgyUVClQo%2FrNzH6N2wriMsaoYtjqtfk%2FqNYkhVe1nKsKH7pQVJEyVBc28%2FIlr30D9%2BKVvxFSFXMG52eclfJp3L6eozzR3HvGNnbHpiKI1HntqseuOqI7kxFBZnJEeV4UWm1PISg%3D%3D8

orderInfo是后端通过服务器返回到前端。我在搜索平相关文档的时候,获取到了一些相关后端开发的代码与一些坑:https://blog.csdn.net/fireghost57/article/details/103641153

uniapp的官方也提供了PHP的开发方式:https://github.com/dcloudio/H5P.Server/tree/master/payment

步骤如下:实际还是要按照需求来的哈

初始化支付(通过后端接口查询购买状态)
未购买则选择购买方式(可以通过后端接口判断余额是否足够,足够可以余额支付,余额不足则需要充值支付)
选择了支付方式后,调用后端接口生成订单orderInfo
调用支付API唤起支付
支付完成/失败

喜欢 (0)
cat
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. Id like to thank you for the efforts you have put in penning this blog. Im hoping to view the same high-grade content by you in the future as well. In truth, your creative writing abilities has encouraged me to get my very own site now ;)
    israelnightclub.com2022-08-17 11:42 回复 Mac OS X | Chrome 12.0.742.68
  2. Good write-up. I absolutely love this site. Stick with it!
    israel-lady.co.il2022-08-30 01:22 回复 Linux | Firefox浏览器 36.0