小程序开发实战案例之二|如何实现小程序支付

这篇具有很好参考价值的文章主要介绍了小程序开发实战案例之二|如何实现小程序支付。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一章讲完如何获取用户信息授权 后,下一步就可以进行小程序支付了。

本期就来介绍下支付宝小程序支付如何实现。

 

PS:接入前的准备工作可以参考:接入准备;接入指南可参考:接入指南

 

获取小程序支付权限

获取权限分为三步:分别是 账号开通 JSAPI 支付账号与小程序账号绑定 以及 小程序绑定 JSAPI 产品

 

账号开通 JSAPI 支付

需要用收款主体账号去签约,账号要求必须是企业或者是个体工商户。

可以直接通过 👉 签约直通车 进行开通

 

账号与小程序账号绑定

开通成功之后,要去 小程序 AppID 管理 页面关联小程序,将开发的小程序关联到账号下。

注意:哪个小程序开发就绑哪个小程序,不绑的话后面无法支付成功。

 

小程序绑定JSAPI产品

要到小程序详情界面的【产品绑定】去绑 JSAPI 支付产品。

可以参考 👉 [应用如何实现产品绑定] 进行操作:

 

签约过程中可能遇到的问题也给大家列在这里了,大家可以参考下~:

  • [小程序功能列表中没有支付能力]
  • [个人小程序是否支持支付功能]
  • [小程序支付签约要求]

 

小贴士 📖账号不符合要求的也可以通过沙箱环境去测试下,可以参考之前写的这篇~

支付宝沙箱超详细教程+避雷经验,看这篇就够了

 

支付调用整体流程

获取到权限之后我们就可以进行接口调用了,主要步骤分为 :

  • (前端+后端)获取用户的授权信息
  • (前端)将订单信息传到服务端
  • (后端)服务端创建支付单
  • (前端)唤起支付

 

第一步、获取用户的授权信息

目的:这一步是为了能够获取到用户的 user_id(openid)

注意:user_id 和 openid 都是可以的,新老账号可能获取到的信息不一样,我之前老的账号获取到的是user_id,新申请的账号获取到的是 openid,根据大家的自己账号实际情况来看~

对此内容感兴趣的小伙伴也可以查看 👉[openid 和 userid 的区别]

方法一:通过用户授权获取(用户端有弹窗)

大家可以参考我之前写的获取用户信息的 my.getAuthCode 步骤,下面简单概括下就是:

  • 前端通过 my.getAuthCode 方法获取到用户的授权 authCode
  • authCode 传到后端通过 alipay.system.oauth.token 接口获取 access_token 参数
  • 后端用 access_token 参数传入 alipay.user.info.share 接口中获取到 user_id(openid)

方法二:通过静默授权获取(用户端无弹窗)

静默授权与用户授权同样是使用的 my.getAuthCode 方法,但是 scopes 传参不同,获取到的信息 只有 uid(openid),调用步骤为:

  • 前端通过 my.getAuthCode 方法(scopes 入参 auth_base)获取到用户的授权 authCode
  • authCode 传到后端通过 alipay.system.oauth.token 接口到 user_id(openid)

代码示例

Page({
  getAuthCode() {
    my.getAuthCode({
      scopes: 'auth_base',//静默授权
      success: res => {
        const authCode = res.authCode;
      fail: err => {
        console.log('my.getAuthCode 调用失败', err)
      }
    });
  }
})

 

授权这块的问题在上一篇

  • [小程序静默授权是否可以拿到用户头像昵称]
  • [支付宝小程序可以在首页获取到user_id吗]

 

第二步、将订单信息传到服务端

用户信息获取到之后,我们就可以将订单信息和用户信息一起再打包,通过 my.request 传回服务端

//.js页面
Page({
  pay(){
    my.request({
      url: '商家服务端地址',//须加httpRequest域白名单
      method: 'POST',
      data: {//data里的key、value是开发者自定义的
        from: '支付宝',
        order: 'XXXXX',//订单信息
      },
      dataType: 'json',
      success: function(res) {
        my.alert({content: 'success'});
      },
      fail: function(res) {
        my.alert({content: 'fail'});
      },
      complete: function(res) {
        my.hideLoading();
        my.alert({content: 'complete'});
      }
    });
  }
});

 

如果是在本地测试的话记得在 IDE 的【详情】里面把下面这两个校验勾选上,不然IDE会去校验域名的合法性的。

 

这边给大家汇总一些 my.request 调用过程中的常见问题:

  • [my.request API 可以使用 ip 地址访问吗]
  • [my.request 的 url 参数的域名是否需要配置白名单]
  • [my.request 默认请求头]
  • [my.request 默认请求超时是多久]

 

第三步、服务端创建支付单

目的:获取 trade_no(支付宝交易号)

接收到前端传过来的订单信息之后,需要将信息传入 alipay.trade.create 接口中获取 trade_no。

服务端的代码大家可以直接参考:👉 [alipay.trade.create 代码示例]

 

📌下面简单列一下后端几个必传的参数:

  • out_trade_no:商户端自定义订单号,需保证在商户端的唯一性。
  • total_amount:订单金额,单位元,精确到两位小数。
  • subject:订单标题,会在账单界面展示。
  • product_code:产品码,固定值 JSAPI_PAY。
  • op_app_id:传小程序appid。

 

如果获取到的是user_id,传入

  • buyer_id:传入之前获取到的user_id。

 

如果获取到的是openid,传入

  • buyer_open_id:传入之前获取到的openid。

 

后端接口调用成功之后就可以获取到 trade_no 参数了:

 

服务端接口报错的常见问题如下:

  • [小程序支付报错:ACCESS_FORBIDDEN]
  • [小程序支付报错:本笔交易不支持在本小程序内支付请联系商户完成小程序 APPID 的绑定后再重新发起支付]
  • [ACQ.UNBOUND_APPLICATION(指定小程序主体未完成关联绑定)]
  • [小程序支付报错:支付失败,商家支付唤起方式不正确,请联系商家解决]

 

第四步、唤起支付

前端获取到 trade_no 之后,我们就可以通过 my.tradePay(发起支付) 方法在小程序上唤起收银台了。

// .js
my.tradePay({
  // 传入支付宝交易号trade_no
  tradeNO: '201711152100110410533667792',
  success: (res) => {
    my.alert({
      content: JSON.stringify(res),
    });
  },
  fail: (res) => {
    my.alert({
      content: JSON.stringify(res),
    });
  }
});

 

如果是 IDE 上测试的话,需要用支付宝扫码进行支付:

 

真机测试可以直接唤起收银台进行支付:

 

大家也可以看下支付过程中可能会遇到的一些问题~:

  • [小程序前端跳转是否可以判断支付成功]
  • [小程序开发者工具是否在支持测试小程序支付功能]
  • [小程序支付如何设置同步]
  • [小程序支付报错:当面付等产品不支持在小程序场景内使用,请联系商户更换收单产品后再重新发起支付]

 

以上就是小程序支付的所有内容了,希望能够帮助到你*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

 文章来源地址https://www.toymoban.com/news/detail-748834.html

到了这里,关于小程序开发实战案例之二|如何实现小程序支付的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序开发实战11_1 微信支付下单

    微信支付存在多个业务流程,包括微信支付流程、退款流程等。本章节主要介绍微信的支付下单流程,图12-1是微信支付流程的交互图: 重点环节说明 步骤1:小程序端用户向商户服务器发起支付请求,重点是提供用户信息、商品信息、支付金额等参数。 步骤3:商户服务器调

    2024年02月09日
    浏览(47)
  • 微信小程序开发实战11_4 微信支付退款流程

    当交易发生之后一年内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付金额退还给买家,微信支付将收到退款请求并且验证成功之后,将支付款按原路退还至买家账号上。使用该接口时的一些注意事项如下: 交易时间超过一年的订单无法提交退款。 微

    2024年02月11日
    浏览(43)
  • 支付宝小程序开发踩坑笔记(支付宝、学习强国小程序)

    1、接口请求安卓端回调 success ,IOS 端回调 fail 原因: dataType 设置不对,默认是 json 格式,对返回数据会进行 json 解析,如果解析失败,就会回调 fail 。加密传输一般是 text 格式。 2、input 禁止输入空格 input 、 textarea 组件默认不会双向绑定,需要借助 setData 进行中转。 如果

    2024年01月25日
    浏览(43)
  • 微信小程序开发教学系列(12)- 实战项目案例

    本章将通过一个简单的实战项目案例来帮助读者巩固之前学习到的知识。我们将搭建一个名为“ToDoList”的微信小程序,实现一个简单的任务清单功能。 ToDoList是一个用于记录和管理任务的小程序。用户可以添加、编辑、完成和删除任务,以及查看任务清单。 功能需求 显示任

    2024年02月11日
    浏览(59)
  • 【小程序】零基础微信小程序开发+实战项目

    如何拥有一款属于你自己的小程序,惊喜就在下面! 目前,小程序行业已经成为互联网营销的热门黑马之一,依托于各大流量平台,小程序行业具有天然的用户基础和得天独厚的资源优势,凭借其方便快捷的操作以及简单通俗的模式,仅短短一年的时间,就迎来了爆发性的增

    2024年02月11日
    浏览(50)
  • 微信小程序实战:智能水印相机小程序开发附源码

    一款智能水印相机,拍照自动添加时间、地点、经纬度等水印文字,可用于工作考勤、学习打卡、工作取证等,支持自定义内容以及给现有照片添加水印。无需安装,无需注册,即开即用。 主要是通过canvas给图片上添加上时间水印地点信息。首先通过官方API(chooseLocation)获取

    2024年02月09日
    浏览(67)
  • 微信小程序开发实战9_2 小程序页面转发

    小程序页面转发是小程序分享的一个重要方式,在设计小程序应用时就需要考虑那些页面需要实现转发功能,以及页面的转发参数。本节介绍如何进行小程序页面的分享,并介绍如何获取小程序卡片的分享票据。 9.2.1小程序页面转发 微信小程序提供了页面的转发的功能,用户

    2024年02月16日
    浏览(44)
  • 微信小程序开发15 项目实战 基于云开发开发一个在线商城小程序

    在学完前 4 个模块之后,我相信你会对微信小程序的开发有一个全新的认识。在前面 3 个模块中,俊鹏分别从微信小程序内在的运行原理,小程序工程化开发以及具体实践层面,深度讲解了微信小程序开发所必要的知识和能力。而第 4 个模块里,我带你认识了微信小程序的云

    2024年02月11日
    浏览(57)
  • 微信小程序开发入门与实战 ①(初始微信小程序)

    @作者 : SYFStrive   @博客首页 : HomePage 📜: 微信小程序 📌: 个人社区(欢迎大佬们加入) 👉: 社区链接🔗 📌: 觉得文章不错可以点点关注 👉: 微信小程序专栏🔗 💃: 感谢支持,学累了可以先看小段由小胖给大家带来的街舞😀 🔗: 阅读文章 👉 微信小程序 (🔥)

    2024年02月09日
    浏览(111)
  • 钉钉开放平台-小程序开发实战(钉钉小程序客户端)

    钉钉(Ding Talk)是阿里巴巴集团打造的企业级智能移动办公平台,是数字经济时代的企业组织协同办公和应用开发平台。 钉钉开放平台具有强大丰富的原生能力,目前已经开放超过2000个API接口,同时为开发者和服务商提供专业的技术培训体系,分享最新功能和开放能力,提

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包