Files
hfb_sys/docs/顺成汇创交易中心聚合支付/4.简易支付.md
T

12 KiB
Raw Blame History

接口应在服务端调用,不可在前端(小程序、网页、APP等)直接调用。具体可参考接口接入指南

接口英文名:SimplePay

本接口用于发起简易支付。消费者可通过微信或者支付宝打开返回的支付链接进行支付。

  1. 当前简易支付返回的支付链接为聚合链接,支持使用微信APP和支付宝APP打开进行支付。但是同一个简易支付链接,如果消费者已经使用微信APP打开过后,不可再使用支付宝APP打开再进行支付。
  2. 消费者用微信APP或者支付宝APP打开交易中心提供的简易支付链接后,需要1分钟内完成支付,如超时未支付,需要重新下单获取新的简易支付链接。
  3. 简易支付的原理是:消费者打开交易中心提供的简易支付链接后,由交易中心获取消费者在交易中心的APPID下的openid,并通过JSAPI的支付方式进行下单获取支付参数,最后唤起用户的付款页面。本质上该支付方式为JSAPI支付。
  4. 交易中心会根据业务的发展,视情况增加请求参数和返回参数,请服务商/商户侧提前做好兼容。

1、调用方式

HTTPS调用

POST <font style="color:rgb(52,64,84);">/api/app/payOreder/simplePay</font>

2、请求参数

请求体 <font style="color:rgb(34, 34, 34);">Request Payload</font>

参数名 类型 必填 字段长度 说明
service string - 接口名称。此处固定值为:get_tdcode
t0 string 1 D0交易标志,默认为0
0D1交易
1D0交易
jspay_flag string 1 支付方式。
本处固定填写:2
sign_type string 10 接口签名类型,枚举如下:
MD5MD5签名算法
SM3:国密SM3签名算法 不传默认使用MD5算法
merchant_id string 10 财务交易中心商户号
third_order_id string 64 商户订单号。
由商户或者服务商自行定义,可以包含字母。需确保同一个商户下唯一
amount string 10 订单金额。
单位为分,整数
nonce_str string 32 随机字符串
sign string 32 签名
req_serial_no string 32 本次交易的请求流水号
jump_url string - 支付跳转地址。
当前跳转效果已不生效,服务商/商户可随意传一个地址, 或者不传该参数。
user_name string - 收银员名称
notify_url string 128 交易通知地址。
接收财务交易中心通知的URL,需做UrlEncode 处理,需要绝对路径,确保顺成能正确访问,若不需要回调请忽略
client_ip string 16 用户IP地址。
商户发起交易的IP地址
body string 256 商品描述。不能包含回车、换行等特殊字符。
该信息会展示在微信付款页面的“商品”中
shop_no string 16 商户门店编号。
只能是汉字、英文字母、数字
attach string 96 附加数据。支付成功原样返回。
注意:只能是汉字、英文字母、数字
limit_pay string 1 是否禁用信用卡,枚举如下:
1:禁止使用信用卡;
0或者不填:不限制
goods_tag string 32 订单优惠标记,,代金券或立减优惠功能。
该参数财务交易中心透传给微信,当前仅对微信交易生效
goods_detail string 8000 单品优惠商品详情。
该字段为JSON格式的字符串
1. 微信交易时,该参数透传给微信,对应微信的detail参数,主要用于微信的单品营销。
参数具体内容详见下方
scene_info string - 场景信息。
该字段用于上报场景信息,仅针对微信交易有效,透传至微信。目前支持上报实际门店信息。
该字段为JSON格式的字符串。
参数具体内容:{"store_info":{"id": "门店 ID","name ": "名称","area_code": "编码","address": "地址"}}
need_receipt boolean - 电子发票功能。
仅针对微信交易有效,需要和微信公众平台的发票功能联合使用。枚举如下:
1. true
2. false
(只能为true或false,只支持全小写字母或全大写字母)
gps_info string 512 gps信息。
校验GPS信息格式, 如:-128.12,23.1 -- 1. xxx,xxx -- 2. 经度xxx为[-180180]之间的浮点数,维度
bs_info string 512 基站信息。
校验基站信息格式,
格式说明: -- 1. 格式为:xxx,xxx,xxx,xxx 如:460,1,12,23454 -- 2. xxx均为整数,长度不超过11位
基站信息,从左至右依次对应以下几个字段: mcc: 移动国家号码,由3位数字组成,唯一地识别移动用户所属的国家。我国为460 mnc:移动网号,由两位数字组成,用于识别移动用户所归属的移动网 lac:位置区编码,为寻呼而设置的一个区域,覆盖一片地理区域,按寻呼量划分 ci :负责收发的天线所朝向的扇区编号

goods_detail字段说明

微信交易时,该参数对应透传至微信的detail参数

参数名 类型 必填 字段长度 说明
cost_price int - 订单原价。
1.商户侧一张小票订单可能被分多次支付,订 单原价用于记录整张小票的交易金额。
2.当订单原价与支付金额不相等,则不享受优惠。
3.该字段主要用于防止同一张小票分多次支 付,以享受多次优惠的情况,正常支付订单不 必上传此参数
receipt_id string 32 商品小票 ID。商家小票 ID
goods_detail object - 单品列表。
单品信息,使用 Json 数组格式提交
┗goods_id string 32 商品编码。
由半角的大小写字母、数字、中划线、下划线中的一种或几种组成
┗wxpay_goods _id string 32 微信侧商品编码。
微信支付定义的统一商品编号(没有可不传)
┗goods_name string 256 商品名称。
商品的实际名称
┗quantity int - 商品数量。
用户购买的数量
┗price int - 商品单价。单位为:分。
如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔 100 元的订单使用了商场发的优惠券 100-50,则活动商品的单价应为原单价-50)

<font style="color:rgb(0,0,0);">scene_info</font>字段说明

参数名 类型 必填 字段长度 说明
id string 32 门店 id。门店唯一标识
name string 64 门店名称
area_code string 6 门店行政区划码。门店所在地行政区划码
address string 128 门店详细地址

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 签名类型,枚举如下:
MD5MD5签名算法
SM3:国密SM3签名算法 返回接口请求时设定的签名类型进行签名。
cost_time string 请求耗时。
请求接口耗费的时间,单位毫秒
merchant_id string 财务交易中心商户号
third_order_id string 商户订单号。
由商户/服务商侧自主生成
schc_order_id string 财务交易中心交易订单号
以下参数在result_code=0时返回
jspay_url string 简易支付url。
重定向到该url可以完成后续支付流程。
返回二维码链接有效期为10分钟。
特别说明:获取该链接成功,并不一定代表该链接可进行支付。

4、注意事项

5、代码示例

请求参数:

{
    "service": "get_tdcode",
    "jspay_flag": "2",
    "sign_type": "MD5",
    "merchant_id": "0000000038",
    "third_order_id": "17730391726943A1F3E866823",
    "amount": "1",
    "nonce_str": "17730391726943A1F3E866823",
    "req_serial_no": "17730391726943A1F3E866823",
    "sign": "YzRkMTIzMDIzYWE0MTBkN2ExODY2ZTExNzVmNTI5MDg="
}

返回参数:

<schc>
    <resp_code><![CDATA[200]]></resp_code>
    <merchant_id><![CDATA[8153213715]]></merchant_id>
    <sign><![CDATA[0DA80E12DB46CA8EFE3FFA2404CC9F26]]></sign>
    <cost_time><![CDATA[6]]></cost_time>
    <sign_type><![CDATA[MD5]]></sign_type>
    <third_order_id><![CDATA[m20221009182459szeGpPEJ]]></third_order_id>
    <nonce_str><![CDATA[ergcktjerpwjiltjohjsgypnijggqckr]]></nonce_str>
    <jspay_url><![CDATA[https://qr.leshuazf.com/cgi-bin/qr/simple_pay.cgi?mid=8153213715&pu=1ux1Z1001602371522282]]></jspay_url>
    <result_code><![CDATA[0]]></result_code>
    <schc_order_id><![CDATA[1001602371522282]]></schc_order_id>
    <req_serial_no><![CDATA[17730391726943A1F3E866823]]></req_serial_no>
</schc>