# 多商户(非服务商版)

什么是多商户?

当你的系统是由N个客户端组成(如N个小程序组成,类似saas系统),同时希望每个小程序的收款账户各自独立(即A小程序收款到A公司,B小程序收款到B公司)此时需要多商户的支持。

或者是

当你的系统是1个类似淘宝、京东的平台,其他商户入驻你的平台,你希望每个入驻的商户的收款账户各自独立(即A商户收款到A公司,B商户收款到B公司)此时需要多商户的支持。

vk-uni-pay 中,支持多商户(非服务商版),即就算你不是微信支付服务商,你也能做多商户收款了。

如何使用?

你只需要将原本配置在 common/uni-config-center/uni-pay/config.js 中的支付配置改成存入数据库表 vk-pay-config,同时在 vkPay.createPayment 接口中多传一个参数 pid 即可

传送门 - 支付配置表 (opens new window)

示例代码

const vkPay = require("vk-uni-pay");

exports.main = async (event, context) => {
  
  let res = await vkPay.createPayment({
    context,
    provider: "alipay",
    data: {
      pid: "001", // 使用_id为001的商户配置
      openid: "用户openid,小程序支付时必传",
      out_trade_no: "必填项,商户支付订单号,需自行保证全局唯一",
      total_fee: 1, // 订单金额(单位分 100 = 1元)
      subject: "订单标题",
      type: "订单类型如recharge(充值订单)、goods(商品订单)、vip(会员订单)等。", // 此处type的值如果是goods,则回调时就会执行 pay-notify 目录下的 goods.js 内的逻辑
      // 自定义回调数据,能在回调事件获取到以下数据,回调函数中通过 let { out_trade_no, user_id, recharge_balance } = data;方式获取(不可与data内的一级属性名重复)
      custom:{
        
      },
      // 微信、支付宝文档上的其他选填参数(other内的参数会原样发送给微信、支付宝)
      other:{
      
      }
    }
  });

  return res;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27