跳转至

PG 定期支付

“PG 经常付款”是指用户一旦在PG 付款框中登记了付款方法,应用程序服务器将在适合他们时要求从该付款方法付款。 它用来定期支付同样的产品,例如每月的金额产品。

此文档描述了“ PG 经常支付” 的集成过程, 以及如何使用 API 从应用程序服务器调用 。 主要API列表如下.

概述

计费周期和间隔由应用服务器管理. app服务器必须在产品持续期间要求付款,Hive不会在指定日期自动付款.

支持的PG和支付方法如下。 未列出的PG和支付方法在连接蜂巢控制台时将不列入经常性支付列表.

  • Kakao Pay: Kakao Pay Easy Pay
  • 达纳尔:信用卡
  • 支付墙:国际信用卡;登记所需的买方电子邮件
  • NHN KCP:信用卡

对接流程

应用程序服务器检查并注册您的支付方法 。 一旦支付完毕,蜂巢服务器将向应用服务器发出支付通知,告知支付结果. 应用程序服务器存储order_id从第一次付款通知起作为发出订单号,然后用于经常性收费和注销请求。

PG 经常性付款综合流量

在应用服务器上完成的PG支付整合流程如下.

  1. 请用户使用付款方法清单从应用程序服务器。
  2. 请求经常性付款登记使用用户选择的产品和支付方法。
  3. 在您的网页视图或浏览器中显示作为注册回复收到的HTML支付页面。
  4. 节省order_id会 议 日 程 和 议 程付款通知当用户登记支付方法并完成第一次支付时,从蜂巢服务器中获取。
  5. 请使用order_id您在下次结账时保存了重新支付与你的计费周期号。
  6. 根据一次性付款通知处理产品付款。
  7. 索取取消当你结束你的经常性支付。

第二轮投票结束后,您的订单号码将转至您的经常性收费答复和付款通知。 在应用程序服务器中连接并管理您的初始订单ID和订单号.

如果用户关闭支付页面或未能注册,蜂巢服务器将不会发送支付通知.

准备工作

在蜂巢控制台设置您的支付方式和支付通知 URL,然后拨打API 。 如果您在您的应用程序中设置了安全密钥, 您还需要准备认证符 。

关联支付方式

从蜂巢控制台连接您的经常性支付方式到应用程序 。 见PG 设置说明如何设置它。

设置支付通知URL

注册应用程序服务器的 URL 以在蜂窝控制台 > 计费 > 付款设置 > PG 设置 > 附加设置。使用与普通 PG 付款相同的设置。 见PG 支付通知设置需要更多信息,说明如何设置。

准备认证令牌

如果你已经设置安全密钥在应用程序中,您可以通过发行 OAuth 托肯.)中包含此符号。X-Access-Token在请求标题中调用API时。

通用请求和响应

所有API都使用POSTJSON格式中的方法和请求正文。 不支持发送表单 。 通过将每个API的路径与您想要使用的环境的主机前缀来请求.

  • 生产主机:https://hiveiap.qpyou.cn
  • 沙盒主机:https://sandbox-hiveiap.qpyou.cn

Request header

格式化请求正文为Content-Type编辑X-Access-Token只有您在应用程序中设置了安全密钥, 才会验证 。

字段 类型 需要吗? 说明
Content-Type 字符串 要求数 application/json
X-Access-Token 字符串 附加条件 OAuth 2.0 访问 如果您在应用程序中设置了安全密钥, 需要键入

用户识别

在要求经常性收费或注销时,必须告知登记经常性付款的用户的信息。 蜂巢服务器使用player_type和player_id一起确认你的身份

若为player_type这是v4通过蜂巢玩家身份vid改为:player_id如果v0,转发蜂巢成员UIDuid. player_type与vid_type在付款通知中。

player_id必须是数值为1或以上的数字字符串。 如果一个非数字值被传递,10010002返回一个错误。

Response body

如果成功的话codeJSON 响应中的字符串"0"。该错误也响应 HTTP 状态代码200检查code在体内。 Token 认证失败响应 HTTP 状态代码401.

如果反复支付注册成功,则会返回支付页面HTML而不是JSON. 见登记册答复.

字段 类型 包含响应 说明
code 字符串 JSON的回应 结果码."0"成功,见错误代码其他数值
message 字符串 JSON的回应 结果消息,包括发生错误的原因,内部错误消息是Internal server error

共同成功对策的例子包括:

"杰森"("Json")

```json
{ "code": "0", "message": "SUCCESS" }
```

支付方式列表查询API

查看您的经常性支付方法。 显示列表中按数组排列的付款方法,并将用户所选项目的标识符传递给经常性的付款登记请求。

Request info

请求路径是/v2/payment/recurring/methods。请求方法和授权标题遵循共同请求和答复.

  • 生产 URL:https://hiveiap.qpyou.cn/v2/payment/recurring/methods
  • 沙盒 URL :https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/methods

Request body

水平价格是您为产品设定的货币价格。 如果您指定market_pid,它只返回能够以该货币支付的支付方法,并按产品定出分级价格。

若为country省略,国家由请求服务器的IP决定,因此建议通过用户的国别代码.

字段 类型 需要吗? 说明
appid 字符串 要求数 应用程序标识
market_pid 字符串 选择 产品标识. 用于按照产品分级价格所在的货币过滤支付方法
country 字符串 选择、建议 用户国家代码. ISO 3166-1 α-2格式
language 字符串 选择 支付方法显示名称语言. 默认为en

下面是要求检查产品支付方法的正文item08用于韩国用户。

"杰森"("Json")

```json
{ "appid": "com.com2us.example.normal.freefull.google.global.android.common", "market_pid": "item08", "country": "KR", "language": "ko" }
```

Response body

成功对策包括:共同反应领域和数组payment_methods。数组中的每个项目都是PG和支付方法信息。

字段 类型 包含位置 说明
payment_methods 矩阵 反应机构 经常性支付方法清单. 序列是显示顺序
agency_id 整数 payment_methods[] PG 标识符. 照原样转发经常性入学申请
agency_code 字符串 payment_methods[] PG码.kakaopay, danal_tpay, paymentwall, kcp_billing
agency_name 字符串 payment_methods[] PG 名称
pay_method 字符串 payment_methods[] 支付方法代码.kakaopay, card
payment_method_id 整数 payment_methods[] 付款方法标识符。 按原样转发经常性付款登记申请
payment_method_name 字符串 payment_methods[] 基于language
icon_url 字符串 payment_methods[] 支付方法图标 URL
currency 字符串 payment_methods[] 支付货币

下面是回复KakaoPay支付方法的例子。https://…输入icon_url是一个略去实际 URL 的标记。

"杰森"("Json")

```json
{
  "code": "0",
  "message": "SUCCESS",
  "payment_methods": [
    { "agency_id": 3, "agency_code": "kakaopay", "agency_name": "카카오페이", "pay_method": "kakaopay",
      "payment_method_id": 472, "payment_method_name": "카카오페이", "icon_url": "https://…", "currency": "KRW" }
  ]
}
```

回返情况10010003如果找不到应用程序或物品,或者检查了出售的物品。 如果没有符合国家和产品货币标准的经常性付款方法,10010005将返回。

定期支付注册API

它请求支付页面HTML,以便用户可以注册支付方法,进而进行第一次支付. 应用程序服务器仍然会在您的网页视图或浏览器中显示收到的 HTML 。

在支付页面上完成注册后,您将会看到蜂巢结果屏幕. 第一次付款的结果将作为付款通知转交应用服务器。

Request info

请求路径是/v2/payment/recurring/register。请求方法和授权标题遵循共同请求和答复.

  • 生产 URL:https://hiveiap.qpyou.cn/v2/payment/recurring/register
  • 沙盒 URL :https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/register

Request body

查看支付方法清单,包括market_pid,并转发agency_id和payment_method_id列入答复。country还应传递与查阅清单时相同的值。

字段 类型 需要吗? 说明
appid 字符串 要求数 应用程序标识
market_pid 字符串 要求数 要订阅的产品标识 。 在所有计费周期使用相同的商品
server_id 字符串 要求数 App 服务器 ID, 在所有时间的付款通知中发送
player_id 字符串 要求数 用户编号. 见识别用户
player_type 字符串 要求数 用户类型.v4或v0
agency_id 整数 要求数 支付方法的 PG 标识符列表查询回复
payment_method_id 整数 要求数 付款方法识别符 付款方法清单查询答复
email 字符串 附加条件 买家邮件. 需要支付墙壁,没有使用其他 PG
iap_payload 字符串 选择 需要转发到应用程序服务器的更多信息 。 将在付款通知中通报所有计费周期,不得改为经常性收费请求
country 字符串 选择、建议 用户的国家代码. 它应该与查询列表时传递的值相同,如果省略,则由请求服务器的IP确定
language 字符串 选择 支付页面的语言和结果屏幕. 默认为en

下面是您要求与Kakao Pay登记经常性付款的正文。

"杰森"("Json")

```json
{
  "appid": "com.com2us.example.normal.freefull.google.global.android.common",
  "market_pid": "item08", "server_id": "kr",
  "player_id": "20000032552", "player_type": "v4",
  "agency_id": 3, "payment_method_id": 472,
  "iap_payload": "{\"character\":\"abc\"}",
  "country": "KR", "language": "ko"
}
```

Response body

请检查一下Content-Type在答复标题中,由于答复格式因登记请求的成功而异。 应用程序决定当请求失败时, 文本用户会看到什么 。

结果 HTTP 状态代码 内容类型 反应处理
成绩 200 text/html 显示已收付款页 HTML 。
失败 200 application/json 确认code和message常见答案

以下是支付月份入学申请中邮件缺失时的回复.

"杰森"("Json")

```json
{ "code": "10010003", "message": "email is required for paymentwall" }
```

注册处理

第一次支付是登记时的产品等级价格。 应用选定支付方法的货币价格。

您每次申请注册时都会创建新的经常性付款 。 如果用户关闭付款页,经常性付款将仍然不完整,他们将无法要求经常性收费。

第一次付款后,蜂巢服务器将发出付款通知。type改为:paid保存order_id通知编号。

如果你收到一个10010005错误, 请重温您的支付方法列表, 包括market_pid,并使用答复中包含的付款方法提出请求。 见错误代码用于了解如何处理错误的进一步信息。

再次支付API

在第二次付款之后 我们会请求付款 以你的支付方法存档。 成功的对策是收到付款。 晚期的PG批准与支付墙一样,在成功回应后可能会导致批准,一旦批准,蜂巢服务器会发出支付通知.

Request info

请求路径是/v2/payment/recurring/charge。请求方法和认证头遵循共同请求和答复.

  • 生产 URL:https://hiveiap.qpyou.cn/v2/payment/recurring/charge
  • 沙盒 URL :https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/charge

Request body

order_id将发送第一份付款通知的签发命令号。sequence是一个一元键,在同一经常性付款范围内将计费周期分开,并在重试同一计费周期时防止重复收费。

字段 类型 需要吗? 说明
appid 字符串 要求数 您注册的应用程序的应用标识
order_id 字符串 要求数 发布命令编号order_id第一次付款通知
sequence 整数 要求数 计费周期号. 它的值为 2 以上, 当重试同一计费周期时使用相同的值
player_id 字符串 要求数 注册用户的身份
player_type 字符串 要求数 注册用户的类型

下面是请求第二次付款的文本,并附有签发订单号。

"杰森"("Json")

```json
{ "appid": "com.com2us.example.normal.freefull.google.global.android.common",
  "order_id": "H4179125520850787386", "sequence": 2,
  "player_id": "20000032552", "player_type": "v4" }
```

Response body

成功的响应将包括这个计费周期的共同响应字段和订单号. 请将此数字与此计费周期关联保存 。

字段 类型 包含响应 说明
order_id 字符串 成功重试响应 此计费周期的顺序号, 如order_id相应的计费周期的付款通知和退款通知

下面是返回第二顺序号的成功响应.

"杰森"("Json")

```json
{ "code": "0", "message": "SUCCESS", "order_id": "H5179125523990923210" }
```

再次支付条件和重试

您将随时使用重复支付注册时指定的产品付费。 一个计费周期号由应用服务器管理,Hive不检查连续计费周期.

如果你停止出售某物品,我们将处理已登记的经常性付款的经常性收费请求。 停止只出售块 新的注册, 所以不要要求 重复收费停止计费。

当再次要求使用相同的sequence,处理如下。

重复状态 回应 额外费用 App 服务器处理
已支付 10010007 无 忽略重复请求, 因为这些请求已经支付过时间
待核准 以同样方式成功回应order_id 无 根据付款通知支付产品
传输请求失败 付款重试结果 重试付款 用同样的方法重试sequence

返回 PG 失败的原因message与10010024在PG批准失败的情况下。 请建议用户确认支付方法, 并再次尝试同样的方法sequence。内部错误10010001, 10010004,以及10010022也经过同样的重审sequence.

解约API

当您取消了经常性付款时,蜂巢服务器会删除与经常性付款一起注册的支付方法.10010023返回取消后请求重复收费时的错误。

Request info

请求路径是/v2/payment/recurring/cancel。请求方法和认证头遵循共同请求和答复.

  • 生产 URL:https://hiveiap.qpyou.cn/v2/payment/recurring/cancel
  • 沙盒 URL :https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/cancel

Request body

提供您想要终止的经常性付款的发单编号, 以及您注册的应用程序和用户信息 。 命令编号在第二轮之后无法取消 。

字段 类型 需要吗? 说明
appid 字符串 要求数 您注册的应用程序的应用标识
order_id 字符串 要求数 发布命令编号order_id第一次付款通知
player_id 字符串 要求数 注册用户的身份
player_type 字符串 要求数 注册用户的类型

下面是您要求取消 重复付款的正文 与签发的订单号。

"杰森"("Json")

```json
{ "appid": "com.com2us.example.normal.freefull.google.global.android.common",
  "order_id": "H4179125520850787386",
  "player_id": "20000032552", "player_type": "v4" }
```

Response body

成功对策包括共同对策领域code和message。下面是撤销成功的回应。

"杰森"("Json")

```json
{ "code": "0", "message": "SUCCESS" }
```

返回时10010003如果找不到经常性付款,或10010023如果它已经被撤销或没有活动。 请重试10010004错误, 无法删除 PG 支付方法 。

支付通知和结果处理

蜂巢服务器以与普通PG支付相同的格式,将经常性支付结果发送给相同的支付通知URL. 请参看PG 付款结果通知服务用于请求格式和发送字段。

关联订单号和支付期次

付款通知不包括经常性付款和计费周期号。 应用程序服务器应当使用您保存的已发布的订单号和order_id在经常性收费答复中确定哪些经常性付款通知对应哪些经常性付款。

何时发送 type order_id App 服务器处理
完成第一笔付款 paid 发布命令编号 保存初始订单ID并处理首轮付款
二局后还钱 paid 适用时间order_id经常性收费答复 与节省的计费周期挂钩后处理产品付款
从蜂巢控制台或 PG 偿还计费周期 cancelled 重用时间顺序号 由于这一计费周期而处理退款

server_id, iap_payload, market_pid,在登记时发出的价值将始终在付款通知中告知。

发放商品和退款

使用purchase_bypass_info在付款通知中,type这是paid核实收据并支付物品。 请参看PG 付款结果通知服务用于转发字段。

重新供资的计费周期将遵守退还用户经常性费用根据正常付款情况。

错误代码

即使HTTP状态代码是200你必须检查code在JSON体内。 识别错误代码和请求状态 :

代码 相关 API 原因 处理方法
0 JSON 常见反应 成绩 处理每个API的成功答复
10010001 常见 内部错误 重试. 使用相同的重试sequence
10010002 常见 缺少所需值、印刷错误、非JSON体、非POST方法。 包含如果sequence经常性费用少于或等于1或等于player_type错误 修改请求值和格式
10010003 查看和登记支付方法 APP或产品未找到,产品中止. 失踪email登记时在支付墙上 检查应用和产品. 要求它作为一个销售项目,并在输入电子邮件后重新要求支付墙壁
10010003 偿还、注销 没有发现经常性付款。 非初始命令 ID 或另一个应用程序或用户的经常性付款 确认第一个初始订单 ID 和注册的应用程序和用户信息
10010004 常见 PG 互锁错误, 包括取消时未删除 PG 支付方法 重试. 使用相同的重试sequence
10010005 查看和登记支付方法 没有符合国家和产品货币的经常性付款方法 重审清单,包括market_pid,并在答复中包含的支付方法中登记
10010007 经常性费用 我已经付过钱了 忽略此为重复
10010022 常见 内部错误 重试. 使用相同的重试sequence
10010023 偿还、注销 因取消,招生失败,招生不全等原因未启用订阅. 提醒用户重新列出
10010024 经常性费用 未批准超过限额,停牌等PG. 包含 PG 失败的原因 。message 在用户被告知支付方法后,再使用同样的方法sequence
HTTP 软件401 常见 Token 认证失败 校验X-Access-Token证书

对接注意事项

连接PG经常性支付时,检查订单号与订单号的使用方式,支付项目时,价格依据,取消范围.

使用签发订单号

重复收费和取消申请必须附有签发命令号order_id在第一次付款通知中。 回返a10010003如果请求使用中学后命令编号,则出错。 见一体化流动如何管理订单号。

期次编号和重试

使用sequence从2开始。 你必须照样前进sequence重试同一轮付款时,避免双重计费。 参见经常性收费通过计费周期状态和重试方法进行响应。

根据支付通知发放商品

根据type paid付款通知。 付款不应仅仅针对成功的经常性费用。 参见付款通知和结果处理 API学习如何验证收款并链接账单周期。

应用支付时的商品价格

每次付款的数额是要求付款时的产品等级价格。 变更项目价格的,在下期分期支付更新后的金额. 参见经常性收费如果停薪,将如何处理。

Paymentwall购买者电子邮件

在用支付墙壁登记经常性付款时,请输入买方给用户的电子邮件并转发给email请参考经常性付款登记 API请求字段和进入条件。

区分解约与退款

如果你取消了你的经常性付款,你不会被退 任何你已经支付的时间。 如果你想要退款 这些计费周期, 你需要处理 一个单独的退款。 参见撤销 API撤销请求和答复。