商户接入指南 商户接入指南
  • V2
  • V3 (opens new window)
  • V2
  • V3 (opens new window)
  • 接入指南

    • 起步
    • 名词约定
    • 对接流程(必读)
    • 签名规约
    • 服务端接入流程
    • 3D集成指南V1(From提交)
    • 3D集成指南V2(风控插件)
      • 接入说明
      • 兼容说明
        • 设备指纹采集
        • 3DS 验证处理
      • 信用卡卡号支付流程
        • 引入风控插件
        • 初始化
        • 生成 jsGeneratedData
        • 3DS 验证处理
      • 信用卡 Token 支付流程
      • 风控插件测试专用
  • 接入方案

    • 收银台模式

      • 内嵌JS-SDK
      • 跳转接入
    • 端到端模式

      • 快速开始
      • 商户收银台规范
    • 交易处理方案

      • 处理交易状态
      • 交易数据处理方案
      • 交易状态处理方案
      • 自动续费场景处理方案
    • 开源建站工具插件支持

      • Magento235
      • Woocommerce
      • OpenCart
      • Prestashop
      • ZenCart
  • APIs

    • 交易下单

      • 收银台模式
      • 端到端模式
      • 退款和预授权
      • 修改交易信息
    • 交易查询

    • 快捷支付

    • 拒付查询

    • 物流信息

    • 交易账单

    • 币种汇率

    • 商户信息

  • 附录

  • v2

风控插件集成指南

# 风控插件集成指南

# 接入说明

风控插件是推荐的3d集成方案,扩展原有Form表单3D方案,同时支持更多交易通道的3d交易。

# 兼容说明

# 设备指纹采集

使用风控插件后,原有的在商户端在 S2S 支付时进行的设备指纹采集与上传操作可以去 除,PingPong 风控插件会自动进行设备指纹采集处理

# 3DS 验证处理

使用风控插件后,原有商户根据 S2S 支付响应结果的 acsUrl,requestMethod, threedDHighLevelParams 的处理操作可以移除,当支付过程中需要持卡人进行3DS验证时,商户使用返回结果参数 threeDUnionParams 直接调用 PingPong 风控插件的 3DS 处理函数,插件会自动进行处理

# 信用卡卡号支付流程

# 引入风控插件

# 标签引入风控插件

 <script src="https://pay-cdn.pingpongx.com/production-fra/static-fra/sdk/ppAcquirerRisk.min-2.0.0.js"></script>
1

# 在Vue中使用

  1. 封装一个组件 remote-js
export default {
    components: {
        'remote-js': {
            render(createElement) {
                return createElement('script', {attrs: {type: 'text/javascript', src: this.src}});
            },
            props: {
                src: {type: String, required: true},
            },
        },
    },
}
1
2
3
4
5
6
7
8
9
10
11
12
  1. 通过组件引入
<remote-js src="https://pay-cdn.pingpongx.com/production-fra/static-fra/sdk/ppAcquirerRisk.min.js"></remote-js>
1

# 初始化

let options = {
    env: 'test', // 开发环境:dev;测试环境:test;生产环境:prod 
    accId: accId,
    clientId: clientId || '',//  clientId 
    elId: '#input', // 卡号输入框的 dom id
    merchantTransactionId: merchantTransactionId //填入网站订单流水号
}

let pp = new PPAcquirerRisk(options);

pp.install()
1
2
3
4
5
6
7
8
9
10
11

# 生成 jsGeneratedData




注意 : 每次订单号生成或改变时候必须重新初始化,卡号每次改变都必须重新调用get3DParams!!!



当持卡人输入卡号后 RiskJS 会自动执行 3DS 初始化操作,商户需要在用户正确输入卡号 且 RiskJS 执行之后 ,调用 JS 接口获取风控设备指纹参数,该参数将作为支付接口的 jsGeneratedData 参数值


 var threeDParams = pp.get3DParams(); // 函数返回值 3DParams 作为下一步支付 接口的 jsGeneratedData 的值
1

threeDParams 中必须包含参数 threeDSServerTransID,若检测到threeDSServerTransID为null,可能是没有触发初始化操作,因此必须触发卡号输入框的keyup事件来再次初始化, 并调用get3DParams再次获取threeDParams。

# 3DS 验证处理

商户在调用网关支付 Server to Server 支付接口后,根据响应的交易状态与 3D Secure 处 理标识判断是否需要 3DS 验证处理,支付状态 status 为 PROCESSING 或 PENDING 时,表示交易处理中,如果返回参数 threeDContinue 为 true 表示需要持卡人进行 3DS 验证,那么商户前端需要执行 JS 提供的 payment3DValidate 函数,将接口返回 的 threeDUnionParams 作为入参调用 payment3DValidate 函数,JS 插件会进行 3D Secure 验证页面的跳转或加载操作,3D Secure 验证页面打开后,持卡人可进行 3D 验 证,完成支付过程

/*
pp.payment3DValidate 方法聚合了所有 3D 流程的处理,应在正常支付流
程之前执行
@paramsthreeDUnionParams必传 s2s支付接口/v2/payment返回的
threeDUnionParams 字段
@params callback 回调函数 可不传,商户可在此处理正常支付流程。若
该笔交易进入 3D 流程,则该回调不会执行,否则执行该回调函数,处理正常支付逻辑
*/
pp.payment3DValidate(threeDUnionParams, callback)
1
2
3
4
5
6
7
8
9

# 信用卡 Token 支付流程

与正常支付流程不同的是,token 支付需要商户自行进行 3DSecure Initialization, 即在 上述 §3 步中,商户需要自行调用 tokenPaymentInit 方法

/*
@pramas { cardToken: cardToken } token 支付流程必传参数
@paramscallback 在callback里执行pp.get3DParams方法,确保能正确拿 到 3Dinit 返回参数,可不传
1
2
3

# 风控插件测试专用

参数名称 值
邮箱 force_3ds_risk_recommendation@forter.com
accId 2018092714313010016289
clientId 2018092714313010016
salt BCE27A281029F5EAF3CC0E82
测试专用卡号 4138490000000000
上次更新: 2024/01/12, 17:42:45
3D集成指南V1(From提交)
内嵌JS-SDK

← 3D集成指南V1(From提交) 内嵌JS-SDK→

杭州乒乓智能技术有限公司 | Copyright © 2015-2024 All rights reserved. pay.pingpongx.com
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式