26 KiB
26 KiB
接口应在服务端调用,不可在前端(小程序、网页、APP等)直接调用。具体可参考接口接入指南。
接口英文名:PaymentResultQuery
该接口用于查询支付交易订单的支付结果。支持微信、支付宝、云闪付、数字货币等支付交易订单进行查询。
1、调用方式
HTTPS调用
POST <font style="color:rgb(52,64,84);">/api/app/payOreder/PaymentResultQuery</font>
2、请求参数
请求体 <font style="color:rgb(34, 34, 34);">Request Payload</font>
| 参数名 | 类型 | 必填 | 字段长度 | 说明 |
|---|---|---|---|---|
| service | string | 是 | - | 接口名称。 此处固定值为:query_status |
| sign_type | string | 否 | 10 | 接口签名类型,枚举如下: MD5:MD5签名算法 SM3:国密SM3签名算法 不传默认使用MD5算法 |
| merchant_id | string | 是 | 10 | 财务交易中心商户号 |
| third_order_id | string | 否 | 64 | 商户订单号。 third_order_id和schc_order_id两者必填其一,都填以schc_order_id为主 |
| schc_order_id | string | 否 | 16 | 顺成订单号。 third_order_id和schc_order_id两者必填其一,都填以schc_order_id为主。 |
| nonce_str | string | 是 | 32 | 随机字符串 |
| sign | string | 是 | 32 | 签名 |
| req_serial_no | string | 是 | 32 | 本次交易的请求流水号 |
3、返回参数
返回体 <font style="color:rgb(34, 34, 34);">Response Payload</font>
XML格式返回
| 参数名 | 类型 | 说明 |
|---|---|---|
| resp_code | string | 通信状态码。 200 - 成功。 非200 - 失败。 注:此字段是通信标识,业务状态要看result_code |
| resp_msg | string | 通信错误说明 resp_code非200时返回 |
| req_serial_no | string | 本次交易的请求流水号,原样返回 |
| 以下参数在resp_code=200时返回 | ||
| result_code | string | 业务状态码。 0 - 支付受理成功 非0 - 支付受理失败 |
| error_code | string | 支付失败错误码。 支付失败时返回 错误码 |
| error_msg | string | 支付失败原因。 支付失败时返回具体失败原因说明 |
| nonce_str | string | 随机字符串 |
| sign | string | 签名 |
| sign_type | string | 签名类型,枚举如下: MD5:MD5签名算法 SM3:国密SM3签名算法 返回接口请求时设定的签名类型进行签名。 |
| cost_time | string | 请求耗时。 请求接口耗费的时间,单位毫秒 |
| merchant_id | string | 财务交易中心商户号 |
| sub_merchant_id | string | 通道商户号。 该顺成商户对应的上游商户号,即微信、支付宝、QRC商户号、QRA商户号、CUPS商户号等 |
| third_order_id | string | 商户订单号。 由商户/服务商侧自主生成 |
| pay_way | string | 支付类型。枚举如下: WXZF:微信支付 ZFBZF:支付宝支付 UPSMZF:银联扫码支付 DCPAY:数字货币支付 UNKNOWN:未知支付方式 |
| 以下参数在result_code=0时返回 | ||
| schc_order_id | string | 财务交易中心交易订单号 |
| trade_type | string | 支付方式。枚举如下: MICROPAY:付款码支付 NATIVE:Native支付, JSAPI:JSAPI支付 SmPgPay:小程序支付, JSAPIQuick:简易支付 FACEPAY:刷脸支付 |
| amount | string | 订单金额,单位:分 |
| status | string | 订单支付状态。枚举如下: 0:支付中 2:支付成功 6:订单关闭 8:支付失败 |
| channel_flag | string | 费率通道标记。枚举如下: GXST:高校食堂 PUBWEL:公益 PUBPAY:公缴 OFFLINE:线下 ZFBLH:支付宝新蓝海 YLLZ: 微信绿洲 SLZXY:私立中小幼 INS:保险/教培 ONLINE:线上 当前仅微信、支付宝交易会返回 |
| interm_state | string | 支付中间态。 目前仅针对微信支付,订单为支付中时返回:NOTPAY,USERPAYING |
| 以下参数在status=2时返回 | ||
| bank_type | string | 支付银行卡类型。 消费者支付时使用的支付账户或者银行卡类型。 微信交易的银行类型 支付宝交易的银行类型 银联扫码交易的银行类型。枚举为:1-借记卡,2-贷记卡 |
| wxmp_fund_control | string | 小程序延迟结算订单管控状态 1 为冻结中,2 为已解冻 |
| openid | string | 消费者用户编号。 消费者在顺成机构下的唯一用户标识。 |
| sub_openid | string | 消费者用户编号。 status=2且微信和支付宝交易才返回。微信:商户公众号APPID下用户唯一标识; 支付宝:买家的支付宝用户ID 支付宝交易时openid和sub_openid一样。 |
| out_transaction_id | string | 账户机构订单号。即微信、支付宝、云闪付等订单号 |
| channel_order_id | string | 清算机构订单号。即银联、网联等清算机构的订单号 |
| channel_datetime | string | 通道支付成功时间。即消费者实际支付成功的时间。 |
| attach | string | 支付附加数据。 原样返回下单时上送的attach内容 |
| coupon | string | 支付宝红包金额,单位(分)。 |
| settlement_amount | string | 商户实付金额。商户实际结算金额,单位(分) |
| discount_amount | string | 订单优惠金额。单位(分) |
| promotion_detail | string | 优惠详情。参数具体内容详见下方 |
| buyer_pay_amount | string | 买家实付金额。 微信、支付宝、银联扫码、数字货币此值有效 数字货币时,该值=settle_amount |
| simple_url_flag | string | 简易支付标记。枚举如下: 1:简易支付, 0:非简易支付 |
| pay_time | string | 交易中心支付成功时间。 交易中心获取到该笔订单支付成功时在交易中心系统上记录下的时间 |
| device_info | string | 设备编号。 上游返回时才返 |
| store_id | string | 门店编号。 上游返回时才返 |
| iss_addn_data | string | 付款方附加数据。 返回商品维度优惠信息 仅银联扫码交易时返回,顺成仅透传银联返回的信息。参数内容详见下方 |
| hb_fq_num | string | 花呗分期期数。 支付宝花呗分期交易时返回。 注:该信息为顺成系统中保存的,信息,不代表该笔交易为花呗分期交易,如果交易时指定花呗分期,顺成系统会保存该数据,但是消费者可能在支付时选择了其他方式支付。 |
| alipay_infos | string | 支付宝拓展参数。仅支付宝交易时返回,JSON格式。 本处透传支付宝返回的参数。 参数具体内容详见下方 |
注:以上参数的必填性,只有在符合的前提下才是必填,比如pay_time参数,只有在resp_code=200且result_code=0且status=2时,才会返回,任一条件不满足均不返回。
微信promotion_detail<font style="color:rgb(0,0,0);">字段说明</font>
| 参数名 | 类型 | 说明 |
|---|---|---|
| promotion_id | string | 券ID。券或者立减优惠ID |
| name | string | 优惠名称 |
| scope | string | 优惠范围。枚举如下: GLOBAL- 全场代金券 SINGLE- 单品优惠 |
| type | string | 优惠类型。枚举如下: COUPON- 代金券,需要走结算资金的充 值型代金券,(境外商户券币种与支付币种 一致) DISCOUNT- 优惠券,不走结算资金的免 充值型优惠券,(境外商户券币种与标价币 种一致 |
| amount | int | 优惠券面额。用户享受优惠的金额(优惠券面额=微信出 资金额+商家出资金额+其他出资方金额 ) |
| activity_id | string | 活动ID。在微信商户后台配置的批次 ID |
| wxpay_contribute | int | 微信出资金额。 特指由微信支付商户平台创建的优惠,出 资金额等于本项优惠总金额,单位为分 |
| merchant_contribute | int | 商户出资金额。 特指商户自己创建的优惠,出资金额等于 本项优惠总金额,单位为分 |
| other_contribut e |
int | 其他出资金额。 其他出资方出资金额,单位为分 |
| currency | string | CNY:人民币,境内商户号仅支持人民币 |
| goods_detail | object | 单品信息,使用 Json 格式 |
| ┖goods_id | string | 商品编码。 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成 |
| ┖goods_remark | string | 商品备注。 goods_remark 为备注字段,按照配置原样返回, 字段内容在微信后台配置券时进行设置。 |
| ┖discount_amount | int | 商品优惠金额。单品的总优惠金额,单位为:分 |
| ┖quantity | int | 商品数量。 用户购买的数量 |
| ┖price | int | 商品价格。 单位为:分。如果商户有优惠,需传输商户优惠 后的单价(例如:用户对一笔100元的订单使用了 商场发的纸质优惠券 100-50,则活动商品的单价 应为原单价-50) |
支付宝promotion_detail<font style="color:rgb(0,0,0);">字段说明</font>
该参数对应支付宝的voucher_detail_list参数。本交易支付时使用的所有优惠券信息。只有在 query_options 中指定时才返回该字段信息。
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | string | 券ID |
| name | string | 券名称 |
| type | string | 当前有三种类型: ALIPAY_FIX_VOUCHER - 全场代金券; ALIPAY_DISCOUNT_VOUCH ER -折扣券; ALIPAY_ITEM_VOUCHER - 单品优惠; 注:不排除将来新增其他类型的可能,商家接入时注意兼容性避免硬编码 |
| amount | decimal | 优惠券面额,它应该会等于商家出资加上其他出资方出资 |
| merchant_contribute | decimal | 商家出资(特指发起交易的商家出资金额) |
| other_contribut e |
decimal | 其他出资方出资金额,可能是支付宝,可能是品牌商,或者其他方,也可能是他们的一起出资 |
| memo | string | 优惠券备注信息 |
| template_id | string | 券模板 id |
| other_contribute_detail | object | 优惠券的其他出资方明细 |
| ┖contribute_type | string | 出资方类型,如品牌商出资、支付宝平台出资等 |
| ┖contribute_amount | decimal | 出资方金额 |
| purchase_buyer_contribute | decimal | 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时用户实际付款的金额 |
| purchase_merchant_contribute | decimal | 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时商户优惠的金额 |
| purchase_ant_contribute | decimal | 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时平台优惠的金额 |
银联扫码promon_detail<font style="color:rgb(0,0,0);">字段说明</font>
对应银联二维码平台的 couponInfo 参数。本域采用JSON格式,以方便扩展。本域全部内容用“[ ]”包含;内部可含多个对象,每个 对象用“{ }”包含,对象之间以“,”分隔;对象内可含多个子域,子域间以“,”分隔,子域采取"key":"value"的形式,key和value都需要用双引号包裹。子域定义如下表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | string | 项目编号。票券编号、活动编号等,格式自定义 |
| desc | string | 项目简称。优惠活动简称,可用于展示、打单等 |
| type | string | 项目类型,枚举如下: DD01:随机立减 CP01:抵金券1:无需领取,交易时直接适配并承兑的优惠券 CP02 :抵金券2:事前领取,交易时上送银联并承兑的优惠券 未来将根据业务发展增加新的类型。 |
| spnsrId | string | 出资方。 银联作为出资方:固定填写 00010000; 付款方作为出资方:填写 8 位付款方机 构代码; 商户作为出资方:填写 15 位商户代码 |
| offstAmt | int | 抵消交易金额。不能为全 0。币种同上层 currencyCode 字段 |
| addnInfo | string | 附加信息。内容自定义 |
<font style="color:rgb(0,0,0);">iss_addn_data字段说明</font>
本域采用JSON格式,全部内容用“{ }”包含,内部可包含
多个子域。目前仅包含“商品优惠信息dctDetail”子域,后续将根据业务需要新增子域。
| 参数名 | 类型 | 说明 |
|---|---|---|
| dctDetail | object | 商品优惠明细内容. 商品优惠信息dctDetail子域采用嵌套JSON格式,全部内容用“[ ]”包含,内部可含多个对象,每个对象用“{ }”包含,对象之间以“,”分隔;对象内可含多个字段,字段间以 “,”分隔 |
| ┖id | string | 参与优惠的商品编号 |
| ┖dctId | string | 优惠活动的编号 |
| ┖dctQuantity | string | 参与优惠的商品数量,示例: 本商品数量为10,其中2件参与了优惠,则本字段值为2 |
| ┖dctPrice | int | 商品的优惠金额,以分为单位,示例: 商品单价10元,共5件,其中2件参与优惠,每件优惠3元,则本字段值为600 字段 |
| ┖addnInfo | string | 内容自定义 |
<font style="color:rgb(0,0,0);">alipay_infos字段说明</font>
| 参数名 | 类型 | 说明 |
|---|---|---|
| total_amount | decimal | 交易金额(单位:分, 类型:数字) |
| settle_amount | string | 结算币种订单金额 |
| pay_amount | string | 支付币种订单金额 |
| receipt_amount | string | 实收金额(单位:分, 类型:数字) |
| point_amount | int | 使用集分宝付款的金额 |
| invoice_amount | decimal | 交易中可给用户开具发票的金额(单位:元) |
| fund_bill_list | Array | 交易支付使用的资金渠道。只有在签约中指定需要返回资金明细,或者入参的query_options 中指定时才返回该字段信息。 |
| card_balance | Price | 支付宝卡余额 |
| store_name | string | 发生支付交易的商户门店名称 |
| discount_goods_detail | string | 本次交易支付所使用的单品券优惠的商品优惠信息。只有在 query_options中指定时才返回该字段信息。 |
| async_payment_mode | string | 异步支付模式,先享后付业务会返回该参数,目前有三种值:ASYNC_DELAY_PAY( 异步延时付款); ASYNC_REALTIME_PAY( 异步准实时付款); SYNC_DIRECT_PAY(同步直接扣款); |
| purchase_merchant_contribute | Price | 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时商户优惠的金额 |
| auth_trade_pay_mode | string | 预授权支付模式,该参数仅在信用预授权支付场景下返回。信用预授权支付:CREDIT_PREAUTH_PAY |
| advance_amount | string | 先享后付 2.0 垫资金额,不返回表示没有走垫资,非空表示垫资支付的金额 |
| business_params | string | 商户传入业务信息,具体值要和支付宝约定将商户传入信息分发给相应系统,应用于安全,营销等参数直传场景格式为 json 格式 |
| buyer_user_type | string | 买家用户类型。 CORPORATE:企业用户;PRIVATE:个人用户 |
| buyer_user_name | string | 买家名称;买家为个人用户时为买家姓名,买家为企业用户时为企业名称; |
| mdiscount_amount | string | 商家优惠金额 |
| discount_amount | string | 平台优惠金额 |
| charge_flags | string | 费率活动标识,当交易享受活动优惠费率时,返回该活动的标识;(1)蓝海活动优惠费率 0,值为 bluesea_1(2) 特 殊 行 业 优 惠 费 率 0 , 值 为industry_special_00(3) 特殊行业优惠费率千一,值为industry_special_01 |
| buyer_logon_id | string | 买家支付宝账号 |
| hb_fq_pay_info | object | 支付宝花呗分期详情。JSON格式 该笔交易为花呗分期交易时返回。 user_install_num:分期期数 fq_amount :分期金额,单位:元 注:该参数顺成仅做透传,有时该参数为JSON格式的字符串,样式为: {"USER_INSTALL_NUM":"3","FQ_AMOUNT":"700"} ,请做好兼容 |
4、注意事项
5、代码示例
请求参数:
{
"service": "query_status",
"merchant_id": "0000000018",
"third_order_id": "T20220930091913k3lERPTS",
"nonce_str": "JohCmBiL",
"sign": "4A5795878AE4FF29E6A8B9C8DB17DF69",
"req_serial_no":"17730391726943A1F3E866823"
}
返回参数:
<schc>
<resp_code><![CDATA[0]]></resp_code>
<pay_way><![CDATA[ZFBZF]]></pay_way>
<status><![CDATA[6]]></status>
<channel_flag><![CDATA[OFFLINE]]></channel_flag>
<trade_type><![CDATA[SmPgPay]]></trade_type>
<refund_amount><![CDATA[0]]></refund_amount>
<sign><![CDATA[BA5217AD6F1891209DB6B94724EBF5A3]]></sign>
<result_code><![CDATA[0]]></result_code>
<sign_type><![CDATA[MD5]]></sign_type>
<amount><![CDATA[1]]></amount>
<cost_time><![CDATA[6]]></cost_time>
<nonce_str><![CDATA[bachidvakfdtjxxxrodxhjcvtpnsiveo]]></nonce_str>
<schc_order_id><![CDATA[1000380455722273]]></schc_order_id>
<sub_merchant_id><![CDATA[2088610768631989]]></sub_merchant_id>
<third_order_id><![CDATA[T20220930091913k3lERPTS]]></third_order_id>
<merchant_id><![CDATA[7021111557]]></merchant_id>
<req_serial_no><![CDATA[17730391726943A1F3E866823]]></req_serial_no>
</schc>