• uniapp 之 充值 微信支付下 之 传递输入金额参数


    前言

    上一篇内容 已经提起过,怎么唤醒微信支付已经实现支付功能,我这边的话就继续分享下怎么实现输入金额充值,你输入多少钱,就支付多少

    提示

    前面的代码 都是在uni。login里面写的 

    它是先获取code ,然后在发送 得到自己 uni.requestPayment 所需要的参数,但是呢,有个问题,怎么把输入金额 input 的值 传递给 data里面?

    所以代码要分开写,不要都写在 uni。login 里面

    直接上代码

    代码

    所有的代码都是写在methods 中的 ,之前我把获取code代码写到 mounted里,它微信支付唤起功能只执行了一次,

    获取code 方法

    1. getCode() {
    2. var that = this
    3. uni.login({
    4. provider: 'weixin',
    5. success(res) {
    6. that.code = res.code
    7. console.log(res.code, res, 'login');
    8. }
    9. })
    10. },

    发送微信请求方法

    1. getWeixin() {
    2. uni.request({
    3. url: uni.$http.baseUrl + '/uniapp/pay/getWeixinPayParameter',
    4. method: 'POST',
    5. data: {
    6. code: this.code,
    7. amount: +this.payDetail || +this.moneyValue
    8. },
    9. header: {
    10. // Authorization: uni.getStorageSync('token')
    11. Authorization: `Bearer ${uni.getStorageSync('token')}`
    12. },
    13. success: ({
    14. data: {
    15. obj: {
    16. weixinMap
    17. }
    18. }
    19. }) => {
    20. console.log(weixinMap);
    21. uni.requestPayment({
    22. provider: 'wxpay', // 服务提提供商
    23. timeStamp: weixinMap.timeStamp, // 时间戳
    24. nonceStr: weixinMap.nonceStr, // 随机字符串
    25. package: weixinMap.package,
    26. signType: weixinMap.signType, // 签名算法
    27. paySign: weixinMap.paySign, // 签名
    28. success: function(res) {
    29. console.log('支付成功', res);
    30. // 支付成功后重新渲染金额
    31. if (res.errMsg === "requestPayment:ok") {
    32. uni.request({
    33. url: uni.$http.baseUrl + '/uniapp/member/getMemberInfo',
    34. method: 'GET',
    35. header: {
    36. // Authorization: uni.getStorageSync('token')
    37. Authorization: `Bearer ${uni.getStorageSync('token')}`
    38. },
    39. success: (res) => {
    40. console.log(res);
    41. }
    42. })
    43. }
    44. },
    45. fail: function(err) {
    46. console.log('支付失败', err);
    47. }
    48. })
    49. }
    50. })
    51. },

    amount 是 后端定义的 输入金额字段名,后面的值,自己写

    之前我进入一个误区,那就是,一直把这两个方法放在同一个函数里面,让它们去执行,但是呢,不知为何,它总是先执行 发送微信请求的方法,后执行获取code的方法,我一直在想怎么让code方法先执行,试过各种的,最终想到了

    点击充值按钮的时候执行 code方法,打开充值页面后,当用户点击 确定后执行 发送微信请求

    这就完美解决了,

  • 相关阅读:
    【小专题】正交试验法设计测试用例
    【sgTileImage】自定义组件:瓦片图拖拽局部加载、实现以鼠标为中心缩放
    书店图书销售管理系统
    贪心算法—Problem F
    《理解深度学习》2023最新版本+习题答案册pdf
    Java基于SpringBoot的社区医院管理服务
    C++从零实现神经网络
    Lua 协程 + 过滤器实现生产者和消费者
    70行代码撸一个桌面自动翻译神器
    UE4 粒子特效基础学习 (01-将粒子效果挂载到角色身上)
  • 原文地址:https://blog.csdn.net/LJM51200/article/details/128076234