开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1541|回复: 1
收起左侧

[技术分享] uniapp 使用zfb支fu【zfb小程序版】

[复制链接]
结帖率:100% (4/4)
发表于 2021-9-29 10:09:49 | 显示全部楼层 |阅读模式   河北省石家庄市
分享一下uniapp 使用zfb支fu【zfb小程序版】
前提:收款的zfb商户:appId、mchId、应用公钥/秘钥、zfb公钥
流程图:


具体关键实现:
一、初始化:
1.0 获取authCode
由于小程序支fu是需要user_id,所以需要授权获取user_id才可以完成支fu。
uniapp小程序代码:
  1. my.getAuthCode({
  2.               scopes: 'auth_user',
  3.               success: (res) => {
  4.                   this.authCode = res.authCode
  5.                   console.log(this.authCode)
  6.                   this.oauthToken();
  7.               },
  8.             });
复制代码
1.1 换取授权访问令牌
请求后端服务,通过后端服务换取token
服务端代码(nodeJS):
  1. //使用了alipay-sdk
  2. const result = await alipaySdk.exec('alipay.system.oauth.token', {
  3.         grantType: 'authorization_code',
  4.         code: authCode
  5.     }).catch(error => {return error});
  6. //返回user_id、access_token
复制代码
二、支fu流程:
2.0 点击支fu,请求后端生成交易单
alipay.trade.pay(统一收单交易支fu接口)
服务端代码(nodeJS):
  1. const result = await alipaySdk.exec('alipay.trade.create', {
  2.         notifyUrl: config.TRADE_CREATE_NOTIFY_URL,
  3.         bizContent:{
  4.             out_trade_no: outTradeNo,
  5.             total_amount: totalAmount,
  6.             buyer_id:userId,
  7.             subject:subject
  8.         }
  9.     }).catch(error => {return error});
  10. //返回tradeNo、outTradeNo
复制代码
2.1 使用交易单号(tradeNo)唤起支fu
  1. my.tradePay({
  2.     tradeNO: tradeNo,  
  3.     success: function(res) {
  4.         console.log("付款成功,严谨一点应该需要请求后端服务再次确认:",res)
  5.     },
  6.     fail: function(res) {  
  7.         console.log("付款失败,严谨一点应该需要请求后端服务再次确认:",res)
  8.     },
  9. });
复制代码
三、支fu结果:
3.0 :支fu成功后zfb服务器会同步主动调用回调url,这里可以同步更新订单的支fu状态。
3.1:在2.1中“my.tradePay”返回的是唤起结果,不是支fu结果,支fu结果还是需要请求后端服务确认(zfb同步回调支fu结果)。
基本就是这样完成了小程序的支fu功能。
除了uniapp开发外,还需要一个可以访问的后端服务来做交互和加解密校验等功能。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2021-9-29 20:28:45 | 显示全部楼层   河南省三门峡市
怎么联系你,  定制zfb  相关软件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表