uniapp实现支付功能

详细参考:
https://gitee.com/copperpeas/uniapp-payment

uniapp-payment
介绍
uniapp支付

微信支付流程
测试接入的是uniapp官方预下单接口

APP应用首先去微信等开发平台申请开通支付,部分支付渠道需要配置支付目录,授权域名,回调函数

预下单返回参考:

"data": {
    "appid": "wx0411fa6a39d61297",
    "noncestr": "Xu70l0bOQSQIDIPH",
    "package": "Sign=WXPay",
    "partnerid": "1230636401",
    "prepayid": "wx271034552844601252843eae1384334800",
    "timestamp": 1569551695,
    "sign": "44B127098800419D542B688054F95A8F"
  },

参考官方微信支付 https://pay.weixin.qq.com/wiki/doc/api/index.html

小程序支付:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1

简单流程: 第一步:调用登录接口,获取到用户的openid等 第二步:Code,价格等发送给后台,后台发送微信生成预支付订单,并且返回订单信息 第三步:小程序拿到预下单订单信息,发起支付,调起支付APP 第四步:后台验证支付结果

小程序第三步调起支付给APP调起支付参数不一样,大体流程是一致的

商户系统和微信支付系统主要交互:

1、小程序内调用登录接口,获取到用户的openid,api参见公共api【小程序登录API】

2、商户server调用支付统一下单,api参见公共api【统一下单API】

3、商户server调用再次签名,api参见公共api【再次签名】

4、商户server接收支付通知,api参见公共api【支付结果通知API】

5、商户server查询支付结果,api参见公共api【查询订单API】

拿到预下单后调用支付

uni.requestPayment({
    timeStamp: paymentData.timeStamp,
    nonceStr: paymentData.nonceStr,
    package: paymentData.package,
    signType: 'MD5',
    paySign: paymentData.paySign,
    success: (res) => {
        uni.showToast({
            title: "感谢您的赞助!"
        })
    },
    fail: (res) => {
        uni.showModal({
            content: "支付失败,原因为: " + res
                .errMsg,
            showCancel: false
        })
    },
    complete: () => {
        this.loading = false;
    }
})

APP支付 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3

简单流程:

第一步:获取支付类型,APPid,支付金额 第二步:发送给后台,后台发送微信生成预支付订单,并且返回订单信息 第三步:拿到预下单订单信息,发起支付,调起支付APP 第四步:后台验证支付结果

商户系统和微信支付系统主要交互说明:

步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。

步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。

步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay

步骤4:商户APP调起微信支付。api参见本章节【app端开发步骤说明】

步骤5:商户后台接收支付通知。api参见【支付结果通知API】

步骤6:商户后台查询支付结果。api参见【查询订单API】

拿到预下单后调用支付

uni.requestPayment({
    provider: e.id,
    orderInfo: orderInfo.data,
    success: (e) => {
        console.log("success", e);
        uni.showToast({
            title: "感谢您的赞助!"
        })
    },
    fail: (e) => {
        console.log("fail", e);
        uni.showModal({
            content: "支付失败,原因为: " + e.errMsg,
            showCancel: false
        })
    },
    complete: () => {
        this.providerList[index].loading = false;
    }
})

微信有预下单,而支付宝不存在

支付宝支付流程
支付宝支付参考 https://docs.open.alipay.com/ 左边支付栏目 支付宝APP支付 https://docs.open.alipay.com/204/105297

简单流程:
第一步:获取支付类型,APPid,支付金额
第二步:发送给后台,后台针对支付宝请求参数说明,组装数据,返回订单信息
第三步:拿到组装单订单信息,发起支付,调起支付APP
第四步:后台验证支付结果

到此这篇关于uniapp实现支付功能的文章就介绍到这了,更多相关uniapp 支付内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • uniapp实现微信公众号支付的方法步骤

    目录 1.申请企业服务号(必须企业认证) 2.获取appid 和秘钥 3.安全域名设置 4.代码实现 1.申请企业服务号(必须企业认证) https://mp.weixin.qq.com 2.获取appid 和秘钥 菜单 开发-基本配置 获取秘钥 .设置ip白名单 3.安全域名设置 进入公众号设置-功能设置配置 4.代码实现 点击请求优先去请求后台订单支付接口数据 将获取到的数据放入以下请求数据里面  callPay: function(response) { if (typeof Weixin

  • uniapp实现支付功能

    详细参考:https://gitee.com/copperpeas/uniapp-payment uniapp-payment介绍uniapp支付 微信支付流程测试接入的是uniapp官方预下单接口 APP应用首先去微信等开发平台申请开通支付,部分支付渠道需要配置支付目录,授权域名,回调函数 预下单返回参考: "data": { "appid": "wx0411fa6a39d61297", "noncestr": "

  • IOS 集成微信支付功能的实现方法

    IOS 集成微信支付功能的实现方法 第一步:集成微信的SDK https://pay.weixin.qq.com/wiki/doc/api/index.html 点击进入 下载对应SDK或示例,最后可以看看示例程序 第二步:在Xcode中填写微信开放平台申请的Appid Xcode>info>URL Types  中新建加入Appid 第三步:在Appdelegate.m 中注册微信支付 和回调 #import "WXApi.h" 添加 代理 WXApiDelegate -

  • Python使用微信SDK实现的微信支付功能示例

    本文实例讲述了Python使用微信SDK实现的微信支付功能.分享给大家供大家参考,具体如下: 最近一段时间一直在搞微信平台开发,v3.37版本微信支付接口变化贼大,所以就看着php的demo移植为Python版,为了保持一致,所以接口方法基本都没有变,这样的好处就是不用写demo了,看着微信官方的demo照葫芦画瓢就可以了. 代码放到github下载地址:https://github.com/Skycrab/wzhifuSDK 还可以点击此处本站下载. 我主要测试了JsApi调用方式,其它的调用

  • JS通过调用微信API实现微信支付功能的方法示例

    本文实例讲述了JS通过调用微信API实现微信支付功能的方法.分享给大家供大家参考,具体如下: 最近在做微信公众号开发,在微信支付上遇到一些问题,困惑了3天,今天终于搞定.期间要感谢一些大神的帮助,趁热下面分享一下我的经验. 在实现微信支付之前,需要到微信开发平台认证,这些认证和配置信息我就不多说了,这里主要从代码层面实现支付. function onBridgeReady(){ WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId&quo

  • Thinkphp整合微信支付功能

    先上效果图:我要告诉你我这一篇文章写的是微信支付之中的(普通商户而非服务商商户的统一下单JSPI)微信支付: 其实自己整合SDK失败了,用了一个博客博主整合的代码,在这里写一下笔记: 前面准备: 1.微信公众号: 独特的appid.appscrect.接口权限之中设置可以获取用户ID信息权限的域名(每个用户对于不同公众都会有一个特有ID,通过这个ID获取用户微信账号基本信息.详情看微信开发者文档).在微信支付按钮出设置微信支付授权目录(写到发起请求的控制器那一层).设置开发者微信账号为测试白名单

  • Android实现微信支付功能

    开发Android APP微信支付功能,需要完成三个步骤:第一步生成预支付订单.第二步生成微信支付参数.第三步调起微信APP支付.除了需要审核通过的APP应用外,还需要获得微信支付接口权限,然后获取对应的商户号.API密钥,这两者缺一不可,并且在APP微信支付中使用 获得商户号.API密钥 在微信开放平台中查看审核通过的APP应用,是否申请支付功能,若已申请,登录微信支付|商户平台:http://pay.weixin.qq.com 查看对应的商户号.API密钥 >申请微信支付接口 >登录商户平

  • 微信小程序 在线支付功能的实现

    微信小程序 在线支付功能 最近需要在微信小程序中用到在线支付功能,于是看了一下官方的文档,发现要在小程序里实现微信支付还是很方便的,如果你以前开发过服务号下的微信支付,那么你会发现其实小程序里的微信支付和服务号里的开发过程如出一辙,下面我就具体说一下小程序里微信支付的开发流程和注意点. 1.开通微信支付和微信商户号 这个过程就和开通服务号的微信支付过程一样,没有什么可以说的. 2.获得用户的openid 首页我们需要在小程序的客户端js中获取当前用户的openid,通过调用wx.login方法可

  • 微信小程序 支付功能开发错误总结

    微信小程序 支付功能开发错误总结 微信小程序支付终于踩完坑了,发现里面坑挺大的,现在发个贴,希望以后入坑的同学可以看一下 : https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=2 业务流程在这里大家看文档的时候可以看到.第一个坑,获取用户的openid,参数一定要拼在url连接上,否则会报{"errcode":40013,"errmsg":"invali

  • 微信小程序 支付功能(前端)的实现

    微信小程序 支付功能(前端)的实现 只提供微信小程序端代码: var app = getApp(); Page({ data: {}, onLoad: function (options) { // 页面初始化 options为页面跳转所带来的参数 var that = this //登陆获取code wx.login({ success: function (res) { console.log(res.code) //获取openid that.getOpenId(res.code) } }

  • Java编程调用微信支付功能的方法详解

    本文实例讲述了Java编程调用微信支付功能的方法.分享给大家供大家参考,具体如下: 微信开发文档地址:https://mp.weixin.qq.com/wiki/home/ 从调用处开始 我的流程: 1.点击"支付"按钮,去后台 --> 2.后台生成支付所需数据返回页面 --> 3.页面点击"确认支付"调用微信支付js.完成支付功能. 支付按钮 <div class="button" id="pay" onc

随机推荐