创建 Charge 对象
创建 Charge 对象
发起一次支付请求时需要创建一个新的 charge 对象,获取一个可用的支付凭据用于客户端向第三方渠道发起支付请求。如果使用测试模式的 API Key,则不会发生真实交易。当支付成功后,会发送 Webhooks 通知。
请求参数
Name | Type | Description |
---|---|---|
amount | float | [REQUIRED] 订单金额,单位元, 如 0.01 |
app_id | string | [REQUIRED] 应用 id |
body | string | [REQUIRED] 服务明细 |
callback_url | string | [OPTIONAL] 回调地址,如不传则使用 APP 设置中的回调地址。若都为空,则无法跳回原页面 |
channel | Channel | [REQUIRED] 渠道名称 |
client_ip | string | [REQUIRED] 客户端机器 IP |
currency | string | 货币单位。国内收单机构仅支持 CNY |
description | string | [OPTIONAL] 交易描述 |
extra | ChargeRequestExtra | [OPTIONAL] 各支付渠道元数据 |
merchant_trade_id | string | [REQUIRED] 客户系统的交易单号(订单号),必须在应用下唯一。长度不超过32字符 |
metadata | hash | [OPTIONAL] 订单元数据,原样返回 |
notification_area | string | [OPTIONAL] 接受通知服务器所在区域,为确保消息能够送达,请选择服务器所在国家的国家码。如不填默认为 CN |
notify_url | string | [OPTIONAL] 通知地址,如不传则使用 APP 设置中的通知地址。若都为空,则不发送通知 |
subject | string | [REQUIRED] 物品或服务名称(交易标题) |
ttl | int | [OPTIONAL] 订单超时时间,单位秒 |
返回结果
返回一个支付凭据 charge 对象。鉴于支付渠道对 order_no 的合法性要求,为了保证支付请求的正确处理,请务必保证对于同一支付渠道下,不同支付产品间 order_no 的唯一性。例如:已在微信 JSAPI 支付下使用的 order_no 则无法在微信 Native 扫码下重复使用,该规则同样适用于其他同类渠道。如果发生错误,则会返回错误码和错误详情。