1.0.75 • Published 2 years ago

fs-payment v1.0.75

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

fs-payment

支付组件

使用前

添加服务器域名

  1. 小程序账号登录微信公众平台
  2. 开发 —> 开发管理 —> 开发设置 —> 服务器域名
  3. request合法域名 中增加如下配置

https://prepaygw.51fubei.com
https://fshows-ecs-pro.cn-hangzhou.log.aliyuncs.com

引入付呗收银台插件

一. 申请付呗收银台插件使用权限

  1. 小程序账号登录微信公众平台
  2. 设置 —> 第三方设置 -> 插件管理 —> 添加插件,进入添加插件操作页面
  3. 搜索插件名 付呗收银台 并添加, 提交审核待通过

二. 在小程序 app.json 文件中加入配置

// app.json
{
  "plugins": {
    "fs-prepay-card-plugin": {
      "version": "0.0.2",
      "provider": "wx457df64656d1d334"
    }
  }
}

安装

通过 npm 安装

小程序支持使用 npm 安装第三方包,详见 npm 支持

# 通过 npm 安装
npm i fs-payment -S

构建

  1. 小程序开发者工具 -> 详情(工具右上角) -> 本地设置 -> 使用 npm 模块
  2. 小程序开发者工具 -> 工具 -> 构建 npm
  3. 构建成功后小程序代码包中将产出 "miniprogram_npm" 文件夹,确保文件夹内有fs-payment文件夹。

使用组件

以全屏页面版组件为例,只需要在 json 文件中引入组件即可

{
  "usingComponents": {
    "fs-pay-page": "/miniprogram_npm/fs-payment/fsPayPage/index"
  }
}

代码演示

基础用法

需要传入一个payInfo的对象,对象属性见文档下方表格。

<fs-pay-page
  wx:if="{{showPayPage}}"
  payInfo="{{payInfo}}"
  customNavigate="{{true}}"
  bind:paysuccess="handlePaySuccess"
  bind:payfailed="handlePayFailed"
  bind:close="handlePayPageClose"
/>
  • 如果要在同一页面展示组件,用wx:if控制组件的显示隐藏;如果新跳页面展示组件,则不需要wx:if
  • 如果您使用组件的页面是自定义导航栏模式,那么可以设置customNavigatetrue,打开组件内部的自定义导航栏。

API

Props

参数说明类型默认值
payInfo支付组件入参对象Object{}
customNavigate是否使用自定义导航栏booleanfalse
zIndex组件层级number999

Events

事件名说明参数
bind:paysuccess支付成功时触发event.detail
bind:payfailed支付失败时触发event.detail
bind:close点击组件的自定义导航栏的关闭按钮,关闭组件时触发;前置接口错误,需要销毁组件时触发;

paysuccesse.detail

键名说明类型是否必填备注
payStatus支付状态numberY1-已付款
merchantOrderSn外部订单号stringN-
orderSn付呗交易订单号stringN-
payplugOrderSn收银组件订单号stringN-

payfailede.detail

键名说明类型是否必填备注
errorCode错误状态码numberN-
errorMsg错误消息stringN-
payStatus支付状态numberN2-已取消 4-已关闭 5-撤销中 6-已撤销 7-撤销失败
merchantOrderSn外部订单号stringN-
orderSn付呗交易订单号stringN-
payplugOrderSn收银组件订单号stringN-

payInfo

API中的payInfo为一个对象,有以下key

键名说明类型默认值是否必传(Y/N)
orderPrice支付金额string-Y
merchantId商户idstring-Y
merchantName商户名称string-N
orgId广场idstring-Y
openId用户openidstring-Y
unionId用户unionidstring-Y
phone用户手机号(加密后的)string-Y
merchantOrderSn订单idstring-Y
platformType平台类型number1 - 万达Y
storeId门店idstring-N
scene用户支付场景 'APPLET_CONSUME_SCENE'-正常场景 'BUY_PRE_PAY_CARD_SCENE'-购卡场景 'PREPAY_CARD_CONSUME_SCENE'-只支持预付费卡支付场景stringAPPLET_CONSUME_SCENEN
goodsTag订单优惠标记,代金券或立减优惠功能的参数(使用单品券时必传)string-N
detail订单包含的商品信息,Json格式。当当微信支付或者支付宝支付时时可选填此字段。对于使用单品优惠的商户,该字段必须按照规范上传,详见“单品优惠参数说明string-N
couponList优惠券列表(对象数组),券信息见下面coupon表Array-N
orderTimeoutExpress订单支付剩余时间,单位秒number15 * 60,默认15分钟N
royalty分账自定义打标参数;0-不分帐 1-分帐number0N
payplugAttach扩展参数string(1024)-N
payplugCallbackUrl回调地址string-N
appId小程序id 注意:如果对接插件组件,这个值不能传;string-N

支付场景: 万达预付费卡购买场景:WANDA_PREPAY_CARD_BUY_SCENE 万达预付费卡消费场景:WANDA_PREPAY_CARD_CONSUME_SCENE 万达微信支付场景:WANDA_WECHAT_CONSUME_SCENE 万达支付宝支付场景:WANDA_ALIPAY_CONSUME_SCENE 万达全类型支付场景:WANDA_APPLET_CONSUME_SCENE 付呗微信支付场景:FUBEI_WECHAT_CONSUME_SCENE 付呗支付宝支付场景:FUBEI_ALIPAY_CONSUME_SCENE

coupon

键名说明类型默认值是否必传(Y/N)
couponId卡券IDstring-Y
couponName卡券名称string-Y
couponQuantity卡券数量string-Y
couponPrice卡券单价:单位为分number-Y
couponCode卡券的券码string-Y
couponSubsidyDetail卡券补贴详情 1、使用卡券时必传:JSON格式,补贴的5个组成部分缺一不可 2、补贴部分金额总合需要与卡券面额相等string-Y

couponSubsidyDetail

是list形式

参数说明类型默认值是否必传(Y/N)
subsidyRole卡券补贴角色:传入角色名称即可string-Y
subsidyType卡券补贴类型:1-顾客实际支付 2-商家补贴 3-机构补贴(万达) 4-银行补贴 5-其他number-Y
subsidyPrice卡券补贴金额,单位为分number-Y

有效数据示例

[
  {
    "subsidyRole": "顾客支付",
    "subsidyType": 1,
    "subsidyPrice": 70000
  },
  {
    "subsidyRole": "商家XX",
    "subsidyType": 2,
    "subsidyPrice": 10000
  },
  {
    "subsidyRole": "万达xxx广场",
    "subsidyType": 3,
    "subsidyPrice": 10000
  },
  {
    "subsidyRole": "建设银行",
    "subsidyType": 4,
    "subsidyPrice": 10000
  },
  {
    "subsidyRole": "其他",
    "subsidyType": 5,
    "subsidyPrice": 10000
  }
]

空数据示例

[
  {
    "subsidyRole": "顾客支付",
    "subsidyType": 1,
    "subsidyPrice": 90000
  },
  {
    "subsidyRole": "商家",
    "subsidyType": 2,
    "subsidyPrice": 10000
  },
  {
    "subsidyRole": "",
    "subsidyType": 3,
    "subsidyPrice": 0
  },
  {
    "subsidyRole": "",
    "subsidyType": 4,
    "subsidyPrice": 0
  },
  {
    "subsidyRole": "其他",
    "subsidyType": 5,
    "subsidyPrice": 0
  }
]

嵌入式支付组件

{
  "usingComponents": {
    "fs-pay-list": "/miniprogram_npm/fs-payment/fsPayList/index"
  }
}
<fs-pay-list
  id="fsPayment"
  payInfo="{{payInfo}}"
  bind:selectcard="handleSelectCard"
  bind:paysuccess="handlePaySuccess"
  bind:payfailed="handlePayFailed"/>
// 确认支付
handlePay () {
  const fsPayment = this.selectComponent('#fsPayment')
  fsPayment.confirmPay() // 子组件的方法
}

组件外部调组件内部confirmPay方法,唤起支付

事件名说明参数
confirmPay--

Props

参数说明类型默认值
payInfo支付组件入参对象Object{}

Events

事件名说明参数
bind:paysuccess支付成功时触发e.detail
bind:payfailed支付失败时触发e.detail
bind:selectcard确认选择预付卡后触发e.detail

paysuccesse.detail

键名说明类型是否必填备注
payStatus支付状态numberY1-已付款
merchantOrderSn外部订单号stringN-
orderSn付呗交易订单号stringN-
payplugOrderSn收银组件订单号stringN-

payfailede.detail

键名说明类型是否必填备注
errorCode错误状态码numberN-
errorMsg错误消息stringN-
payStatus支付状态numberN2-已取消 4-已关闭 5-撤销中 6-已撤销 7-撤销失败
merchantOrderSn外部订单号stringN-
orderSn付呗交易订单号stringN-
payplugOrderSn收银组件订单号stringN-

selectcarde.detail

键名说明类型是否必填备注
cardNo卡号stringN-
balance余额numberN-
cardType卡类型 2-线上卡 3-线下卡numberN-

定制主题

定制全局主题样式

在 app.wxss 中,写入 CSS 变量,即可对全局生效

page {
  --button-border-radius: 10px;
  --button-default-background-color: #f2f3f5;
  --button-default-color: #f2f3f5;
  --button-default-border-color: #f2f3f5;
}
1.0.65-beta

2 years ago

1.0.68-beta

2 years ago

1.0.64

2 years ago

1.0.63

2 years ago

1.0.70-beta

2 years ago

1.0.72-beta

2 years ago

1.0.73

2 years ago

1.0.75

2 years ago

1.0.74

2 years ago

1.0.69-beta

2 years ago

1.0.71-beta

2 years ago

1.0.67-beta

2 years ago

1.0.66-beta

2 years ago

1.0.19

2 years ago

1.0.57-beta

2 years ago

1.0.62

2 years ago

1.0.61

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.26

2 years ago

1.0.25

2 years ago

1.0.48-beta

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.29

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.37

2 years ago

1.0.36

2 years ago

1.0.35

2 years ago

1.0.34

2 years ago

1.0.39

2 years ago

1.0.38

2 years ago

1.0.47-beta

2 years ago

1.0.40

2 years ago

1.0.44

2 years ago

1.0.43

2 years ago

1.0.42

2 years ago

1.0.41

2 years ago

1.0.46

2 years ago

1.0.45-beta

2 years ago

1.0.49-beta

2 years ago

1.0.60-beta

2 years ago

1.0.51

2 years ago

1.0.50

2 years ago

1.0.55

2 years ago

1.0.54

2 years ago

1.0.53

2 years ago

1.0.52

2 years ago

1.0.59

2 years ago

1.0.58

2 years ago

1.0.56

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago