--- url: >- https://acquirer-api-docs-v4-en.pingpongx.com/en/notes/api/services/marketplaces/mpUniformly/index.md description: >- Marketplaces Direct API provides payment solutions in non-hosted mode. Suitable for e-commerce platforms that wish to directly manage payment processes, supports card payments and requires integration of risk control components to ensure transaction security. This API allows merchants to customize payment interfaces while strictly adhering to relevant security specifications. --- # Direct API ```apidef endpoint: POST /v4/payment/marketplace/unifiedPay name: Marketplaces Direct API (Non-Hosted Mode) ``` Marketplaces Direct API provides payment solutions in non-hosted mode. Suitable for e-commerce platforms that wish to directly manage payment processes, supports card payments and requires integration of risk control components to ensure transaction security. This API allows merchants to customize payment interfaces while strictly adhering to relevant security specifications. ## Request Parameters | Parameter | Type | Required | Description | |--------|------|------|------| | accId | string | M | Unique identifier for the store, which will appear in the response message after creation; inputting it means modifying the data | | clientId | string | M | PingPong Merchant ID | | signType | string | M | Supports MD5 , SHA256; for details, see the Signature Specification: /en/notes/guide/sign/ section of this document | | sign | string | M | Signature; for details, see the Signature Specification: /en/notes/guide/sign/ section of this document. All parameters participate in the signature | | version | string | M | Version number, currently fixed at 1.0, may be adjusted with changes to the interface in the future | | bizContent | string | M | Collection of request parameters, with no limit on maximum length. Except for common request parameters, all other request parameters must be passed within this parameter, format: JSON string | | └─ 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` transaction mode identifier. Pass the fixed value `CardOnFile` when the first bind-and-pay transaction needs to be processed as `CardOnFile`; if this value was passed when the token was first created, it must also be passed in subsequent repeat purchases using that token. Do not pass this parameter for regular saved-card transactions or when only verifying card details (please contact technical support to use this value) | | └─ merchantUserId | string | C | Required for CardOnFile or CodeGrant mode CardOnFile: Cardholder ID on the merchant's website, globally unique, used to identify the cardholder and associate stored card information. Pass `null` for guest mode or if it doesn't exist; CodeGrant: Member ID, the user's member ID on the merchant's website; | | └─ createToken | string | C | Y/N, whether to create a token. This field controls whether a reusable payment credential is generated after the current payment succeeds. In Non-Hosted mode, pass `Y` when the first saved-card payment needs to generate a payment credential. Do not pass this field again when making repeat purchases with an existing token | | └─ token | string | C | Business credential token. Pass the corresponding token value by type CardOnFile: The payment credential returned after successfully saving the card; if the first transaction was processed in `CardOnFile` mode, subsequent repeat purchases using this token must also continue to pass `bizType=CardOnFile`; CodeGrant: The business credential token obtained after signing or authorization is completed; | | └─ notificationUrl | string | O | Custom transaction result notification address defined by the merchant. Once this parameter is filled, PingPongCheckout will asynchronously push the transaction result to this address via Post method | | └─ closeNotificationUrl | string | O | Custom order closing result notification address defined by the merchant. Once this parameter is filled, PingPongCheckout will asynchronously push the closing result to this address via Post method | | └─ requestId | string | M | Unique request number, globally unique | | └─ remark | string | O | Merchant extension field, can be used to specify specific parameters, will be returned as is in the response body | | └─ tradeCountry | string | O | Used to specify the PingPong checkout counter country, defaults to the countries supported by PingPong | | └─ merchantSource | string | C | Website platform identifier, required for website platform access. Its purpose is to identify which website platform initiated this transaction ( Note: Non-website platforms do not need to send this parameter. If this parameter needs to be sent, please contact PP technical support for confirmation ) | | └─ shopperIP | string | M | User's order IP, supports IPv4 format | | └─ language | string | O | Used to specify the PingPong checkout language, defaults to en if not passed. See appendix Supported Checkout Languages List: /en/notes/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 | Browser information, required for card payments . | | └─ └─ 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) | ### Request Example ```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\"}}" } ``` ## Response Parameters | Parameter | Type | Description | |--------|------|------| | accId | string | Unique store identifier, which will appear in the response message after being added; inputting it means modifying the data | | clientId | string | PingPong merchant number | | signType | string | Supports MD5 , SHA256; for details, see the Signature Specification: /en/notes/guide/sign/ section of this document | | sign | string | Signature; for details, see the Signature Specification: /en/notes/guide/sign/ section of this document. All parameters participate in the signature | | code | string | Result status code, see the appendix Status Code Table: /en/notes/appendix/successCodeList/ | | description | string | Result description | | bizContent | string | Business response parameters | | └─ transactionId | string | PingPong transaction number | | └─ merchantTransactionId | string | Website transaction number | | └─ amount | string | Transaction amount, the precision and currency type are related, please refer to the appendix Transaction Currencies: /en/notes/appendix/transactionCurrency/ | | └─ transactionTime | string | Transaction initiation time, timestamp | | └─ transactionEndingTime | string | Time when the transaction reaches its final state, timestamp | | └─ currency | string | Transaction currency, ISO 4217 three-letter code, for supported currencies see attachment Transaction Currencies: /en/notes/appendix/transactionCurrency/ | | └─ status | string | Transaction status: Idempotent Status: /notes/zh/guide/paystatus/ SUCCESS - Success; FAILED - Failed; PROCESSING - In progress; | | └─ remark | string | Merchant extended fields, can be used to specify specific parameters, will be returned as is in the response body | | └─ requestId | string | Unique request number, globally unique | | └─ issuerInfo | object | Bank return information | | └─ └─ issuerResultCode | string | Bank return code | | └─ └─ issuerResultMsg | string | Bank return message description | | └─ exchangedAmount | string | Exchange amount | | └─ exchangedCurrency | string | Exchange currency | | └─ token | string | The payment credential returned after successfully saving the card, which can be used for subsequent token-based payment scenarios. If the first transaction was processed in `CardOnFile` mode, subsequent payments using this token must also continue to pass `bizType=CardOnFile`. See Saved Cards and CardOnFile Overview: /en/notes/onlinePayment/features/tokenization/cardOnFileOverview/ | | └─ captureDelayHours | integer | 0 indicates immediate capture; -1 indicates manual capture, after successfully calling the unified order API, you also need to call Pre-Authorization Capture: /notes/zh/checkout/api/modifications/capture/, local payments do not support this; | | └─ payResultUrl | string | Merchant-defined URL for receiving redirect results; for 3DS verification, bank online transfer, or virtual wallet payment methods, it finally needs to redirect to the merchant-specified page address | | └─ threeDContinue | string | Whether 3DS (verification processing using risk control plugin) is required: true: Yes; false: No; | | └─ threeDUnionParams | object | 3DS verification parameter set, when the transaction requires 3DS verification, pass the return value of this parameter into the function specified by the PingPong provided plugin js (used by merchants using the risk control plugin) | | └─ paymentMethod | object | Type and required details of the payment method to be used. | | └─ └─ type | string | Payment method: scheme International credit card payment; Local payment options: Non-Hosted supported APMs: /en/notes/paymentMethods/overview/; | | └─ action | object | Type and required details of the payment method to be used. | | └─ └─ type | string | Local payment result type: QR_CODE - QR code string, needs to be manually converted into a QR code; QR_URL - Image HTTP protocol URL or base64 image; PAYMENT_REDIRECT_URL - Redirect link; | | └─ └─ qrCode | string | Local payment QR code string, needs to be manually converted into a QR code | | └─ └─ qrUrl | string | Local payment may be an image HTTP protocol URL or base64 image | | └─ └─ paymentRedirectUrl | string | Local payment transaction redirect link | | └─ cardInfo | object | Credit card information for payment | | └─ └─ cardLevel | string | Card transaction - card level | | └─ └─ cardType | string | Card transaction - card type, enumeration values: DEBIT; CREDIT; CHARGE; CARD; | | └─ └─ firstName | string | Cardholder name, character type, no special symbols | | └─ └─ lastName | string | Cardholder surname, character type, no special symbols | | └─ └─ firstSixDigits | string | First 6 digits of the card number | | └─ └─ lastFourDigits | string | Last 4 digits of the card number | | └─ └─ ipCountry | string | User's transaction country | | └─ └─ isoCountry | string | Issuing bank country | | └─ └─ issuringBank | string | Issuing bank | | └─ └─ isoCountryA2 | string | Two-letter country code, compliant with iso3166 standard | | └─ └─ paymentBrand | string | Card transaction - card brand: VISA / Mastercard / American Express/ JCB / Discover | ### Response Example ```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" } ``` ## Notes Card payments under Direct API mode must integrate risk control components