--- url: >- https://acquirer-api-docs-v4-en.pingpongx.com/notes/zh/api/services/marketplaces/mpUniformly/index.md description: >- Marketplaces 下单并支付接口提供非托管模式下的支付解决方案。适用于希望直接管理支付流程的电商平台,支持卡支付并要求接入风控组件以确保交易安全。该API允许商家自定义支付界面,同时需严格遵守相关安全规范。 --- # 下单并支付 ```apidef endpoint: POST /v4/payment/marketplace/unifiedPay name: 下单并支付 ``` Marketplaces 下单并支付接口提供非托管模式下的支付解决方案。适用于希望直接管理支付流程的电商平台,支持卡支付并要求接入风控组件以确保交易安全。该API允许商家自定义支付界面,同时需严格遵守相关安全规范。 ## 请求参数 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | accId | string | M | 店铺唯一标识 | | clientId | string | M | PingPong 商户号 | | signType | string | M | 支持 MD5 、 SHA256 ,具体⻅本文签名规约: /notes/zh/onlinePayment/developer/sign/一栏 | | sign | string | M | 签名,具体⻅本文签名规约: /notes/zh/onlinePayment/developer/sign/,所有参数均参与签名 | | version | string | M | 版本号,当前固定为1.0,后续随接口变动可能有调整 | | bizContent | string | M | 请求参数的集合,最大长度不限,除公共请求参数外所有请求参数都必须放在这个参数中传递,格式:JSON字符串。该字段内容为 JSON 字符串,反序列化后的结构见 contentSchema。 | | └─ captureDelayHours | integer | M | 0表示立即capture; -1表示手动capture,调用统一下单API成功之后还需要调用下预授权请款: /notes/zh/checkout/api/modifications/capture/ ,本地支付不支持; | | └─ timeExpire | string | O | 关单时间。3分钟到10天(低于3分钟默认取3分钟,高于10天默认取10天)时间戳格式,单位:秒,示例值:1683530496 | | └─ amount | string | M | 交易金额,精确位数和币种有关,请查询附录交易币种: /notes/zh/appendix/transactionCurrency/。根据交易合规需要,该金额需等于商品金额总和 | | └─ currency | string | M | 交易币种,ISO 4217 三位币种,具体支持币种⻅附录交易币种: /notes/zh/appendix/transactionCurrency/ | | └─ merchantTransactionId | string | M | 商户网站订单流水号,订单唯一标识,可用于后续订单查询和对账 | | └─ payResultUrl | string | C | 商户自定义接收重定向的结果URL; 3DS验证,银行在线转账或虚拟钱包之类支付方式时,最后需要重定向到商户指定的⻚面地址 | | └─ merchantRequestBillDescriptor | string | O | 商家自定义动态名,不同渠道侧会做适当截取(只支持英文和数字) | | └─ bizType | string | C | `CardOnFile` 交易模式标识。无论 Hosted 还是 Non-Hosted,首笔绑卡并支付且需按 `CardOnFile` 交易模式处理时传固定值 `CardOnFile`;若首次生成 token 时传入了该值,则后续使用该 token 复购时也需继续传入。普通保存卡交易或仅校验卡号/卡要素时无需传此参数(使用这个值请联系技术支持) | | └─ merchantUserId | string | C | 保存卡/记住卡号、CardOnFile 或 CodeGrant 模式必传 保存卡/记住卡号:商户网站的持卡人 ID,全局唯一,用于标识对应持卡人身份并关联其已保存卡信息,游客模式或不存在的情况传`null`; CardOnFile:商户网站的持卡人 ID,全局唯一,用于标识对应持卡人身份并关联其已保存卡信息,游客模式或不存在的情况传`null`; CodeGrant:会员ID,用户在商户网站的会员ID; | | └─ createToken | string | C | Y/N,是否创建token。用于控制本次支付成功后是否生成可复用的支付凭证。Non-Hosted 首笔保存卡并需生成支付凭证时传 `Y`;后续使用已有 token 复购时无需再传此字段 | | └─ token | string | C | 业务凭证 token。根据不同类型传入对应值 CardOnFile:保存卡成功后返回的支付凭证;若首笔交易按 `CardOnFile` 交易模式处理,则后续使用该 token 复购时也需继续传 `bizType=CardOnFile`; CodeGrant:签约或授权完成后获取的业务凭证 token; | | └─ notificationUrl | string | O | 由商户自定义本次交易结果通知的地址,一旦填写该参数,PingPongCheckout 将通过 Post 方式异步推送交易结果到该地址 | | └─ closeNotificationUrl | string | O | 由商户自定义本次关单结果通知的地址,一旦填写该参数,PingPongCheckout 将通过 Post 方式异步推送关单结果到该地址 | | └─ requestId | string | M | 唯一请求号,全局唯一 | | └─ remark | string | O | 商户扩展字段,可用于指定特定参数,会在响应体中原样返回 | | └─ tradeCountry | string | O | 用于指定pingpong收银台国家,默认取pingpong侧支持的国家 | | └─ merchantSource | string | C | 建站平台标识,建站平台接入必传。作用是标识这笔交易的是从哪个建站平台发起的( 备注:非建站平台无需上送此参数,如需传此参数需要联系PP技术支持进行确认 ) | | └─ shopperIP | string | M | 用户下单IP,支持 IPv4 格式 | | └─ language | string | O | 用于指定pingpong收银台语言, 不传默认为en。详见附录收银台支持语言列表: /notes/zh/appendix/languageCode/ | | └─ threeDSRequestData | string | C | 3DS验证请求参数。详见3DS集成指南: /notes/zh/risk/3ds/ | | └─ └─ executeThreeD | string | C | 3ds验证执行策: Y-强制进行3ds验证,并且使用PingPongCheckout的3ds; depends-是否进行3ds验证交由PingPongCheckout的风控决策决定; external-需要进行3ds验证,但3ds参数有商户自行收集,交由PingPong执行。备注:此选项不适用于收银台; | | └─ └─ authenticationValue | string | C | 发卡行在客户身份验证后为Visa、American Express、JCB、Diners Club和Discover交易生成的唯一标识符。原始数据以base64为单位。需要将值转换为格式。 | | └─ └─ acsTransactionId | string | C | 由ACS分配的唯一事务标识符,用于标识单个事务。 | | └─ └─ veresEnrolled | string | C | 注册检查的结果。此字段可以包含以下值之一: Y-卡已注册或可注册;您必须进行身份验证。责任转移。; N-未登记卡;进行授权。责任转移。; U-无论何种原因,都无法进行身份验证。没有责任转移; | | └─ └─ specificationVersion | string | C | 此字段包含用于处理事务的3D Secure版本。例如,1.0.2或2.0.0。 | | └─ └─ directoryServerTransactionId | string | C | 目录服务器交易ID由万事达目录服务器在认证交易期间生成,并与认证结果一起传递回商家。 | | └─ └─ threeDSServerTransactionId | string | C | 3DS服务器分配的唯一事务标识符,用于标识单个事务。 | | └─ └─ paresStatus | string | C | 身份验证检查的原始结果。此字段可以包含以下值之一: A-已生成身份验证尝试的证明。; N-客户身份验证失败或取消。交易被拒绝。; U-无论何种原因,身份验证都未完成。; Y-客户已成功通过身份验证。; | | └─ └─ eci | string | C | 对于验证,仅为Visa、American Express、JCB返回数字电子商务指示符(ECI)Diners Club和Discover交易。身份验证失败时缺少字段。此字段包含以下值之一: 01-尝试身份验证(万事达卡); 02-认证成功(万事达卡); 05-Successful authentication (Visa, American Express, JCB, UNION PAY, Diners Club, and Discover); 06-尝试身份验证(Visa、American Express、JCB、Diners Club和Discover); | | └─ paymentMethod | object | M | 要使用的付款方式的类型和所需的详细信息。 | | └─ └─ type | string | M | 付款方式: scheme 国际信用卡支付; 本地支付方式 可选值:Non-Hosted支持的APM: /notes/zh/paymentMethods/overview/; 固定传入:networkToken,如果用卡组的token必传; | | └─ └─ scanCodeId | string | C | 付款代码客户手机钱包客户端生成的支付代码。通常以条形码或QR码的形式显示。商户终端扫描客户的手机屏幕获取代码 | | └─ └─ cardInfo | object | C | 持卡人信息,信用卡支付,并且不使用绑卡情况必填 | | └─ └─ └─ number | string | M | 国际信用卡卡号 | | └─ └─ └─ pin | string | O | 本地卡密码前两位 | | └─ └─ └─ holderFirstName | string | M | 持卡人名,字符类型,不含特殊符号 | | └─ └─ └─ holderLastName | string | M | 持卡人姓,字符类型,不含特殊符号 | | └─ └─ └─ expireMonth | string | M | 有效期-月,2位数字 | | └─ └─ └─ expireYear | string | M | 有效期-年,4位数字 | | └─ └─ └─ cvv | string | M | 信用卡CVV,Visa/MasterCard/JCB/Discover/Diners club的cvv字符长度均为三位,American Express的cvv字符长度可能为四位 | | └─ └─ └─ schemeTokenValue | string | C | 卡组的token,如果用卡组的token必传 | | └─ └─ └─ paymentBrand | string | C | 卡品牌,如果用卡组的token必传,可选值为visa/MasterCard | | └─ └─ └─ tokenCryptogram | string | C | 加密的数值字符串,用于验证卡片和终端之间的交易数据。如果用卡组的token必传 | | └─ └─ iban | string | O | 特定支付方式必传,国际银行支付账号 | | └─ └─ ovoId | string | O | 钱包ID | | └─ └─ customerKanjiFirstName | string | O | 客户的名字,以汉字表示 | | └─ └─ customerKanjiLastName | string | O | 客户的姓氏,以汉字表示 | | └─ └─ customerKatakanaFirstName | string | O | 客户的名字,以片假名表示 | | └─ └─ customerKatakanaLastName | string | O | 客户的姓氏,以片假名表示 | | └─ └─ companyName | string | O | 公司名称 | | └─ └─ applePay | object | C | 当选择支付方式 type 为 ApplePay 的情况下必传 | | └─ └─ └─ applePayTokenData | object | C | 加密参数,applePay 交易返回的 paymentToken | | └─ └─ └─ └─ version | string | M | 版本信息,表示加密协议的版本。例如 "EC_v1" | | └─ └─ └─ └─ data | string | M | 基于 Base64 编码的加密数据,包含实际的支付信息 | | └─ └─ └─ └─ signature | string | M | 基于 Base64 编码的签名,用于验证支付数据的完整性和来源的真实性 | | └─ └─ └─ └─ header | object | M | 包含与加密相关的元数据 | | └─ └─ └─ └─ └─ ephemeralPublicKey | string | M | 基于 Base64 编码的临时公钥,用于加密交易信息 | | └─ └─ └─ └─ └─ publicKeyHash | string | M | 基于 Base64 编码的公钥哈希,用于验证商户的公钥 | | └─ └─ └─ └─ └─ transactionId | string | M | 唯一的交易标识符,用于标识该支付交易 | | └─ └─ └─ applePayTokenDecryptionData | object | C | 解密参数,applePay 交易返回的 paymentToken | | └─ └─ └─ └─ cardToken | string | M | applepay解密后的虚拟卡号-applicationPrimaryAccountNumber | | └─ └─ └─ └─ expirationDate | string | M | 过期时间 YYMMDD-applicationExpirationDate | | └─ └─ └─ └─ cardholderName | string | O | 持卡人姓名-cardholderName | | └─ └─ └─ └─ paymentDataType | string | M | 枚举: EMV 、 3DSecure | | └─ └─ └─ └─ paymentData | object | M | applePay 交易返回的 paymentToken | | └─ └─ └─ └─ └─ onlinePaymentCryptogram | string | O | paymentDataType:3DSecure时 -paymentData.onlinePaymentCryptogram(paymentDataType:3DSecure时必填) | | └─ └─ └─ └─ └─ eciIndicator | string | O | 3ds eci-- paymentDataType:3DSecure时 paymentData.eciIndicator(paymentDataType:3DSecure时必填) | | └─ └─ └─ └─ └─ emvData | string | O | paymentDataType:emv时- paymentData.emvData(paymentDataType:emv时必填) | | └─ └─ └─ └─ └─ encryptedPINData | string | O | paymentDataType:emv时- paymentData.encryptedPINData(paymentDataType:emv时必填) | | └─ └─ googlePay | object | C | 当选择支付方式 type 为 GooglePay 的情况下必传 | | └─ └─ └─ googleEncryptToken | object | C | googlepay获取到的加密卡信息 | | └─ └─ └─ googlePayTokenDecryptionData | object | C | googlepay解密的卡信息 | | └─ └─ └─ └─ gatewayMerchantId | string | O | google 解密后消息体中的gatewayMerchantId | | └─ └─ └─ └─ messageId | string | O | google 解密后消息体中的messageId | | └─ └─ └─ └─ messageId | string | O | google 解密后消息体中的messageId | | └─ └─ └─ └─ paymentMethod | string | O | google 解密后消息体中的paymentMethod | | └─ └─ └─ └─ paymentMethodDetails | object | M | google 解密后消息体中的paymentMethodDetails | | └─ └─ └─ └─ └─ authMethod | string | M | google 解密后消息体中的authMethod | | └─ └─ └─ └─ └─ expirationMonth | string | M | google 解密后消息体中的expirationMonth | | └─ └─ └─ └─ └─ expirationYear | string | M | google 解密后消息体中的expirationYear | | └─ └─ └─ └─ └─ pan | string | M | google 解密后消息体中的pan | | └─ └─ └─ └─ └─ assuranceDetails | object | O | google 解密后消息体中的assuranceDetails | | └─ └─ └─ └─ └─ └─ accountVerified | string | M | google 解密后消息体中的accountVerified | | └─ └─ └─ └─ └─ └─ cardHolderAuthenticated | string | M | google 解密后消息体中的cardHolderAuthenticated | | └─ jsGeneratedData | string | C | 卡支付必须接入风控组件, 卡支付需要传, 若获取失败,可传空字符串,不阻塞支付流程。 通过嵌入pingpong提供的风控组件,获取浏览器相关信息的json字符串,传到这个参数中。使用⻛控插件对接的商户使用,详见3DS集成指南: /notes/zh/risk/3ds/ | | └─ customer | object | C | 客户信息。虚拟数娱行业非必传 | | └─ └─ firstName | string | C | 用户名称 | | └─ └─ lastName | string | C | 用户姓氏 | | └─ └─ email | string | C | 用户邮箱 | | └─ └─ phone | string | C | 用户联系电话 | | └─ └─ birthDate | string | C | 出生日期,格式为YYYY-MM-DD | | └─ └─ identificationType | string | C | 用户身份证件类型(特定国家需要,如墨西哥) | | └─ └─ identificationId | string | C | 用户身份证件号码(特定国家需要,如墨西哥) | | └─ └─ phoneCountryCode | string | C | 电话号码的国家代码或国际区号(不需要加特殊符号) | | └─ shippingAddress | object | C | 送货地址信息,虚拟商品可以不填 | | └─ └─ street | string | M | 收货人街道地址 | | └─ └─ postcode | string | M | 邮政编码 | | └─ └─ city | string | M | 收货人城市 | | └─ └─ state | string | M | 收货人省份,美国加拿大地区传二字码,部分地区没有省份可以不填,详见 《国家代码》 | | └─ └─ country | string | M | 收货人国家,(ISO二字码)⻅附录 《国家代码》 ,人⺠币提现商户必填 | | └─ └─ district | string | C | 收货人所属区/县 | | └─ └─ shippingFee | string | C | 运费 | | └─ billingAddress | object | M | 账单信息 | | └─ └─ street | string | M | 账单人街道地址 | | └─ └─ postcode | string | M | 邮政编码 | | └─ └─ city | string | M | 账单人城市 | | └─ └─ state | string | M | 账单人省份,美国加拿大地区传二字码,部分地区没有省份可以不填 | | └─ └─ district | string | C | 账单人所属区/县 | | └─ └─ country | string | M | 账单人国家, (ISO 二字码)⻅附录 《国家代码》: /notes/zh/appendix/countryCode/ | | └─ browserInfo | object | C | 浏览器信息, 当支付方式为卡支付时必传 | | └─ └─ windowSize | string | C | 窗口大小: 01-250x400 02-390x400 03-500x600 04-600x400 05 - Full screen | | └─ └─ acceptHeader | string | C | http响应头信息, 示例值: text/html, application/xhtml+xml, application/xml; q=0.9, image/webp, image/apng, *; q=0.8 | | └─ └─ colorDepth | string | C | 窗口颜色, 获取浏览器screen.colorDepth 示例值: 32 | | └─ └─ screenHeight | integer | C | 窗口高度 | | └─ └─ jetLag | string | C | UTC时间和持卡人浏览器本地时间之间的时差,以分钟为单位。 | | └─ └─ userAgent | string | C | 浏览器用户代理信息 示例值:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36 | | └─ └─ screenWidth | integer | C | 屏幕宽度(单位:像素) | | └─ └─ javaEnabled | boolean | C | 持卡人终端是否能够执行Java。 | | └─ └─ javaScriptEnabled | boolean | C | 指示购物者的浏览器是否能够执行JavaScript。如果字段不存在,则假定为默认 的 true 值。 | | └─ device | object | M | 设备信息,accessModel取值,可以不填 | | └─ └─ orderTerminal | string | M | 01-移动端浏览器(app); 02-PC端浏览器(pc); 04-SDK(ios); 05-SDK(Android); | | └─ subOrderList | array | C | 子商户信息明细 | | └─ └─ subMerchantId | string | M | 商户平台的子商户号 | | └─ └─ subMerchantTransactionId | string | M | 子商户订单号,子订单唯一标识 | | └─ └─ amount | string | M | 子订单金额 | | └─ └─ subMerchantName | string | O | 子商户主体名称 | | └─ └─ businessIdentityNumber | string | O | 子商户营业执照编号 | | └─ └─ subMerchantStoreUrl | string | M | 店铺链接 | | └─ └─ subMerchantCountry | string | M | 子商户主体所属国家 | | └─ └─ subMerchantAddress | string | O | 子商户主体地址 | | └─ └─ subMerchantMcc | string | M | 商户经营主类目,MCC编码 | | └─ └─ subMerchantBrand | string | O | 商户经营品牌 | | └─ └─ goods | array | M | 商品信息 | | └─ └─ └─ name | string | M | 商品名称 | | └─ └─ └─ unitPrice | string | M | 商品单价 | | └─ └─ └─ quantity | string | M | 商品数量 | | └─ └─ └─ imgUrl | string | O | 商品主图链接 | | └─ └─ └─ mcc | string | O | 商品类别,MCC编码 | | └─ └─ └─ virtualProduct | string | O | 是否是虚拟产品,虚拟商品(Y/N) | ### 请求示例 ```json { "accId": "2018092714313010016291", "clientId": "2018092714313010016", "signType": "SHA256", "sign": "898A3CBE981B3E2BF4E2B8D1A817D7E23EF93BC4293993EE545E36F4C87F2E79", "version": "1.0", "bizContent": "{\"timeExpire\":\"\",\"tradeCountry\":\"\",\"paymentMethods\":[],\"threeDSRequestData\":{\"executeThreeD\":\"\",\"authenticationValue\":\"\",\"acsTransactionId\":\"\",\"veresEnrolled\":\"\",\"specificationVersion\":\"\",\"directoryServerTransactionId\":\"\",\"threeDSServerTransactionId\":\"\",\"paresStatus\":\"\",\"eci\":\"\"},\"browserInfo\":{\"acceptHeader\":\"content-type=application/x-www-form-urlencoded;accept=*/*;cache-control=no-cache;postman-token=cf489264-5378-4d5d-a86c-72c86a408c03;accept-encoding=gzip, deflate;content-length=588;connection=keep-alive;\",\"colorDepth\":\"32\",\"jetLag\":\"480\",\"screenHeight\":\"1980\",\"screenWidth\":\"1080\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 Chrome/72.0.3626.121 Safari/537.36\",\"windowSize\":\"05\",\"javaEnabled\":\"true\",\"javaScriptEnabled\":\"true\"},\"device\":{\"fingerprintId\":\"\",\"orderTerminal\":\"01\"},\"jsGeneratedData\":{\"fingerprintId\":\"2018092714313010016549_PP20210608151727OB\",\"forterSiteId\":\"e088dda90c4e\",\"forterTokenCookie\":\"c3402ed6f84d4c50add3458a1ce51d60_1623137756842_87_UDF43_11ck\",\"orderTerminal\":\"03\",\"threeDSServerTransID\":\"\"},\"shopperIP\":\"222.126.52.24\",\"captureDelayHours\":0,\"language\":\"en\",\"airline\":{\"adultsNumber\":\"1\",\"aircraftCabinType\":\"FIRST CLASS\",\"airlineCompanyID\":\"CA006\",\"airlinePnr\":\"{dhsalh}\",\"arrivalCity\":\"Adm\",\"arrivalCountry\":\"DK\",\"arrivalTime\":\"201912012010\",\"arrivalTimezone\":\"UTC+8\",\"babyNumber\":\"0\",\"bestFare\":\"Y\",\"bookChannel\":\"Y\",\"changedTakeoffTime\":\"\",\"childrenNumber\":\"0\",\"connectingCity\":\"\",\"connectionTicket\":\"N\",\"contactEmail\":\"123456@gmail.com\",\"contactName\":\"James LeBron\",\"contactPhone\":\"3055787342\",\"flightNumber\":\"CA006122\",\"freeChange\":\"Y\",\"frequentFlyerNumber\":\"CA00612254651B\",\"haveChanged\":\"N\",\"hotel\":{\"bookNumber\":\"1\",\"bookRange\":\"2\",\"checkInDate\":\"201912010020\",\"city\":\"Adm\",\"country\":\"DK\",\"customerName\":\"James LeBron\",\"name\":\"AdmHotel\",\"refundPolicy\":\"FREE CANCELLATION\",\"star\":\"5\"},\"ifConnectingFlight\":\"N\",\"ifRoundtripFlight\":\"Y\",\"insurance\":\"Y\",\"leaveRange\":\"Y\",\"passengers\":[{\"birthday\":\"1991120\",\"firstName\":\"James\",\"identificationId\":\"331081199112012361\",\"identificationType\":\"ID\",\"lastName\":\"LeBron\",\"nationality\":\"US\",\"phone\":\"3055787342\"}],\"productType\":\"TICKET\",\"routeType\":\"SINGLE\",\"takeoffCity\":\"Birmingham\",\"takeoffCountry\":\"US\",\"takeoffTime\":\"201912012010\",\"takeoffTimezone\":\"UTC+8\",\"thirdPartyBook\":\"N\",\"tripType\":\"SINGLE\",\"valueAdded\":\"N\"},\"amount\":\"100\",\"billingAddress\":{\"city\":\"Birmingham\",\"country\":\"US\",\"postcode\":\"35222\",\"state\":\"AL\",\"street\":\"1986 Broad Street\"},\"carRental\":{\"childrenNumber\":\"1\",\"discountAmount\":\"120\",\"discountType\":\"15%\",\"email\":\"t_email\",\"firstName\":\"James\",\"identificationId\":\"331081199112012361\",\"identificationType\":\"ID\",\"insuranceLimit\":\"8000\",\"insuranceType\":\"RS\",\"lastName\":\"Lebron\",\"model\":\"SUV\",\"nationality\":\"US\",\"personNumber\":\"3\",\"phone\":\"3055787342\",\"purchasedInsurance\":\"Y\",\"rentCity\":\"Birmingham\",\"rentCountry\":\"US\",\"rentTime\":\"201912200320\",\"rentalCompany\":\"US\",\"returnCity\":\"Birmingham\",\"returnCountry\":\"US\",\"returnTime\":\"201201200320\"},\"currency\":\"USD\",\"customer\":{\"email\":\"t_email\",\"firstName\":\"James\",\"lastName\":\"LeBron\",\"identificationId\":\"\",\"identificationType\":\"ID\",\"phone\":\"3055787343\",\"birthDate\":\"\"},\"eCommerce\":{\"freeShipping\":\"N\",\"shippingMethod\":\"SEA\",\"shippingFee\":\"\"},\"goods\":[{\"description\":\"short legs\",\"imgUrl\":\"http://pic.bizhi360.com/bpic/30/5230.jpg\",\"name\":\"corgi\",\"number\":\"1\",\"sku\":\"20230524001\",\"unitPrice\":\"22\",\"virtualProduct\":\"N\"},{\"description\":\"stupid nerd\",\"imgUrl\":\"http://d.paper.i4.cn/max/2016/12/08/11/1481166973148_375716.jpg\",\"name\":\"husky\",\"number\":\"1\",\"sku\":\"20230524002\",\"unitPrice\":\"22\",\"virtualProduct\":\"N\"}],\"merchantTransactionId\":\"t_merchantno\",\"merchantUserId\":\"12604896051315\",\"notificationUrl\":\"https://test-acquirer-payment.pingpongx.com/qa/notify\",\"payCancelUrl\":\"https://test-acquirerpay.pingpongx.com/qa/cancel.html\",\"payResultUrl\":\"https://test-acquirerpay.pingpongx.com/qa/result.html\",\"reCharge\":{\"accountId\":\"775330\",\"accountName\":\"von\",\"gameCategory\":\"OTHERS\",\"gameName\":\"Over Watched\",\"gameTerminal\":\"PC\",\"platformCategory\":\"N\",\"serverCountry\":\"US\",\"type\":\"GAME RECHARGE\"},\"remark\":\"Remark customer defined txt\",\"requestId\":\"t_merchantno\",\"shippingAddress\":{\"city\":\"Miami\",\"country\":\"US\",\"postcode\":\"33131\",\"state\":\"FL\",\"street\":\"701 Brickell Avenue, Suite 2700\"}}" } ``` ## 响应参数 | 参数名 | 类型 | 说明 | |--------|------|------| | accId | string | 店铺唯一标识 | | clientId | string | PingPong 商户号 | | signType | string | 支持 MD5 、 SHA256 ,具体⻅本文签名规约: /notes/zh/onlinePayment/developer/sign/一栏 | | sign | string | 签名,具体⻅本文签名规约: /notes/zh/onlinePayment/developer/sign/,所有参数均参与签名 | | code | string | 结果状态码,见附录状态码表: /notes/zh/appendix/successCodeList/ | | description | string | 结果描述 | | bizContent | string | 业务响应参数。该字段内容为 JSON 字符串,反序列化后的结构见 contentSchema。 | | └─ transactionId | string | PingPong 交易流水号 | | └─ merchantTransactionId | string | 网站交易流水号 | | └─ amount | string | 交易金额,精确位数和币种有关,请查询附录交易币种: /notes/zh/appendix/transactionCurrency/ | | └─ transactionTime | string | 交易发起时间,时间戳 | | └─ transactionEndingTime | string | 交易到达终态时间,时间戳 | | └─ currency | string | 交易币种,ISO 4217 三位币种,具体支持币种⻅附件交易币种: /notes/zh/appendix/transactionCurrency/ | | └─ status | string | 交易状态:状态幂等: /notes/zh/guide/paystatus/ SUCCESS-成功; FAILED-失败; PROCESSING-进行中; | | └─ remark | string | 商户扩展字段,可用于指定特定参数,会在响应体中原样返回 | | └─ requestId | string | 唯一请求号,全局唯一 | | └─ issuerInfo | object | 银行返回信息 | | └─ └─ issuerResultCode | string | 银行返回编码 | | └─ └─ issuerResultMsg | string | 银行返回信息描述 | | └─ exchangedAmount | string | 换汇金额 | | └─ exchangedCurrency | string | 换汇币种 | | └─ token | string | 保存卡成功后返回的支付凭证,可用于后续基于 token 的支付场景。若首笔交易按 `CardOnFile` 交易模式处理,后续使用该 token 支付时也需继续传 `bizType=CardOnFile`。详见接入概览与方案选择: /notes/zh/integrate/tokenization/cardOnFileOverview/ | | └─ captureDelayHours | integer | 0表示立即capture; -1表示手动capture,调用统一下单API成功之后还需要调用下预授权请款: /notes/zh/checkout/api/modifications/capture/ ,本地支付不支持; | | └─ payResultUrl | string | 商户自定义接收重定向的结果URL; 3DS验证,银行在线转账或虚拟钱包之类支付方式时,最后需要重定向到商户指定的⻚面地址 | | └─ threeDContinue | string | 是否需要 3DS (验证处理使用⻛控插件对接的商户使用): true:是; false:否; | | └─ threeDUnionParams | object | 3DS 验证参数集合,当交易需要 3DS 验证处理的时 候,将该参数的返回值传入 PingPong 提供的插件 js指定的函数中(使用⻛控插件对接的商户使用) | | └─ paymentMethod | object | 要使用的付款方式的类型和所需的详细信息。 | | └─ └─ type | string | 付款方式: scheme 国际信用卡支付; 本地支付方式 可选值:Non-Hosted支持的APM: /notes/zh/paymentMethods/overview/; | | └─ action | object | 要使用的付款方式的类型和所需的详细信息。 | | └─ └─ type | string | 本地支付方式·结果类型: QR_CODE-二维码字符串,需要手动转换为二维码; QR_URL-图片http协议URL或者base64图片; PAYMENT_REDIRECT_URL-跳转链接; | | └─ └─ qrCode | string | 本地支付方式·二维码字符串,需要手动转换为二维码 | | └─ └─ qrUrl | string | 本地支付方式·可能为图片http协议URL或者base64图片 | | └─ └─ paymentRedirectUrl | string | 本地支付方式·支付交易跳转链接 | | └─ cardInfo | object | 支付信用卡信息 | | └─ └─ cardLevel | string | 卡交易·卡级别 | | └─ └─ cardType | string | 卡交易·卡类型,枚举值: DEBIT; CREDIT; CHARGE; CARD; | | └─ └─ firstName | string | 持卡人名称,字符类型,不含特殊符号 | | └─ └─ lastName | string | 持卡人姓,字符类型,不含特殊符号 | | └─ └─ firstSixDigits | string | 卡号前6位 | | └─ └─ lastFourDigits | string | 卡号后4位 | | └─ └─ ipCountry | string | 用户交易国家 | | └─ └─ isoCountry | string | 发卡行国家 | | └─ └─ issuringBank | string | 发卡行 | | └─ └─ isoCountryA2 | string | 国家二字码,符合iso3166标准 | | └─ └─ paymentBrand | string | 卡交易·卡品牌:VISA / Mastercard / American Express/ JCB / Discover | ### 响应示例 ```json { "accId": "2023082916070710253541", "bizContent": "{\"issuerInfo\":{\"issuerResultMsg\":\"Approved or completed successfully\",\"issuerResultCode\":\"00\"},\"remark\":\"Remark customer defined txt\",\"transactionTime\":\"1714978654000\",\"requestId\":\"PMT-LUC4VOQM381714978651450\",\"merchantTransactionId\":\"PMT-LUC4VOQM381714978651450\",\"currency\":\"USD\",\"exchangedAmount\":\"100\",\"exchangedCurrency\":\"USD\",\"amount\":\"100.000000\",\"authenticationInfo\":{\"avsResult\":\"Unknown\",\"cvvResult\":\"Y\",\"threeDSecure\":\"N\"},\"cardInfo\":{\"firstName\":\"James\",\"isoCountryA2\":\"BE\",\"lastName\":\"LeBron\",\"lastFourDigits\":\"1002\",\"cardLevel\":\"\",\"paymentBrand\":\"MASTERCARD\",\"cardType\":\"CREDIT\",\"issuringBank\":\"\",\"firstSixDigits\":\"520474\",\"isoCountry\":\"BELGIUM\"},\"transactionEndingTime\":\"1714978655669\",\"threeDUnionParams\":{\"threeDContinue\":\"false\"},\"transactionId\":\"2024050650046394\",\"threeDContinue\":\"false\",\"paymentMethod\":{\"type\":\"scheme\"},\"captureDelayHours\":0,\"status\":\"SUCCESS\"}", "clientId": "2023082916070710253", "code": "000000", "description": "Transaction succeeded", "sign": "EFDF7C80DAD9EBB13C29E38D7A5BD57899E7C0B7C7414A45F718240381299B56", "signType": "SHA256" } ```