当前位置: 首页 > news >正文

uniapp 小程序 支付逻辑处理

uniapp 小程序 支付逻辑处理

  1. 上代码如果你不需要支付宝适配,可以删除掉支付宝的条件判断代码
    <button class="subBtn" :disabled="submiting" @click="goPay">去支付</button>
   // 以下代码你需要改的地方// 1.  order/app/v1/order/waitPayToPay 更换自己的支付接口// 2.  修改接口传参// 3.  修改接口返回的的各种状态码,并处理逻辑// 4.  请更换为你的模版id// 5.  更换跳转页面的路由export default {data() {return {submiting: false,};},methods: {goPay() {if (this.submiting) {return;}uni.showLoading({ title: "发起支付..." });this.submiting = true;// 调用接口this.$uniApi.dataRequestYesLoading("POST","order/app/v1/order/waitPayToPay",{// #ifdef MP-WEIXINpayChannel: "",// #endif// #ifdef MP-ALIPAYpayChannel: "alipay_mini",// #endiforderSource: 5, //小程序orderId: this._orderId,buyerMemo: this.memberRemark, //备注// #ifdef MP-WEIXINseriesNumber:uni.getStorageSync("userInfor").openId ||uni.getStorageSync("wxopenid"), //订单序列号// #endif// #ifdef MP-ALIPAYseriesNumber: uni.getStorageSync("userInfor").zfbUserId, //订单序列号// #endif},"支付中").then((data) => {if (data.code == 18018 || data.code == 18019 || data.code == 18020) {//该优惠券无法使用// this.orderEnsure();//  this.openPopup();//请根据自己的需求 处理此处逻辑this.submiting = false;uni.hideLoading();return;}// 我的接口成功的时候 返回的是1if (data.code !== 1) {uni.hideLoading();this.submiting = false;this.$util.showToast(data.msg);return;}//微信支付uni.requestPayment({// #ifdef MP-WEIXINtimeStamp: data.data.timeStamp,  // String类型,支付签名时间戳,需与后台统一nonceStr: data.data.nonceStr,  // String类型,支付签名随机串,需与后台统一package: `prepay_id=${data.data.prepayid}`,  // String类型,统一下单接口返回的 prepay_id 参数值,格式如:prepay_id=xxxsignType: data.data.signType, // String类型,签名方式,默认为 “MD5” ,仅支持 “MD5” 和 “HMAC-SHA256”paySign: data.data.pay_sign, // String类型,签名,具体签名方案参考微信支付开发文档// #endif// #ifdef MP-ALIPAYorderInfo: data.data.tradeNo,// #endifsuccess: (success) => {  // 接口调用成功的回调函数console.log(success);// #ifdef MP-ALIPAYlet resultCode = success.resultCode;if (resultCode == 6001 ||resultCode == 4000 ||resultCode == 6002) {// 操作失败 时 逻辑处理return;}// 用户订阅操作 订阅后 用户可在微信收到支付信息等// #endifthis.wxInForm(["YUjKUVJIRah0xxxxxxxxxxxxxxxxxxxxxxxxx5CE8CVuM",  // 这是订阅模版id 请更换为你的模版id]).then((res) => {// 订阅成功后 跳转到指定页面uni.redirectTo({url: '../order_pay/order_pay',,});}).catch((err) => {// 不订阅 跳转到指定页面uni.redirectTo({url: '../order_pay/order_pay',});});this.submiting = false;},fail: (err) => { //接口调用失败的回调函数console.log("fail:" + JSON.stringify(err));this.submiting = false;// 支付失败处理},});});},// 改方法最好写在vuex中wxInForm(tmplIds){return new Promise(resolve => {uni.requestSubscribeMessage({tmplIds:tmplIds,  // 订阅模版idsuccess(res){resolve()},fail(res){resolve()}})})},}}
  1. 完成!
http://www.lryc.cn/news/405619.html

相关文章:

  • scikit-learn库学习之make_regression函数
  • 经典文献阅读之--World Models for Autonomous Driving(自动驾驶的世界模型:综述)
  • 孙健提到的实验室的研究方向之一是什么?()
  • 初级java每日一道面试题-2024年7月23日-Iterator和ListIterator有什么区别?
  • 2024-07-23 Unity AI行为树2 —— 项目介绍
  • Unity-URP-SSAO记录
  • 无人机上磁航技术详解
  • 使用 cURL 命令测试网站响应时间
  • 「网络通信」HTTP 协议
  • 科普文:后端性能优化的实战小结
  • LeetCode-day23-3098. 求出所有子序列的能量和
  • CSS3雷达扫描效果
  • 单例模式懒汉模式和饿汉模式
  • python __repr__和__str__区别
  • huawei USG6001v1学习----NAT和智能选路
  • FPGA JTAG最小系统 EP2C5T144C8N
  • Android 15 之如何快速适配 16K Page Size
  • 学习unity官方的网络插件Netcode【一】
  • QT写一个mainWindow
  • Java查找算法练习(2024.7.23)
  • 洗地机哪个牌子好?四款口碑最好的洗地机排名推荐
  • 如何提升短视频的曝光量和获客效能?云微客来解决
  • SpringBoot开发中如何缓存数据, 减少数据库的访问频率?
  • PostgreSQL如何在windows/linux开启归档
  • 【启明智显分享】基于国产Model3芯片的7寸触摸屏助力智慧医疗,电子床头屏提升护理交互
  • 从理论到实践:如何用 TDengine 打造完美数据模型​
  • 可以免费合并pdf的软件 合并pdf文件的软件免费 合并pdf的软件免费
  • 【排序 滑动窗口 】1498. 满足条件的子序列数目
  • RabbitMQ普通集群搭建指南
  • AGV平面坐标系变换公式及实例