跳转至内容
  • 斗拱开发者站点
  • 版块
  • 0 未读 0
  • 最新
  • 热门
  • 用户
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

斗拱开发者论坛

其宝undefined

其宝

@其宝
administrators
关于
帖子
10
主题
10
分享
0
群组
2
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • 汇付支付斗拱 C# 语言 SDK(bspay-csharp-sdk)
    其宝undefined 其宝

    C# SDK 简介

    为了提高客户接入的便捷性,本系统提供 SDK 方式接入,使用本 SDK 将极大的简化开发者的工作,开发者将无需考虑通信、签名、验签等,只需要关注业务参数的输入。
    

    SDK 项目结构说明

    • BasePaySdk -- SDK核心包, 包含通信, 加解签, 接口参数对象等
    • BasePayDemo -- 接口调用/参数赋值演示demo
    • lib -- 第三方引用

    SDK 接入说明

    以下两种方式任选其一

    1. 直接在项目.csproj文件中引用(version 版本建议使用当前最新版)
        <ItemGroup>
          <PackageReference Include="DG-CSHARP-SDK" Version="x.x.x" />
        </ItemGroup>
    

    1. 直接下载源码文件, 将BasePaySdk(SDK核心包)源码放入项目中

    SDK 使用说明

    接口命名直接根据接口URL来命名, 方便用户使用, 需要使用某接口时, 可直接使用接口中文名, 或接口URL(驼峰格式)进行搜索, 找到对应的request, demo等
    

    1. 配置初始化
    • 初始化为全局配置(多商户模式下, 可初始化多份, 参考demo中方法)
        InitMerConfig.init();
    

    1. 组装请求参数
    • 为了接口使用更加方便, 我们将参数粗分为必填/非必填, 必填直接放在类中, 非必填放在extendInfos字段中
        // 2.组装请求参数
        V2MerchantBasicdataQueryRequest request = new V2MerchantBasicdataQueryRequest();
        // 请求流水号
        request.setReqSeqId(DateTime.Now.ToString("yyy-MM-dd HH.mm.ss.fff"));
        // 请求日期
        request.setReqDate(DateTime.Now.ToString("yyyyMMdd"));
        // 汇付客户Id
        request.setHuifuId("6666000108854952");
    
        // 设置非必填字段
        Dictionary<string, object> extendInfoMap = getExtendInfos();
        request.setExtendInfo(extendInfoMap);
    

    1. 发起API调用
        // 3. 发起API调用
        Dictionary<string, Object> result = null;
        result = BasePayClient.postRequest(request, null);
    

    开源技术 斗拱sdk csharp

  • 汇付支付斗拱收银台 JavaScript 语言 SDK(dg-js-sdk)
    其宝undefined 其宝

    收银台 js sdk

    Repository:https://github.com/huifurepo/dg-js-sdk

    简介

    收银台 SDK,是基于支付托管模式,商户需开通支付托管功能。SDK 支持支付宝、微信、云闪付等多种支付方式。同时能根据需求高定制化的配置页面样式。封装收银台页面以及独立支付按钮等功能组件,通过 npm 包的形式分发和引入,帮助商户无感对接支付。降低商户接入支付的复杂性。

    改变原有支付托管跳转页面的接入方式,只提供支付功能的组件或按钮,允许商户侧自己定制实现收银台页面。实现页面高定制化的需求。

    开发者通过创建 'checkout' element 创建页面组件,然后将其渲染到页面上,同时传入 callback 方法用来接收处理事件结果。

    • 默认包含支付宝,微信,云闪付三种支付方式。
    • 根据环境展示支付方式,支付宝内只展示支付宝,微信内只展示微信,云闪付只展示云闪付。系统默认浏览器展示支付宝与微信。

    H5页面效果图

    PC页面效果图

    流程说明

    • 如果是 ATU App 内浏览器访问页面。
      • 如果是微信 app,跳转授权页面,获取 authcode 下单。发起支付。(微信内走公众号支付流程,结果页)
      • 如果是支付宝 app,下单 A_native 正扫 方式,拉起,支付。
      • 如果是云闪付,跳转授权页面,获取 authcode,点击支付按钮,下单,发起支付。
    • 如果是手机系统自带浏览器,
      • 选择微信支付,跳转微信托管小程序,完成支付。H5 页面轮询获取支付结果,返回支付结果给调用方。
      • 选择支付宝支付,跳转支付宝,下单 A_native 正扫 方式,拉起,支付。H5 页面轮询获取支付结果,返回支付结果给调用方。
      • 不支持云闪付。
    • 如果是PC 端浏览器,展示支付方式对应的支付二维码,用户扫描二维码完成支付。支付逻辑同手机端相同。

    接入说明

    服务端对接

    支付sdk是基于支付托管模式的,商户需开通支付托管功能,并且商户服务端需对接预下单接口,并提供前端接口给前端调用。 接口文档参见 预下单接口

    (注意:H5/PC页面预下单选择要根据环境判断,如果是ATU app内预下单pre_order_type = 1; 如果是在商户自己App,或者是系统默认浏览器里面是通过跳转小程序的方式完成支付的,所以如果在非ATU环境下,选择微信的话 pre_order_type=3,选支付宝 预下单 pre_order_type= 2)

    前端对接准备

    1,远程下载并安装sdk

    npm install dg-element 
    

    或下载sdk 包 1.0.0

    2,引入sdk

    import { HFPay } from 'dg-js-sdk';
    

    3,判断环境

    如渲染单一支付按钮组件,需先判断当前环境是否支持

    /**
     * @Description: 判断是否是微信浏览器
     */
    function isWXJS() {
      return navigator && navigator.userAgent.toLowerCase().indexOf('micromessenger') > 0;
    }
    
    /**
     * @Description: 判断是否是支付宝浏览器
     */
    function isAliPayJS() {
      return navigator && navigator.userAgent.toLowerCase().indexOf('alipayclient') > 0;
    }
    
    /**
     * @Description: 判断是否是银联浏览器
     */
    function isUnionPayJS() {
      return navigator && navigator.userAgent.toLowerCase().indexOf('unionpay') > 0;
    }
    
    /**
     * @Description: 判断是否是web环境
     */
    function isWebEnv() {
      return !/Android|webOS|iPhone|iPod|Phone|Mobile|OpenHarmony|BlackBerry/i.test(navigator.userAgent);
    }
    
    

    4,定义预下单方法

    通过服务端接口获取预下单号,定义方法,供后续传入sdk,sdk 内会调用该方法获取预下单号。 以下为代码示例,具体调用以商户侧为准,但返回数据格式需与示例一致。需包含 pre_order_id、huifu_id、req_seq_id、req_date

    const createPreOrder = async function (selectedType) {
      // 增加loading 弹框
      document.getElementById('loadingMask').classList.remove('hide');
      const requestBody = {
        huifu_id: '6666000109133323',
        req_seq_id: Date.now().toString(),
        trans_amt: document.getElementById('element-amount').value,
        time_expire: '300',
        pre_order_type: '1',
        goods_desc: '无线鼠标静音无声笔记本台式电脑',
        hosting_data: {
          project_title: 'DEMO演示-无模板',
          project_id: 'PROJECTID2023092518673961',
          callback_url: 'http://paas.huifutest.com/checkout/demo/h5/jsSDKDemo.html',
        }
      };
    
      if (isAliPayJS() || isWXJS() || isUnionPayJS() ) {
    
        requestBody.pre_order_type = '1';
      } else if (selectedType === 'alipay') {
        requestBody.pre_order_type = '2';
        requestBody.app_data = {
          app_schema: 'app_schema',
        }
      } else if (selectedType === 'wechatpay') {
        requestBody.pre_order_type = '3';
        requestBody.miniapp_data = {
          need_scheme: 'Y',
        }
      }
    
      try {
        const response = await fetch(`https://checkoutbff.cloudpnr.com/v1/payment/pre/create`, {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json', // 建議加上 Header
          },
          body: JSON.stringify(requestBody),
        });
    
        const data = await response.json();
        console.log('預下单结果:', data);
        // 隐藏loading 弹框
        document.getElementById('loadingMask').classList.add('hide');
        loadingFlag = false;
        return {
          pre_order_id: data.json_data.pre_order_id,
          req_seq_id: data.json_data.req_seq_id,
          huifu_id: data.json_data.huifu_id,
          req_date: data.json_data.req_date,
        };
      } catch (err) {
        // 隐藏loading 弹框
        $('#loadingMask').hide();
        console.error('預下單失敗:', err);
        // 將錯誤向上拋出,讓調用者也能處理
        throw err;
      }
    }   
    

    5,创建收银台 element,将组件渲染到页面上

    • 方法调用
    const { error, hfPay } = await HFPay();
    hfPay.component(elementName,{
            createPreOrder: createPreOrder,
            callback:callback
        });
    
    • 参数说明 |参数 | 类型 |说明 | |:--------|:------------|:-------------| | elementName | 字符串 | element 类型,checkout| | createPreOrder | function | 创建预下单的方法,需返回预下单号,具体参见调用示例| | callback | function | 回调方法,一般处理报错信息|

    调用示例:

    function callback(result) {
        console.log('callback  返回' + JSON.stringify(result));
        // {"type":"payment_data","data":{"transStat":"1","huifuId":"6666000109133323","reqSeqId":"1753150933645","reqDate":"20250722","respDesc":"操作成功"}}
    }
    let element = hfPay.component('checkout', 
        {
            createPreOrder: createPreOrder,
            callback:callback
        });
    if (element) {
        element.mount('#element-container');
    } else {
       	console.log(`App: SDK 未能創建組件`);
    }	
    

    6,创建单支付按钮 element,将组件渲染到页面上

    除了创建整个checkout组件,还可以创建单支付按钮组件,支持支付宝、微信、云闪付三种支付方式

    • 方法调用
    const { error, hfPay } = await HFPay();
    hfPay.component(type, {
            createPreOrder: createPreOrder,
            callback:callback
        });
    
    • 参数说明 |参数 | 类型 |说明 | |:--------|:------------|:-------------| | elementypetName | 字符串 | 单支付按钮类型,枚举值,alipay、wechatpay、unionpay| | createPreOrder | function | 创建预下单的方法,需返回预下单号,具体参见调用示例| | callback | function | 回调方法,一般处理报错信息|

    7,处理回调

    { 
      "type":"payment_data",
      "data":{
        "transStat":"1",
        "huifuId":"6666000109133323",
        "reqSeqId":"1753150933645",
        "reqDate":"20250722",
        "respDesc":"操作成功"
      }
    }   
    

    常见问题

    Q1:如何给支付按钮定制样式

    A:可直接通过按钮class name 进行css 样式定制

    Q2:微信支付宝是怎么实现支付的

    A:如果在ATU 环境中,点击支付,页面会跳转到支付页面。如果在非ATU 环境中,点击支付,会拉起小程序进行后续支付操作。

    SDK版本记录

    版本

    日期

    版本说明

    v1.0.0

    2025/8/28

    初始版本,支持微信支付宝云闪付支付

    开源技术 斗拱sdk javascript

  • 汇付支付斗拱线下账单支付 vue 组件库(dg-bill-plugin)
    其宝undefined 其宝

    线下账单支付 vue 组件库

    Repository:https://github.com/huifurepo/dg-bill-plugin

    简介

    解决重复造轮子的问题:提供一套专为手机端账单支付场景打造的UI 组件库,帮助开发者快速搭建账单页面,提升用户体验,无需担心适配,简化逻辑管理

    组件列表

    • 账单金额组件
    • 账单支付按钮组件
    • 账单 Banner 组件
    • 账单公告组件
    • 账单详情文本组件
    • 账单明细选择组件
    • 账单分割占位组件

    组件模拟器

    查看演示

    接入说明

    安装

    npm i @chinapnr/dg-bill-plugin
    

    配置 easycom

    打开 /src/pages.json 进行配置

      "easycom": {
        "autoscan": false,
        "custom": {
          "mx-(.*)": "@chinapnr/dg-bill-plugin/lib/$1/index.vue"
        }
      }
    

    在 /src/App.vue 中添加组件样式

    @import '@chinapnr/dg-bill-plugin/lib/styles/matrix.scss';
    

    在 /src/pages 文件夹内的任意 vue 文件中,直接使用组件库标签

    <template>
      <mx-bill-notice>缴费公告</mx-bill-notice>
    </template>
    

    开源技术 斗拱 vue2 线下账单支付

  • 汇付支付斗拱 Python 语言 SDK(dg-python-sdk)
    其宝undefined 其宝

    DG Python SDK

    Repository:https://github.com/huifurepo/dg-python-sdk

    dougong sdk 工具类

    安装

    远程下载并安装:

    pip install dg-sdk

    简介

    为了提高客户接入的便捷性,本系统提供 SDK 方式介入,使用本 SDK 将极大的简化开发者的工作,开发者将无需考虑通信、签名、验签等,只需要关注业务参数的输入。

    使用方法

    • 初始化SDK

    未入网前,可使用以下测试商户参数进行开发测试

    import dg_sdk
    
    huifu_id = "6666000108854952"
    sys_id = "6666000108854952"
    product_id = "YYZY"
    private_key= "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxtfk3rjwdpBV81WBy5jIMcDLFdvHckhjGXkmWfaBn7euPRyetEhS4inpr7EvQ5KDUXNBPljI2NVhG/LEGZKvau1MW8j3t7dJ3gWafuVGsCiLJHU79sIRHf11nKOTykX5WxB/7MMwRnZsECuaZyCk7WPuSAlznqbDJdrZTzHhjQzMhjto1qD6+vc0OxyaBFlOY9piBtEfecsvD+6GfQ8exFqwzblJm9iZPYw02DaeUDLFO9Umn7i7gShlj/1Hh8nEM7YitpF/p26o+MC9LHWbIjgzjvNVhSRVmbvWys+3S11Zm/vux6Yzfk0H3fqrksAKSEkLEtEoYKS4wKjHdecztAgMBAAECggEACy1g4WmqCks5tsJM8K0d1L5x0w2qJK9js4ZWpop8Pk0ulbJqAm6ysvCyxnr0Qc0/eFvmFjtiKRqt1LksATTvwjAqB7Vww7hDlpSi+cTUKDfy/CdFwpsJlt2h6E0gKUmRYq+vO0NUcn8xMs3ktyNpxHvSRtqzMTbxEZrP2PFxWPzUKGNyk53FTlJ64YCoGQqWeGhA5LO6QLPHlAxIrvRf9B5dtXQr5XZXVqS9MwjtsRPvQPWiFXxlzvhJRcL/wXehcNextHzpMMgX/idB3HIpIl6XXLKiFUR4rBDJIMiQjQvS6zz2l1zpiJ0vWujVa3IY+PNefRA2ttg1DeC19GYa2QKBgQDh7AkJ7wut7p4qYAdcFEDVhFgP5mnSRyOBGWmClHYE4RIFplPiv4yO0fttAjFuCg4Zaxq49BuV3zshWOEIr72VK6wMa6Z+QbfXNr/1DT6nW+ktgXTw2G9Ts/nZiMrpcsbl7qvwChfJAPvEwnyP7Ckmd9t2WbQisuYZc+Vu8znO7wKBgQDJXskTiExEipQSOcVH5cX/ExVyj9MoLjmJhy3WTTDzGafgEoOPOfej2ZCgF6gCwugXJr+rtgdOpASk8WPACaCePdjdgQ2NVhSfV3op3TtvhgAPf3iI/zCVkZM4I1iZs6KjdHstLCKyAzCFBsowkPbfZBlFX4eO7Bk6XcIZ6x2h4wKBgQDcH64C5s4bb2beZOhm2Dj/kU54V4l93+CBFjCOkXaYdG+p35DWWspqEcCHSt68l8F7FLdZxEbodTPY3w+L9iejI4UkKPN1CzVD1U2dR4VnbY85zmwRiuCVzsM/KCCE61dOi4ktfbgFGhc1dEYHuROzLo8/tlFkiajW3eyLeSM3MwKBgATL3iw57d8gEeDRQXKx9WJa+QLOjDAD0dkFwEC/e+/+Z3I93qZVsiFT+E7n4VeXfuG2SZB0eH4WCApJuZ+EWzAJtxWnkkQQjdMxyTYgD99bKLs1xRA2S9j0K7aFmQGoNrJ//sMXrwfgbZJtk/lOKqMthjCR0u/DjeJHA22MnRsTAoGADXzJs/of0JExvQWwfdIUnSEPs/PgTrrJpo+CAdXnagYHF+InrmvIcNwx6ZzIs+9aGwUt0d/YsSpJkHMfAtTwZjB7sSw8Cg5DZ179Jy3YkKhFPvZv2ZCANa5J74HZNQUrUUL6O4FouZUiLwFlq8YuUPRtkAjYwyS/jwUbhJzqZhQ="
    public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkMX8p3GyMw3gk6x72h20NOk3L9+Nn9mOVP6+YoBwCe7Zs4QmYrA/etFRZw2TQrSc51wgtCkJi1/x8Wl7maPL1uH2+77JFlPv7H/F4Lr2I2LXgnllg6PtwOSw/qvGYInVVB4kL85VQl0/8ObyxBUdJ43I0z/u8hJb2gwujSudOGizbeqQXAYrwcNy+e+cjodpPy9unpJjBfa4Wz2eVLLvUYYKZKdRn6pZR2cQsMBvL30K4cFlZqlJ9iP2hTG3gaiZJ9JrjTigwki0g9pbTDXiPACfuF1nOeObvLD22zBbgn1kwgfsqoG67z7g84u2jvfUFCzX1JRgd0xfNorTRkS2RQIDAQAB"
    
    dg_sdk.DGClient.mer_config = dg_sdk.MerConfig(private_key, public_key, sys_id, product_id, huifu_id)
    

    参数说明:

    参数
    中文名
    public_key
    汇付公钥
    private_key
    商户私钥
    sys_id
    系统号
    product_id
    产品号
    huifu_id
    商户号
    • 接口调用
      • 以支付宝支付为例,根据接口文档说明,构建请求参数体
    required_params = {
        "trade_type": "A_NATIVE",
        "trans_amt": "1.00",
        "goods_desc": "goods_desc",
    }
    
      • 调用接口
    url = "https://api.huifu.com/v2/trade/payment/jspay"
    result = dg_sdk.request_post(url, required_params)
    
    • 其他调用方式

    除了通用的调用接口之外,SDK 还针对部分重要交易接口提供了一种更便捷的方法,

    将一些默认、非必须、无需特别关注的参数传递,以及数据脱敏、加密处理进行了封装。

    • SDK 会自动生成必传参数:req_date 以及 req_seq_id,如不想使用SDK内部生成的值,直接传入即可。
    • 针对 huifu_id 以及 product_id,如不传,SDK会使用初始化时传入的值。

    使用方法如下所示:

    response = dg_sdk.ScanPayment.create(trade_type=trade_type,
                                         trans_amt=amount,
                                         goods_desc="goods_desc",
                                         **extra_info)
    print(response)
    

    现支持模块功能列表如下

    • 聚合扫码 ScanPayment
      • 聚合正扫 - create
      • 订单查询 - query
      • 退款创建 - refund
      • 退款查询 - refund_query
      • 反扫 - micro_create
      • 关单 - close
      • 关单查询 - close_query
      • 支付托管预下单 - preorder_create
    • 线上交易 OnlinePayment
      • 线上交易查询 - query
      • 线上交易退款 - refund
      • 线上退款查询 - refund_query
      • 银联APP支付 - union_app_create
      • 网银支付页面版 - web_page
      • 手机网页支付 - wap_page
      • 网银付款银行账户查询 - payer_query
      • 网银支付银行列表查询 - bank_list
    • 快捷代扣对象 QuickAndHoldPay
      • 支付申请 - apply
      • 快捷支付确认 - confirm
      • 快捷/代扣绑卡申请 - bind_card
      • 快捷/代扣绑卡确认 - bind_card_confirm
      • 快捷代扣解绑 - un_bind
      • 快捷代扣短信重发(v1) - sms_code
      • 快捷页面版 - page
      • 代扣 - with_hold_pay
      • 线上交易查询 - query
      • 退款 - refund
      • 退款查询 - refund_query
      • 快捷支付用户注册 - customer_reg
    • 余额支付 AcctPayment
      • 余额支付 - create
      • 余额支付交易查询 - query
      • 余额支付退款 - refund
      • 余额支付退款查询 - refund_query
      • 余额查询 - balance_query
    • 代发 Surrogate
      • 代发 - create
      • 出金交易查询 - query
    • 取现对象 Settlement
      • 取现 - create
      • 取现查询 - query
    • 延时交易对象 Delaytrans
      • 延时交易确认 - confirm
      • 延时交易确认查询 - confirm_query
      • 延时交易退款 - confirm_refund
      • 交易确认批量信息查询(v1) - query_confirm_list
      • 查询交易分账明细 - split_list
    • 银行卡分期 Installment
      • 银行卡分期支付签约 - sign
      • 二段式分期支付申请 - payment_apply
      • 二段式分期支付确认 - payment_confirm
      • 银行卡分期退款 - refund
      • 银行卡分期查询 - query
    • 商户对象 Merchant
      • 企业类型商户进件 - create_enterprise
      • 个体户类型商户进件 - create_individual
      • 商户基本信息修改 - modify
      • 商户详细信息查询 - query_merch_info
      • 新增总部 - add_headquarters
      • 修改总部 - modify_headquarters
      • 总部商户绑定&解除 - bind_headquarters
      • 查询账户信息 - query_acct_info
      • 商户业务开通 - reg_busi_info
      • 商户业务开通修改 - modify_busi_info
      • 申请单状态查询 - query_apply_status
      • 商户图片资料上传(v1) - upload
      • 商户分账配置 - add_split_config
      • 商户分账配置查询 - query_split_config
      • 商户分期配置 - installment_config
      • 商户分期配置详情查询 - query_fenqi_config
      • 活动报名,支持微信 - reg_activity
      • 机构下属商户查询 - branch_mercust_query
      • 商户关系绑定 - branch_config
      • 机构列表查询 - branch_query
    • 分账用户对象 Member
      • 企业用户基本信息注册 - create_enterprise
      • 个人用户基本信息注册 - create_individual
      • 查询账户信息 - query_acct_info
      • 企业用户基本信息修改 - modify_enter_base_info
      • 个人用户基本信息修改 - modify_individual_base_info
      • 用户业务入驻 - reg_busi_info
      • 用户详情查询 - query_user_detail
    • 微信商户 WxMerchant
      • 微信商户配置 - config
      • 微信商户配置查询 - query_config
      • 微信实名认证 - realname
      • 微信实名认证状态查询 - query_realname_state
      • 证书登记 - add_cert_info
      • 微信特约商户进件申请 - apply_register_mer
      • 查询微信申请状态 - query_apply_reg
      • 修改微信结算帐号 - modify_settlement_info
      • 查询微信结算账户 - query_settlement_info
      • 微信关注配置 - subscribe_config
      • 微信关注配置查询 - query_subscribe_config
    • 支付宝商户 AliMerchant
      • 证书登记 - add_cert_info
      • 签约版-换取应用授权令牌 - exchange_app_auth_token
      • 签约版-申请当面付代签约 - apply_face2face_sign
      • 签约版-查询申请状态 - query_apply_order_status
      • 直付通-商户进件申请 - zft_apply_register_mer
      • 直付通-分账关系绑定&解绑 - zft_split_config
      • 直付通-分账关系查询 - query_zft_split_config
    • 云闪付商户 UniPayMerchant
      • 云闪付活动商户入驻 - apply_register_mer
      • 云闪付活动商户入驻状态查询 - query_apply_reg
      • 云闪付活动商户详细信息查询 - query_mer_base_info
      • 云闪付活动列表查询 - query_activity_list
      • 云闪付活动报名 - enlist_activity
      • 云闪付活动报名进度查询 - query_enlish_activity_status
    • 花呗分期配置对象 Huabei
      • 支付宝间连证书上传 - add_ali_cert_info
      • 创建花呗分期商家贴息方案 - create_pcredit_solution
      • 上架/下架花呗分期贴息 - modify_solution_status
      • 更新花呗分期商家贴息方案 - modify_pcredit_solution
      • 查询花呗分期贴息 - query_hb_solution
      • 花呗活动详情查询 - query_hb_activity
    • 终端设备 Terminal
      • 新增终端设备 - add
      • 注销终端设备 - cancel
      • 绑定终端查询 - query_list
    • 智能终端mis接入 Cloudmis
      • 智能终端接入 - device_info
    • POS 机交易 POS
      • 银行卡交易查询 - query
    • 工具类 DGTools
      • 校验签名 - verify_sign
      • 校验 webhook 返回报文签名 - verify_webhook_sign
      • 使用公钥加密敏感信息 - encrypt_with_public_key

    详情参考SDK 接入说明

    开源技术 斗拱sdk python

  • 汇付支付斗拱商户 Vue 组件库(dg-dashboard-sdk)
    其宝undefined 其宝

    汇付支付斗拱商户 Vue 组件库

    Repository:https://github.com/huifurepo/dg-dashboard-sdk

    本地开发指南

    tips:本项目仅适用于使用Vue2版本和element-ui2.15.7

    1.1安装

    npm i
    

    1.2将当前项目生成软链

    npm link 
    

    1.3.在使用当前项目的demo中,执行如下命令,指向当前项目

    // 名称参考rollup.config.js中的output导出的name
    npm link dg-element 
    

    2.额外配置(保证demo与本项目用一套elementUI和vue,防止样式污染)

    当前项目中执行如下命令:

       rm -rf node_modules/vue
       rm -rf node_modules/element-ui
       // 若使用组件库的项目与组件库项目为同一层级目录
       ln -s node_modules/vue ../demo/node_modules/vue
       ln -s node_modules/element-ui ../demo/node_modules/element-ui
    

    4.重启demo和组件库

    5.发布流程

    nrm use npm //需要修改npmBuild中config.json文件
    npm run release
    

    使用已经发布的仓库

    假设发布的仓库名称为dg-element

    安装

    npm 安装

    npm i dg-element -S
    

    引入

    完整引入

    在 main.js 中写入以下内容:

    import Vue from 'vue';
    import DGElement from 'dg-element';
    // 引入style样式
    import 'dg-element/dist/dg-element.css';
    import App from './App.vue';
    import store from './store';
    
    // 全局注册SDK
    Vue.use(DGElement);
    
    new Vue({
      el: '#app',
      render: h => h(App)
    });
    
    

    在页面中写入可引入相关组件:

    <template>
      <div>
       {/* 商户列表组件 */}
       <HMerchantList></HMerchantList>
      </div>
    </template>
    <script>
    export default {
      name: 'MerchantList',
    };
    

    开源技术 斗拱 vue2 element-ui

  • 汇付支付斗拱 Java 语言 SDK(bspay-java-sdk-parent)
    其宝undefined 其宝

    汇付支付斗拱 JAVA 语言 SDK

    Repository:https://github.com/huifurepo/bspay-java-sdk-parent

    欢迎使用 斗拱SDK for Java 。

    斗拱SDK for Java让您不用复杂编程即可访斗拱开放平台开放的各项能力,SDK可以自动帮您满足能力调用过程中所需的证书校验、加签、验签、发送HTTP请求等非功能性要求。 同时,斗拱dg-lightning-sdk提供聚合支付快速接入能力,能大大提升商户接入效率,可以参考dougong-java-lightning-sdk项目,主要包括交易创建、交易查询、交易关闭、交易退款、交易关闭查询、交易退款查询。

    环境要求

    1. 斗拱SDK for Java 需要使用JKD 1.8或其以上版本。
    2. SDK接入准备
    • 提交商户材料完成进件及相关业务配置;
    • 登录控台获取/配置密钥,参见《商户密钥操作说明》;
    1. 准备工作完成后,注意保存如下信息,后续将作为使用SDK的输入。商户的私钥、商户的公钥、汇付的公钥;

    安装依赖

    推荐通过Maven来管理项目依赖,您只需在项目的pom.xml文件中声明如下依赖

        <dependency>
          <groupId>com.huifu.bspay.sdk</groupId>
          <artifactId>dg-java-sdk</artifactId>
          <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.huifu.dg.lightning.sdk</groupId>
            <artifactId>dg-lightning-sdk</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.70</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.2</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.5.2</version>
        </dependency>
    
        <!-- util -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.6</version>
        </dependency>
    
        <!-- okhttp -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.1</version>
        </dependency>
    

    快速使用

    1. 安装好依赖库保证运行环境没问题,可直接运行SDK demo,如调用商户详细信息查询正常返回说明运行环境配置成功;
    2. 改商户配置信息(商户号、私钥),看下单是否成功,如能成功,说明商户配置成功,否则请检查商户控台配置;
    3. 部署服务端服务:安装并部署服务端服务到您的服务器,前端应用调用SDK;
    4. 前端应用对接:前端应用通过网络请求获取到应用服务端从SDK获取的支付信息。在前端页面或者APP内处理后,发起支付。

    以下这段代码示例向您展示了使用斗拱SDK for Java调用一个API的3个主要步骤:

    1. 初始化商户参数,完成Client实例并初始化。系统初始化时只需做一次;
    2. 创建API请求对象并设置Model参数。必填参数用set方法,非必填参数用addExtendInfo()方法设置;
    3. 发起请求并处理响应或异常。
     public static void main(String[] args) throws Exception {
            // 1. 设置商户参数(全局只需设置一次)
            doInit(OppsMerchantConfigDemo.getMerchantConfig());
            // 2. 组装交易参数
            TradePaymentMicropayRequest request = new TradePaymentMicropayRequest();
            //请求日期
            request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
            //请求流水号(保证唯一)
            request.setReqSeqId(SequenceTools.getReqSeqId32());
            //交易金额(单位元)
            request.setTransAmt("0.01");
            //条形码
            request.setAuthCode("287606928207260511");
            //商品描述
            request.setGoodsDesc("测试商品");
            //商户id
            request.setHuifuId("6666000103124174");
            // 3.拓展参数 (可选)
            // 该笔交易的异步通知地址(http/https异步通知地址,必须以virgo://开头)
            request.addExtendInfo("notify_url", "virgo://http://www.baidu.com");
            try {
                // 3. 发起API调用
                Map<String, Object> response = doExecute(request);
                System.out.println("返回数据:" + JSONObject.toJSONString(response));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    异步消息说明

    接口如果有异步返回,请参考斗拱API文档异步消息说明

    文档

    SDK文档首页

    开源技术 斗拱sdk java

  • 汇付支付Dougong Lightning SDK(dg-lightning-sdk-java)
    其宝undefined 其宝

    Dougong Lightning SDK(Java)项目说明

    Repository:https://github.com/huifurepo/dg-lightning-sdk-java

    概述

    Dougong Lightning SDK 以 V4 插件的形式提供极简聚合支付能力,遵循“化繁为简、必参极简 + 可选灵活扩展”的设计风格,通过统一的调用入口与对象化入参模型降低集成成本。

    主要特性

    • 统一入口:通过 Factory 创建客户端,所有能力从一个入口发起。
    • 必参极简:主交易字段最小化,低频参数走扩展注入。
    • 可插拔扩展:optional(key, value) 注入场景参数,保持模型稳定。
    • 统一管道:入参归一、扩展合并、序列化、路由与调用一体化。
    • 多场景覆盖:下单、查询、关单、退款、退款查询。

    包结构简述

    • factory:统一入口与客户端创建(Factory)。
    • biz.client:业务客户端与链式扩展(CommonPayClient、BasePayClient)。
    • biz.net:网关请求、签名与路由(BasePayRequest)。
    • models:对象化入参/响应与领域对象(如 TradePaymentCreateRequest、分账对象)。
    • utils:基础工具与配置(BasePay、DateTools、SequenceTools 等)。

    安装与引入

    在上层业务模块的 pom.xml 中引入:

    <dependency>
      <groupId>com.huifu.dg.lightning.sdk</groupId>
      <artifactId>dg-lightning-sdk</artifactId>
      <version>1.0.3</version>
    </dependency>
    

    场景快速冒烟

    • 目标:零门槛验证“统一入口 + 极简扩展”是否接通。
    • 示例目录:查看 dougong-java-sdk项目的bspay-java-sdk-sample 项目
    • 操作步骤:
      • 在示例目录选择一个交易类型示例类(如 JSAPI/正扫/付款码)。
      • 设置主交易字段:req_date、req_seq_id、huifu_id、goods_desc、trans_amt、trade_type。
      • 注入通道扩展:将场景参数对象序列化为 JSON,使用 optional("method_expand", json) 注入;
      • 叠加收单能力:如需贴息/增值等,序列化为 JSON,使用 optional("tx_metadata", json) 注入。
      • 运行示例类的 main 或测试方法,观察返回的交易号/二维码/支付参数等核心结果。

    快速开始

    // 1. 初始化商户配置(建议从配置中心加载 MerConfig 后调用 BasePay.initWithMerConfig)
    BasePay.initWithMerConfig(merConfig);
    
    // 2. 组装必填入参(以聚合下单为例)
    TradePaymentCreateRequest req = new TradePaymentCreateRequest();
    req.setReqDate(DateTools.getCurrentDateYYYYMMDD());
    req.setReqSeqId(SequenceTools.getReqSeqId32());
    req.setHuifuId("6666xxxxxxxxxxx");
    req.setGoodsDesc("商品描述");
    req.setTransAmt("0.01");
    req.setTradeType("A_JSAPI");
    
    // 3. 通过工厂获取客户端并发起调用
    Map<String, Object> resp = Factory.Payment.Common()
            .optional("notify_url", "https://your.notify/url")
            .create(req);
    

    可选参数扩展

    • 使用链式的 optional(key, value) 在客户端注入低频参数,这些参数将与请求体合并并覆盖同名字段。

    下单统一入口与扩展模型

    • 单一入口:所有支付下单统一通过 CommonPayClient#create 发起
    • 交易抽象:用 trade_type 标识具体支付场景;用 method_expand 承载该场景的专有参数,二者组合即为“交易对象”的扩展模型。
    • 收敛策略:新增或变更任意交易场景时,仅需定义场景参数对象 → 序列化为 JSON → 注入 method_expand,无需新增接口或客户端方法。
    • 推荐用法:保持必参极简,扩展参数一律通过 optional("method_expand", json) 注入;若无扩展,传 "{}" 即可。
    • 调用示例:
    req.setTradeType("T_JSAPI");
    String json = JSON.toJSONString(wxData);
    Map<String, Object> resp = Factory.Payment.Common()
        .optional("method_expand", json)
        .create(req);
    

    交易设计理念

    • 意向订单(主交易字段):用统一的主字段表达订单意向与基础要素,如日期、流水号、商户、金额、商品等,保持稳定不随渠道变化。
    • 通道信息(trade_type + method_expand):以 trade_type 选择支付通道/场景,以 method_expand 承载该通道的专有参数,二者组合定义“如何支付”。新增渠道能力只需新增专有参数对象并通过 method_expand 注入,无需改动统一入口。
    • 收单附加能力(tx_metadata):用于承载收单侧扩展能力,如贴息、分期、优惠分账、增值等,以 JSON 字符串注入即可。
    • 三层划分:将一次交易抽象为“意向订单(主字段)+ 通道(trade_type+method_expand)+ 收单附加能力(tx_metadata)”。该划分确保主交易模型稳定、通道能力可插拔、收单扩展可累加,统一入口下自然演进。

    统一请求管道(简述)

    • 入参归一:将请求对象规范化为键值对。
    • 扩展合并:合并扩展参数,客户端注入覆盖同名字段。
    • 特殊序列化:对象型特殊字段统一序列化为 JSON 字符串。
    • 路径解析与调用:将功能码解析为网关路径,完成 HTTP 调用并返回统一结果。

    常用接口示例

    • 支付下单:CommonPayClient#create(TradePaymentCreateRequest)
    • 支付查询:CommonPayClient#query
    • 关单:CommonPayClient#close
    • 退款:CommonPayClient#refund
    • 退款查询:CommonPayClient#refundQuery

    开箱即用与场景示例

    • 项目定位:本包为 V4 极简插件,示例与运行入口位于主 SDK 项目。
    • 示例目录:bspay-java-sdk-parent/bspay-java-sdk-sample/src/main/java/com/huifu/bspay/sdk/demo/v4
    • 使用方式:在主 SDK 示例目录中选择对应交易类型的示例类,按需修改基础入参与扩展参数(trade_type + method_expand / tx_metadata),直接运行。
    • 配置说明:主 SDK 通过配置中心加载环境与密钥信息;如运行异常,请在主 SDK 项目中调整环境与商户配置。

    配置说明

    • 通过 BasePay.initWithMerConfig(MerConfig) 或 BasePay.initWithMerConfigs(Map<String, MerConfig>) 完成多商户配置加载(dg-lightning-sdk/src/main/java/com/huifu/dg/lightning/utils/BasePay.java:57-71)。
    • 调用时使用默认商户配置,或在请求方法中指定 merchantKey 选择商户配置(BasePayRequest 的对应重载)。
    • BasePay.prodMode 控制目标环境域名(生产/联测/内部),统一封装于 BasePayRequest 调用路径解析。

    异常与错误

    许可与版本

    • 版本:1.0.3
    • 许可证:Apache-2.0(详见根 POM)

    开源技术 斗拱sdk java lightning

  • 汇付支付斗拱 PHP 语言 SDK(bspay-php-sdk)
    其宝undefined 其宝

    汇付支付斗拱 PHP 语言 SDK简介

    Repository:https://github.com/huifurepo/bspay-php-sdk

    为了提高客户接入的便捷性,本系统提供 SDK 方式介入,使用本 SDK 将极大的简化开发者的工作,开发者将无需考虑通信、签名、验签等,只需要关注业务参数的输入。

    下载地址

    SDK下载

    版本记录

    版本

    日期

    版本说明

    v1.0.0

    2021/05/06

    初始版本

    v1.0.1

    2021/08/23

    实现通用接口请求客户端演示demo,实现部分支付功能的封装

    v1.1.0

    2021/10/12

    对接新版斗拱 API 接口

    v1.1.1

    2021/11/02

    封装余额支付、取现、代发模块对象

    v1.1.2

    2021/12/08

    1. 封装快捷代扣、延时交易、商户管理模块;

    2. 优化 huifuid 方法参数,默认从配置文件中读取

    v1.1.3

    2021/12/13

    1. 优化 huifuid 方法参数

    2. 调整Demo 中 config.json 公私字段的命名

    3. 优化接口通讯安全处理

    v1.1.4

    2021/12/21

    1. 修复扫码接口地址问题

    2. 修复扫码支付模块支付类型对象数据格式化问题

    v1.1.5

    2022/01/19

    1. 封装微信、支付宝、云闪付商户管理模块对象;

    2. 封装分账用户管理模块对象

    v1.1.6

    2022/04/21

    1. 封装支付宝花呗分期模块对象;

    2. 封装终端报备模块对象;

    3. 封装银行卡分期模块对象;

    4. 封装交易取现、出金交易查询模块对象;

    5. 封装智能终端模块对象;

    6. 封装交易确认模块对象;

    7. 升级商户管理、快捷代扣、线上交易的部分接口为V2版本;

    v1.1.7

    2022/05/05

    1. 实现机构列表查询功能封装;

    2. 实现商户关系绑定功能封装;

    3. 实现机构下属商户查询功能封装;

    4. 升级商户图片上传接口为V2版本;

    v1.1.8

    2022/05/12

    1. 实现支付托管H5、PC、支付宝小程序、微信小程序预下单功能封装;

    2. 补充验签工具使用说明;

    v1.1.9

    2022/07/14

    1. 网银支付页面版、手机网页支付、快捷支付页面版接口只加签不验签;

    2. 商户图片上传接口免加解签;

    3. 优化预下单功能封装;

    v2.0.0

    2022/09/16

    1. 类名按资源路径生成;

    2. demo中字段说明更详细;

    版本要求

    PHP 版本 5.6 及以上

    SDK 包结构说明

    BsPaySdk 目录下内容为待添加到项目中的文件;

    BsPayDemo 目录下为示例项目,供接入时参考使用;

    使用方法

    1. 将 BsPaySdk 目录下文件内容整体复制到您的项目工程内

    2. 在您的项目创建 SDK 初始化的入口文件,完成如下配置:

    2.1 进行相关环境及调试参数的配置

     # 设置是否调试模式,不配置默认关闭:false
     define("DEBUG", true);
     
     # 设置调试日志路径,不配置默认为SDK同级的log目录下
     define("LOG", dirname(__FILE__)."/log");
     
     # 设置生产模式,不配置默认生产模式:true,设置为 false 时调用联调测试环境
     define("PROD_MODE", true);
    

    2.2 完成 sdk 初始化

     # 加载 SDK 初始化文件
     require_once  dirname(__FILE__). "/../BsPaySdk/init.php";
    

    2.3 完成系统参数的导入

     # 从文件导入商户系统参数
     BsPay::init(dirname(__FILE__). '/config/config_merch_default.json', false);
     
     # sdk也支持追加多套系统参数,并可以在调用接口时进行切换,适用于下辖多商户的系统接入
     BsPay::init(dirname(__FILE__). '/config/config_merch_2.json', false, "merchantKey2");
     BsPay::init(dirname(__FILE__). '/config/config_merch_3.json', false, "merchantKey3");
     ...
    

    2.4 以上内容,建议参考 SDK Demo 中 loader.php 文件内的代码写法

    3. SDK 调用方法(一):使用接口 request 实例调用,以商户业务开通接口为例

    3.1 导入前一步实现的 SDK 初始化文件

    # 导入初始化内容
    require_once dirname(__FILE__) . "/loader.php";
    require_once  dirname(__FILE__). "/../BsPaySdk/request/V2MerchantBusiOpenRequest.php";
    

    3.2 根据接口文档说明,创建对应请求的参数数据体

     # 请求必填参数
     $request = new V2MerchantBusiOpenRequest();
     // 请求流水号
     $request->setReqSeqId(date("YmdHis").mt_rand());
     // 请求日期
     $request->setReqDate(date("Ymd"));
     // 汇付ID
     $request->setHuifuId("6666000104778898");
     // 渠道商汇付ID
     $request->setUpperHuifuId("6666000003080000");
     
     # 请求拓展参数 (可选)
     $extendInfoMap = getExtendInfos() ;
     $request->setExtendInfo($extendInfoMap);
    

    3.3 调用接口

    # 创建请求Client对象,调用接口
     $client = new BsPayClient();
     $result = $client->postRequest($request);
    

    3.4 处理返回结果

    # 成功/失败应答的处理
    if (!$result || $result->isError()){  //失败处理
        var_dump($result -> getErrorInfo());
    } else {    //成功处理
        var_dump($result);
    }
    

    3.5 以上内容,建议参考 SDK Demo 中 V2MerchantBusiOpenRequestDemo.php 文件内的代码写法

    4. SDK 调用方法(二):使用集中传参方式调用,以商户业务开通接口为例

    除基于接口 request 实例调用外,另提供一种集中传参方式,拓展适应不同需求;

    4.1 导入前一步实现的 SDK 初始化文件

    # 导入初始化内容
    require_once dirname(__FILE__) . "/loader.php";
    require_once  dirname(__FILE__). "/../BsPaySdk/request/V2MerchantBusiOpenRequest.php";
    

    4.2 根据接口文档说明,创建对应请求的参数数据体

     # 请求实例
     $request = new V2MerchantBusiOpenRequest();
     
     // 请求参数,不区分必填和可选,按照 api 文档 data 参数结构依次传入
     $param = array(
         "funcCode" => $request->getFunctionCode(),
         "params" => array(
             "req_seq_id" => date("YmdHis").mt_rand(),
             "req_date" => date("Ymd"),
             "huifu_id" => "6666000104778898",
             "upper_huifu_id" => "6666000003080000",
             "balance_pay_config" => json_encode(array(
                 "fee_rate" =>"2",
                 "fee_fix_amt" =>"1",
             ),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES),
         ),
     );
    

    4.3 调用接口

    # 创建请求Client对象,调用接口
     $client = new BsPayClient();
     $result = $client->postRequest($param);
    

    4.4 处理返回结果

    # 成功/失败应答的处理
    if (!$result || $result->isError()){  //失败处理
        var_dump($result -> getErrorInfo());
    } else {    //成功处理
        var_dump($result);
    }
    

    5 验签工具(BsPayTools.php)

    • 校验签名 - verifySign_sort
    • (此方法为返回报文签名验签,将返回data 按字母顺序排序后组成json 字符串,依据 RSA2 算法使用公钥进行验签
    • 示例:
    $data = array(
        'bank_code' =>'10000',
        'bank_message' =>'Success',
        'hf_seq_id' =>'002900TOP2B220511142822P984ac132ff400000',
        'huifu_id' =>'6666000108854952',
        'qr_code' =>'https://qr.alipay.com/bax04465kcijedllqhuq004b',
        'req_date' =>'20220511',
        'req_seq_id' =>'202205111428211506200',
        'resp_code' =>'00000100',
        'resp_desc' =>'下单成功',
        'trade_type' =>'A_NATIVE',
        'trans_amt' =>'1.00',
        'trans_stat' =>'P',
    );
    $sign = "OUotiU75VW7SdEwLIZX3gAqSgZk8hCjE7r01WQr8mDdm23B+zd58r8HNWvE9BWV+mTwZ2iAOSuht9SOGM+spSYFANa3VIqMZzGim3y4aZmptQTTptNcclocsWyocn78efdAuTcGvf5dhUc6/Ue1oYV+BVhphYPmkKUKfxpEvBEvw/vlpsCu0I0Dx/k7kN6IaxY6mODypFmDtnEaZbkGaxbh8yxH1lJDn5/91YfD6vpK+sRJXiVXLzDK13BPAjQ3RAlFUxHJ8LPJbWQQpABQ94Gd1TTc/bfOluqUwJJbofC7WZiIOW6MKsa9gL5Y6lmbqFcMBKfvexJ0SlRFLWvSkQg==";
    $merConfig = BsPay::getConfig();
    $result = BsPayTools::verifySign_sort($sign,$data,$merConfig->rsa_huifu_public_key);
    
    • 校验 webhook 返回报文签名 - verify_webhook_sign
    • (此方法为异步回调验签方法,将返回 data 字符串与商户配置的key 组合后进行md5计算,返回的md5值与回调sign的比较结果
    • 示例:
    $data = array(
        'bank_code' =>'10000',
        'bank_message' =>'Success',
        'hf_seq_id' =>'002900TOP2B220511142822P984ac132ff400000',
        'huifu_id' =>'6666000108854952',
        'qr_code' =>'https://qr.alipay.com/bax04465kcijedllqhuq004b',
        'req_date' =>'20220511',
        'req_seq_id' =>'202205111428211506200',
        'resp_code' =>'00000100',
        'resp_desc' =>'下单成功',
        'trade_type' =>'A_NATIVE',
        'trans_amt' =>'1.00',
        'trans_stat' =>'P',
    );
    $sign = 'dcc64089c44ea77cfde785de4cfa97ba';
    $key = 'test_key';
    $result = BsPayTools::verify_webhook_sign($sign,$data,$key);
    

    开源技术 斗拱sdk php

  • 汇付支付 Skill 产品包(dg-payment-skills)
    其宝undefined 其宝

    汇付支付 Skill 产品包

    Repository: https://github.com/huifurepo/dg-payment-skills

    这是一个面向第三方客户的 Huifu 接入 Skill 包,用来帮助开发者借助 AI 工具完成汇付支付 / 斗拱 SDK 接入开发。

    README 按 产品线 -> 开发任务 -> 技术栈 导航,先帮你定位入口,再进入对应文档。当前仓库已收敛为单 Skill:

    • 正式 Skill:huifu-pay-integration
    • 服务端技术栈:Java、PHP;C#、Python、Go 保留入口说明
    • 前端支付组件:Node.js / Browser
    • 产品能力主线:聚合支付、托管支付、前端支付组件

    选择建议:优先使用聚合支付,接入更快、更轻量;当你需要托管收银台、项目制预下单或前端 checkout 能力时,再进入托管支付和前端支付组件路径。

    如何开始

    下文中的 references/... 均指 huifu-pay-integration/references/...。

    1. 先按产品线定位

    产品线

    适合什么场景

    从这里开始

    汇付支付集成(总入口)

    第一次接入汇付,需要先判断产品线、开发任务和阅读顺序

    huifu-pay-integration/SKILL.md

    聚合支付

    标准支付场景,想尽快完成服务端接入

    references/aggregation-quickstart.md

    托管支付(服务端)

    需要项目制预下单、托管收银台、查询 / 退款闭环

    references/hostingpay-quickstart.md

    前端支付组件

    需要在商户自有页面嵌入 checkout 或单支付按钮

    references/checkout-js.md

    2. 再按开发任务进入

    开发任务

    聚合支付

    托管支付 / 前端支付组件

    初始化 / 公共配置

    references/aggregation-base.md

    references/hostingpay-base.md

    下单 / 预下单

    references/aggregation-order.md

    references/hostingpay-preorder.md

    查询 / 关单 / 对账

    references/aggregation-query.md

    references/hostingpay-query.md

    退款

    references/aggregation-refund.md

    references/hostingpay-refund.md

    收银台组件接入 / 单支付按钮

    不适用

    references/checkout-js.md

    3. 最后按技术栈落地

    技术栈

    推荐入口

    说明

    Java

    references/shared-server-sdk-matrix.md

    聚合支付和托管支付都有稳定基线

    PHP

    references/shared-server-sdk-matrix.md

    聚合支付核心主链路和托管支付核心场景已覆盖

    C# / Python / Go

    references/shared-server-sdk-matrix.md

    当前只保留入口说明

    Node.js / Browser

    references/shared-frontend-sdk-matrix.md

    前端 JS SDK 能力矩阵

    Node.js / Browser

    references/checkout-js.md

    嵌入 checkout / 单支付按钮的实际入口

    产品线说明

    聚合支付

    聚合支付是一条服务端主线,适合标准支付接入和快速上线。

    推荐阅读顺序:

    references/aggregation-quickstart.md
      -> references/aggregation-base.md
      -> references/aggregation-order.md
      -> references/aggregation-query.md
      -> references/aggregation-refund.md(按需)
    

    托管支付

    托管支付的服务端主线负责 SDK 初始化、预下单、查询、关单、对账和退款。

    推荐阅读顺序:

    references/hostingpay-quickstart.md
      -> references/hostingpay-base.md
      -> references/hostingpay-preorder.md
      -> references/hostingpay-query.md
      -> references/hostingpay-refund.md(按需)
    

    前端支付组件

    前端支付组件用于在商户自定义页面中嵌入 checkout 组件或单支付按钮,让商户自己控制页面布局、品牌样式和交互流程。

    必须注意:前端 callback 不等于最终支付成功,最终订单状态仍应由服务端查询或异步通知确认。

    推荐主链路:

    服务端预下单:references/hostingpay-preorder.md
      -> 前端渲染 checkout / 按钮:references/checkout-js.md
      -> 服务端最终确认:references/hostingpay-query.md + references/hostingpay-async-webhook.md
    

    共享资料层

    这些共享资料不再分散在多个 Skill 中重复维护:

    资料

    作用

    references/shared-signing-v2.md

    V2 签名规则

    references/shared-async-notify.md

    接口 notify_url 异步通知规则

    references/shared-webhook-signing.md

    控台 Webhook 终端密钥与 MD5 验签规则

    references/shared-request-header-policy.md

    请求头与 skill 来源字段规则

    references/shared-server-sdk-matrix.md

    服务端多语言矩阵

    references/shared-frontend-sdk-matrix.md

    前端 JS SDK 矩阵

    references/shared-versioning-policy.md

    版本治理规则

    references/shared-release-checklist.md

    发布检查清单

    Skill 内部结构

    huifu-pay-integration/
    ├── SKILL.md
    ├── agents/
    │   └── openai.yaml
    └── references/
        ├── shared-*.md
        ├── aggregation-*.md
        ├── hostingpay-*.md
        └── checkout-js-*.md
    

    当前版本事实

    项目

    当前口径

    Skill 包版本

    1.2.0

    托管支付 Java SDK 常量版本

    dg-java-sdk 3.0.36

    聚合支付 Java SDK 版本

    dg-lightning-sdk 1.0.5

    PHP SDK 包

    huifurepo/dg-php-sdk 2.0.26

    前端收银台 JS SDK

    @dg-elements/js-sdk,接入时以项目锁定版本为准

    文档说明

    • 优先阅读 huifu-pay-integration/SKILL.md 与 references/ 下的场景文档
    • 服务端接入优先从 references/shared-server-sdk-matrix.md 和对应 *-base.md 开始
    • 前端接入优先从 references/shared-frontend-sdk-matrix.md 和 references/checkout-js.md 开始
    • AI 生成接入代码时,不应自行猜测商户参数、项目配置或最终支付状态
    • HUIFU_RSA_PRIVATE_KEY、HUIFU_RSA_PUBLIC_KEY 等敏感配置只能留在服务端

    官方技术支持

    如需官方技术支持或接入答疑,可通过以下官方渠道联系:

    • 客服电话:400-820-2819
    • 官方邮箱:cs@huifu.com

    企业微信技术支持群(仅用于接入答疑 / 技术支持):

    开源技术 斗拱 skill 支付

  • 汇付支付斗拱 Go 语言 SDK(bspay-go-sdk)
    其宝undefined 其宝

    汇付支付斗拱 Go 语言 SDK 简介

    Repository:https://github.com/huifurepo/bspay-go-sdk

    为了提高客户接入的便捷性,本系统提供 SDK 方式接入,使用本 SDK 将极大的简化开发者的工作,开发者将无需考虑通信、签名、验签等,只需要关注业务参数的输入。
    

    SDK 项目结构说明

    • BsPaySdk -- SDK核心包, 包含通信, 加解签, 接口参数对象等
    • config -- 商户配置
    • ut -- 接口调用/参数赋值演示demo

    SDK 接入说明

    以下两种方式任选其一

    1. 直接在go.mod中引用(require github.com/huifurepo/bspay-go-sdk/BsPaySdk [version])
    2. 直接下载源码文件, 将BsPaySdk(SDK核心包)源码放入项目中

    SDK 使用说明

    接口命名直接根据接口URL来命名, 方便用户使用, 需要使用某接口时, 可直接使用接口中文名, 或接口URL(驼峰格式)进行搜索, 找到对应的struct, demo等
    
    1. 配置初始化
    • 初始化为全局配置(多商户模式下, 可初始化多份)
    • 第一个参数true:生产环境, false:测试环境
    • 第二个参数商户公私钥等信息配置
    dgSDK, _ := BsPaySdk.NewBsPay(false, "./config/config.json")
    
    1. 组装请求参数
    • 为了接口使用更加方便, 我们将参数粗分为必填/非必填, 必填直接放在结构体内, 非必填放在结构体的map字段ExtendInfos中
    	dgReq := BsPaySdk.V2MerchantBasicdataQueryRequest{
    		// 请求流水号
    		ReqSeqId: tool.GetReqSeqId(),
    		// 请求日期
    		ReqDate: tool.GetCurrentDate(),
    		// 汇付客户Id
    		HuifuId: "6666000108854952",
    	}
    	// 设置非必填字段
    	dgReq.ExtendInfos = getExtendInfos()
    
    1. 发起API调用
    resp, err := dgSDK.V2MerchantBasicdataQueryRequest(dgReq)
    

    开源技术 斗拱sdk go
  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 斗拱开发者站点
  • 版块
  • 未读 0
  • 最新
  • 热门
  • 用户