1. 概述(极速模式)
通过接入GLOCASHPAYMENT支付网关系统(下称GC网关),使商户系统获得覆盖全球的多样化收款渠道;在极速模式中,GC网关提供了基于JavaScript脚本的付款插件,仅须几行代码即可快速完成接入,并实现最佳的付款体验。
本文档提供了详细的针对商户系统集成的技术支持内容,具体由以下各部分组成:
2. 加载插件及付款页面
只须在商户页面中添加几行代码,一个完整的付款请求即可实现:
    <script src="https://pay.glocash.com/public/gateway/js/embed.js" class="gc-embed-button"
      title="BUY NOW"
      d-emkey="xxx-YOUR-PUBLIC-KEY-xxx"
      d-merchant="MERCH-77 LTD."
      d-goodsname="Goods10 X-OEM"
      d-price="12.78"
      d-currency="EUR"
      d-cc3ds="1"
      d-email="customer@glocash.com"
      d-suceess="https://example.com/payNotify/success"
      d-failed="https://example.com/payNotify/failed"
      d-pending="https://example.com/payNotify/pending"
      d-notify="https://example.com/payNotify/notify"
      d-cc3ds="https://example.com/payNotify/notify"
    ><script>
在页面成功加载JavaScript插件后,将在对应的位置自动生成一个付款按钮:
点击付款按钮后,会在当前页面弹出包含对应参数(详情见附录2)的付款页面(弹层):
如须自定义付款按钮的样式,可在 <script> 标签中的 class 属性里自行添加(但必须保留 gc-embed-button 样式):
    <script src="https://..." class="gc-embed-button my-style1 my-style2" ...
3. 付款结果
当GC网关完成付款处理后,付款人的终端浏览器将跳转至对应的商户地址,这些地址可在商户后台中配置,或由付款插件中的参数指定(并覆盖商户后台中的配置):
    插件参数名 参数说明 必要 最大长度 参数值举例
    d-suceess URL_SUCCESS / 付款成功后的跳转地址 - 255 https://www.merchant77.com/success.php?order=ORD12345890
    d-pending URL_PENDING / 付款处理中的跳转地址(非实时到帐) - 255 https://www.merchant77.com/pending.php?order=ORD12345890
    d-failed URL_FAILED / 付款失败后的跳转地址 - 255 https://www.merchant77.com/failed.php?order=ORD12345890
    d-notify URL_NOTIFY / 付款状态通知的请求地址 - 255 https://www.merchant77.com/notification.php?order=ORDER1234567890
当商户后台中的跳转请求方式配置为 “POST / 提交 / 包含交易信息” 时(默认),相关的交易信息将被提交至上述地址:
    提交参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_INVOICE 商户系统创建的订单号(由付款请求提交) 64 ORDER1234567890
    REQ_SIGN 当前请求的数字签名 64 8a8d17fb8f50db848c8aa2f850e83688c9ceb611cea761f0c64b998c5bbd7e4e
    REQ_SANDBOX 如果参数值为ON则当前交易处于测试环境下 - 2 ON
    提交参数名 参数说明 必要 最大长度 参数值举例
    CUS_EMAIL 付款人的邮箱(由付款请求提交) 255 customer789@gmail.com
    TNS_GCID GC交易流水号 16 CCGM48FGLP11H8MT
    TNS_UTIMES 创建交易的UNIX时间戳 16 1512360895.5831
    BIL_STATUS 当前交易的付款状态(详情见附录4) 16 paid
    BIL_METHOD 交易的支付方式代码 3 C01
    提交参数名 参数说明 必要 最大长度 参数值举例
    PGW_PRICE 当前交易的实际付款金额 - 16 37.86
    PGW_CURRENCY 当前交易的实际付款货币代码(ISO4217) - 3 USD
    PGW_CC3DS 信用卡付款时的3DS结果代码(非0则通过验证) - 1 3
    FDL_DECISION 当前交易的风控决策(详情见附录5) - 3 REV
    提交参数名 参数说明 必要 最大长度 参数值举例
    CUSTOM_FD0 商户系统的自定义参数0(由付款请求提交) - 255 123456
    CUSTOM_FD7 商户系统的自定义参数7(由付款请求提交) - 255 ONEtwo three fourfive
一个包含数字签名的参数将确保当前请求的合法性(与PSN请求相同,具体算法请参阅附录1)。商户系统可根据请求中的状态信息来执行相关的业务处理(如更新订单状态或准备发货等)。
注意:当商户后台中的跳转请求方式配置为 “GET / 仅跳转 / 无额外信息” 时,终端浏览器的跳转行为并不能作为付款成功的依据,因为这是容易被伪造的。请通过付款状态通知(PSN)或查询接口来确认最终的付款结果。
4. 付款状态通知(PSN)
当每一笔交易的状态出现更新时(如付款成功、失败、退款等),GC网关系统将向商户系统发起一个包含此交易相关数据的通知请求,此请求的具体地址由商户后台中的配置指定(默认为空)。
一个包含数字签名的参数将确保PSN请求的合法性(具体算法请参阅附录1)。商户系统可根据请求中的状态信息来执行相关的业务处理(如更新订单状态或准备发货等)。
典型的通知请求例子:
    REQUEST
    POST /notification.php?order=ORDER1234567890 HTTP/1.1
    Host: www.merchant77.com
    ...

    REQ_INVOICE=ORDER1234567890&CUS_EMAIL=customer789%40gmail.com&BIL_METHOD=CCG&BIL_PRICE=3.79&BIL_CURRENCY=USD&REQ_EMAIL=account123%40merchant77.com&REQ_SANDBOX=ON&TNS_UTIMES=1512371781.833&TNS_GCID=CCGM48FGLP11H8MT&REQ_REFERER=https%3A%2F%2Fwww.merchant77.com%2checkout.php&BIL_IPADDR=123.123.123.123&PGW_PRICE=3.18&PGW_CURRENCY=EUR&FDL_DECISION=ACP&BIL_STATUS=paid&REQ_TIMES=1512371788&REQ_SIGN=789e9d6691adae0f3d7d50b49b0682b18f3c48b068ef8a6d0321a716f47ac34c
注意:商户系统在收到通知后,请返回200的HTTP响应代码,否则GC网关将认为本次通知失败,并在数分钟后再次尝试。
5. 测试环境
当付款插件设置为沙盒模式后(参数 d-sandbox="1" ),GC网关将创建一个测试交易。在测试交易中的付款页面将默认为信用卡方式,可使用任何符合规范的卡号进行测试,但不会进行实际的扣款操作(交易的最终状态可在商户后台中配置)。
测试交易同样会执行付款状态通知(PSN),不同的是交易信息中将包含一个用来标识测试环境的参数:
    参数名 参数说明 必要 最大长度 参数值举例
    REQ_SANDBOX 如果参数值为ON则当前交易处于测试环境下 - 2 ON
提示:在商户系统完成测试流程后,请联系您的客户经理以开通正式环境。
附录1:数字签名
PSN请求(由GC网关发起):
    REQ_SIGN = SHA256 ( SECRET_KEY + REQ_TIMES + REQ_EMAIL + CUS_EMAIL + TNS_GCID + BIL_STATUS + BIL_METHOD + PGW_PRICE + PGW_CURRENCY )
    注:各参数含义请参阅附录3,其中SECRET_KEY为商户账号的安全密钥。
附录2:付款插件参数表
完整的参数列表如下:
    插件参数名 参数说明 必要 最大长度 参数值举例
    title 付款按钮的文字 - - PAY NOW
    插件参数名 参数说明 必要 最大长度 参数值举例
    d-emkey 用于付款插件的商户公钥 32 cF5UFQBQJFVCgBcB
    d-goodsname 展示在付款页面的商品描述 255 Smart Phone P238 x1
    d-price 请求的付款金额 16 37.86
    d-currency 付款的货币代码(ISO4217) 3 EUR
    d-email 付款人的邮箱 255 customer789@gmail.com
    d-method 指定的支付方式代码(默认为信用卡方式) - 3 C01
    d-cc3ds 信用卡付款时是否启用3DS验证(非0则启用) - 1 1
    d-invoice 商户系统创建的订单号(允许数字、大小写字母、符号_与-) - 64 ORDER1234567890
    d-merchant 展示在付款页面的商户名称(默认为商户域名) - 32 MERCHANT-77 LTD.
    d-sandbox 如果参数值非零则设置为沙盒模式 - 1 1
    插件参数名 参数说明 必要 最大长度 参数值举例
    d-suceess URL_SUCCESS / 付款成功后的跳转地址 - 255 https://www.merchant77.com/success.php?order=ORD12345890
    d-pending URL_PENDING / 付款处理中的跳转地址(非实时到帐) - 255 https://www.merchant77.com/pending.php?order=ORD12345890
    d-failed URL_FAILED / 付款失败后的跳转地址 - 255 https://www.merchant77.com/failed.php?order=ORD12345890
    d-notify URL_NOTIFY / 付款状态通知的请求地址 - 255 https://www.merchant77.com/notification.php?order=ORDER1234567890
    插件参数名 参数说明 必要 最大长度 参数值举例
    d-custom0 CUSTOM_FD0 / 商户系统的自定义参数0 - 255 123456
    d-custom1 CUSTOM_FD1 / 商户系统的自定义参数1 - 255 3457fdddc
    d-custom2 CUSTOM_FD2 / 商户系统的自定义参数2 - 255 ONEtwo three fourfive
附录3:付款状态通知(PSN)参数表
完整的参数列表如下:
    请求参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_EMAIL 商户的GC账户邮箱 255 account123@merchant77.com
    REQ_INVOICE 商户系统创建的订单号(由付款请求提交) 64 ORDER1234567890
    REQ_SIGN 当前请求的数字签名 64 8a8d17fb8f50db848c8aa2f850e83688c9ceb611cea761f0c64b998c5bbd7e4e
    REQ_REFERER 付款页面的跳转引用地址 - 255 https://www.merchant77.com/checkout.php
    REQ_SANDBOX 如果参数值为ON则当前交易处于测试环境下 - 2 ON
    请求参数名 参数说明 必要 最大长度 参数值举例
    CUS_EMAIL 付款人的邮箱(由付款请求提交) 255 customer789@gmail.com
    请求参数名 参数说明 必要 最大长度 参数值举例
    TNS_GCID GC交易流水号 16 CCGM48FGLP11H8MT
    TNS_UTIMES 创建交易的UNIX时间戳 16 1512360895.5831
    请求参数名 参数说明 必要 最大长度 参数值举例
    BIL_PRICE 请求的付款金额(由付款请求提交) 16 37.86
    BIL_CURRENCY 请求的付款货币代码(ISO4217,由付款请求提交) 3 USD
    BIL_METHOD 交易的支付方式代码 3 C01
    BIL_IPADDR 付款人进入付款页面时的IP地址(v4/v6) 40 123.123.123.123
    BIL_STATUS 当前交易的付款状态(详情见附录4) 16 paid
    请求参数名 参数说明 必要 最大长度 参数值举例
    PGW_PRICE 当前交易的实际付款金额 - 16 37.86
    PGW_CURRENCY 当前交易的实际付款货币代码(ISO4217) - 3 USD
    PGW_CCHOLDER 信用卡付款时的持卡人姓名 - 64 John Smith
    PGW_CC3DS 信用卡付款时的3DS结果代码(非0则通过验证) - 1 3
    PGW_MESSAGE 支付渠道所返回的相关信息(如错误提示等) - 255 payment success.
    请求参数名 参数说明 必要 最大长度 参数值举例
    FDL_DECISION 当前交易的风控决策(详情见附录5) - 3 REV
    请求参数名 参数说明 必要 最大长度 参数值举例
    CUSTOM_FD0 商户系统的自定义参数0(由付款请求提交) - 255 123456
    CUSTOM_FD7 商户系统的自定义参数7(由付款请求提交) - 255 ONEtwo three fourfive
附录4:交易状态
完整的状态列表如下:
    交易状态值 状态说明
    unpaid 交易未付款
    paid 交易已付款
    pending 付款处理中(非实时到帐或处理延迟)
    cancelled 付款已取消(由付款人操作)
    failed 付款已失败
    refunding 退款处理中
    refunded 已全额退款
    complaint 付款存在争议(由付款人发起)
    chargeback 交易已拒付/撤单
附录5:风控决策
完整的决策列表如下:
    风控决策值 决策说明
    ACP 已通过风控规则
    REV 建议审核的风险交易
    REJ 已拒绝付款或建议退款(高风险)
    BAN 已拒绝付款(高风险及黑名单)
附录6:可用的支付渠道
请联系您的客户经理确认并开通业务所在区域的相关支付方式。
    REQ_EMKEY
    REQ_SANDBOX
    INVOICE_REPEAT_MAX
    TNS_GCID
    REFUND FAILED
    BIL_CURRENCY
    CREDIT_CARD_FAILED_MAX
    REQ_REFERER
    BIL_CCNUMBER
    PGW_GATEWAY
1. 概述(经典模式)
通过接入GLOCASHPAYMENT支付网关系统(下称GC网关),使商户系统获得覆盖全球的多样化收款渠道。
本文档提供了详细的针对商户系统集成的技术支持内容,具体由以下各部分组成:
在实施技术对接前,请先联系您的账户经理以获取测试帐号。测试环境将运行在模拟真实商业环境的沙盒模式下,不会造成真实的付款行为。
2. 协议与格式
GC网关系统的通讯及交互协议基于HTTP,具体可分为以下形式:
  • 发起请求 - 包括商户系统向GC网关发起的请求(如付款请求),以及GC网关向商户系统发起的请求(如PSN请求)等,使用POST方式提交(键/值)。
  • 请求响应 - GC网关所返回的数据响应,为JSON编码后的字符串。
  • 地址跳转 - 由付款人的终端浏览器完成指定地址的跳转/加载。
注意:所有数据的编码格式都必须为UTF-8,否则将可能会导致预期之外的错误。
3. 系统流程
主要的付款流程如下步骤:
  • 终端客户(付款人)在商户系统中创建订单。
  • 商户系统(后端服务器)向GC网关发起付款请求。
  • GC网关返回包含付款页面地址的响应。
  • 终端浏览器跳转至付款页面。
  • 客户完成付款后终端浏览器跳转至商户系统的成功页面。
  • GC网关向商户系统发起付款状态通知(PSN)请求。
4. 付款请求
商户系统通过HTTP的POST方式向GC网关发起付款请求:
  • 测试环境 - https://sandbox.glocash.com/gateway/payment/index
  • 正式环境 - https://pay.glocash.com/gateway/payment/index
请求中的参数包含了付款所相关的所有信息,一个简单的付款请求将包含以下必要参数:
    请求参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_EMAIL 商户的GC账户邮箱 255 account123@merchant77.com
    REQ_INVOICE 商户系统创建的订单号(允许数字、大小写字母、符号_与-) 64 ORDER1234567890
    REQ_SIGN 当前请求的数字签名 64 8a8d17fb8f50db848c8aa2f850e83688c9ceb611cea761f0c64b998c5bbd7e4e
    CUS_EMAIL 付款人的邮箱 255 customer789@gmail.com
    BIL_PRICE 请求的付款金额 16 37.86
    BIL_CURRENCY 付款的货币代码(ISO4217) 3 https://www.merchant77.com/success.php?order=ORDER1234567890
    BIL_CC3DS 信用卡付款时是否启用3DS验证(非0则启用) - 1 1
    URL_SUCCESS 付款成功后的跳转地址 - 255 https://www.merchant77.com/success.php?order=ORDER1234567890
    URL_PENDING 付款处理中的跳转地址(非实时到帐) - 255 https://www.merchant77.com/pending.php?order=ORDER1234567890
    URL_FAILED 付款失败后的跳转地址 - 255 https://www.merchant77.com/failed.php?order=ORDER1234567890
    URL_NOTIFY 付款状态通知的请求地址 - 255 https://www.merchant77.com/notify.php?order=ORDER1234567890
一个包含数字签名的参数将确保当前请求的合法性(具体算法请参阅附录1)。当GC网关成功处理请求后,将返回一个包含GC交易流水号及付款页面地址的JSON编码数据,解码后的参数如下:
    响应参数名 参数说明 必要 最大长度 参数值举例
    TNS_GCID GC交易流水号 16 CCGM48FGLP11H8MT
    URL_PAYMENT 当前交易的付款页面地址 255 https://pay.glocash.com/gateway/payment/index/token/cd4d62f6b36e20d821f3311cf3e6e12b
如果请求中存在不正确的参数值,则GC网关将返回一个包含错误参数名的JSON编码数据,解码后的参数如下:
    响应参数名 参数说明 必要 最大长度 参数值举例
    REQ_ERROR 出现错误的参数名 32 REQ_SIGN
成功的付款请求例子:
    REQUEST
    POST /gateway/payment/index HTTP/1.1
    Host: sandbox.glocash.com
    ...

    BIL_CC3DS=1&REQ_INVOICE=ORDER1234567890&CUS_EMAIL=customer789%40gmail.com&BIL_PRICE=37.86&BIL_CURRENCY=USD&REQ_EMAIL=account123%40merchant77.com&REQ_TIMES=1466492149&REQ_SIGN=df2683bd26b928c0b2f60213210ba684348ec785dab158c6d10b7330e03d03ba
    RESPONSE
    HTTP/1.1 200 OK
    Date: Fri, 01 Dec 2017 08:15:25 GMT
    ...

    {"TNS_GCID":"CCGM48FGLP11H8MT","URL_PAYMENT":"https:\/\/sandbox.glocash.com\/gateway\/payment\/index\/token\/cd4d62f6b36e20d821f3311cf3e6e12b"}
    JSON DECODED
    {
        TNS_GCID: "CCGM48FGLP11H8MT",
        URL_PAYMENT: "https://sandbox.glocash.com/gateway/payment/index/token/cd4d62f6b36e20d821f3311cf3e6e12b"
    }
失败的付款请求例子:
    REQUEST
    POST /gateway/payment/index HTTP/1.1
    Host: sandbox.glocash.com
    ...

    BIL_CC3DS=1&REQ_INVOICE=ORDER1234567890&CUS_EMAIL=customer789%40gmail.com&BIL_PRICE=37.86&BIL_CURRENCY=USD&REQ_EMAIL=account123%40merchant77.com&REQ_TIMES=1466492149&REQ_SIGN=123abc456def
    RESPONSE
    HTTP/1.1 200 OK
    Date: Fri, 01 Dec 2017 08:15:25 GMT
    ...

    {"REQ_ERROR":"REQ_SIGN"}
    JSON DECODED
    {
        REQ_ERROR: "REQ_SIGN",
    }
注意:为保障必要的安全性,付款请求必须由商户系统的服务端发起,而非通过付款人的终端浏览器。
Example Parameters
Parameter Value Description Parameter
Type
REQ_TIMES required 1747136878 当前请求的UNIX时间戳 Int
REQ_EMAILrequired 商户的GC账户邮箱 string
REQ_INVOICErequired 商户系统创建的订单号(允许数字、大小写字母、符号_与-) string
CUS_EMAILrequired 付款人的邮箱 string
BIL_METHODrequired 交易的支付方式代码 string
BIL_PRICErequired 请求的付款金额 float
BIL_CURRENCYrequired 付款的货币代码(ISO4217) string
REQ_SIGNrequired ab941060f352440b7edc7cf186da67964...... 当前请求的数字签名 string
BIL_CC3DS 信用卡付款时是否启用3DS验证(非0则启用) Int
URL_SUCCESS 付款成功后的跳转地址 string
URL_PENDING 付款处理中的跳转地址(非实时到帐) string
URL_FAILED 付款失败后的跳转地址 string
URL_NOTIFY 付款状态通知的请求地址 string
5. 付款页面
付款人的终端浏览器将跳转至GC网关所返回的付款页面地址,完成后续的付款操作。
Test credit card:
Visa | 4000000000000002 | 01/2022 | 237 | 14 3ds paid
Visa | 5200000000000023 | 01/2021 | 123 | 14 3ds failed
Visa | 5200000000000106 | 01/2021 | 123 | 14 3ds pending
可通过页面框架的动态加载等技术将付款页面内嵌到商户系统的页面中,以获得更优的交互体验(请参见极速模式)。
6. 付款结果
当GC网关完成付款处理后,付款人的终端浏览器将跳转至对应的商户地址,这些地址可在商户后台中配置,或由商户系统在付款请求的参数中指定(并覆盖商户后台中的配置):
    请求参数名 参数说明 必要 最大长度 参数值举例
    URL_SUCCESS 付款成功后的跳转地址 - 255 https://www.merchant77.com/success.php?order=ORDER1234567890
    URL_PENDING 付款处理中的跳转地址(非实时到帐) - 255 https://www.merchant77.com/pending.php?order=ORDER1234567890
    URL_FAILED 付款失败后的跳转地址 - 255 https://www.merchant77.com/failed.php?order=ORDER1234567890
当商户后台中的跳转请求方式配置为 “POST / 提交 / 包含交易信息” 时(默认),相关的交易信息将被提交至上述地址:
    提交参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_INVOICE 商户系统创建的订单号(由付款请求提交) 64 ORDER1234567890
    REQ_SIGN 当前请求的数字签名 64 8a8d17fb8f50db848c8aa2f850e83688c9ceb611cea761f0c64b998c5bbd7e4e
    REQ_SANDBOX 如果参数值为ON则当前交易处于测试环境下 - 2 ON
    提交参数名 参数说明 必要 最大长度 参数值举例
    CUS_EMAIL 付款人的邮箱(由付款请求提交) 255 customer789@gmail.com
    TNS_GCID GC交易流水号 16 CCGM48FGLP11H8MT
    TNS_UTIMES 创建交易的UNIX时间戳 16 1512360895.5831
    BIL_STATUS 当前交易的付款状态(详情见附录4) 16 paid
    BIL_METHOD 交易的支付方式代码 3 C01
    提交参数名 参数说明 必要 最大长度 参数值举例
    PGW_PRICE 当前交易的实际付款金额 - 16 37.86
    PGW_CURRENCY 当前交易的实际付款货币代码(ISO4217) - 3 USD
    PGW_CC3DS 信用卡付款时的3DS结果代码(非0则通过验证) - 1 3
    FDL_DECISION 当前交易的风控决策(详情见附录5) - 3 REV
    提交参数名 参数说明 必要 最大长度 参数值举例
    CUSTOM_FD0 商户系统的自定义参数0(由付款请求提交) - 255 123456
    CUSTOM_FD7 商户系统的自定义参数7(由付款请求提交) - 255 ONEtwo three fourfive
一个包含数字签名的参数将确保当前请求的合法性(与PSN请求相同,具体算法请参阅附录1)。商户系统可根据请求中的状态信息来执行相关的业务处理(如更新订单状态或准备发货等)。
注意:当商户后台中的跳转请求方式配置为 “GET / 仅跳转 / 无额外信息” 时,终端浏览器的跳转行为并不能作为付款成功的依据,因为这是容易被伪造的。请通过付款状态通知(PSN)或查询接口来确认最终的付款结果。
7. 付款状态通知(PSN)
当每一笔交易的状态出现更新时(如付款成功、失败、退款等),GC网关系统将向商户系统发起一个包含此交易相关数据的通知请求,此请求的具体地址由商户系统在付款请求的参数中指定:
    请求参数名 参数说明 必要 最大长度 参数值举例
    URL_NOTIFY 付款状态通知的请求地址 - 255 https://www.merchant77.com/notification.php?order=ORDER1234567890
一个包含数字签名的参数将确保当前请求的合法性(具体算法请参阅附录1)。商户系统可根据请求中的状态信息来执行相关的业务处理(如更新订单状态或准备发货等)。
典型的通知请求例子:
    REQUEST
    POST /notification.php?order=ORDER1234567890 HTTP/1.1
    Host: www.merchant77.com
    ...

    REQ_INVOICE=ORDER1234567890&CUS_EMAIL=customer789%40gmail.com&BIL_METHOD=CCG&BIL_PRICE=3.79&BIL_CURRENCY=USD&REQ_EMAIL=account123%40merchant77.com&REQ_SANDBOX=ON&TNS_UTIMES=1512371781.833&TNS_GCID=CCGM48FGLP11H8MT&REQ_REFERER=https%3A%2F%2Fwww.merchant77.com%2checkout.php&BIL_IPADDR=123.123.123.123&PGW_PRICE=3.18&PGW_CURRENCY=EUR&FDL_DECISION=ACP&BIL_STATUS=paid&REQ_TIMES=1512371788&REQ_SIGN=789e9d6691adae0f3d7d50b49b0682b18f3c48b068ef8a6d0321a716f47ac34c
注意:商户系统在收到通知后,请返回200的HTTP响应代码,否则GC网关将认为本次通知失败,并在数分钟后再次尝试。
8. 付款状态查询
GC网关提供一个实时的交易状态查询接口:
  • 测试环境 - https://sandbox.glocash.com/gateway/transaction/index
  • 正式环境 - https://pay.glocash.com/gateway/transaction/index
商户系统可通过此接口查询指定交易的状态等信息,一个符合要求的查询请求将包含以下必要参数:
    请求参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_EMAIL 商户的GC账户邮箱 255 account123@merchant77.com
    REQ_SIGN 当前请求的数字签名 64 c8aa2f1cea7850e83688c9ceb618a8d17fb8f50db84861f0c64b998c5bbd7e4e
    TNS_GCID 待查询的GC交易流水号 16 CCGM48FGLP11H8MT
一个包含数字签名的参数将确保当前请求的合法性(具体算法请参阅附录1)。查询结果将返回对应交易的相关信息(与PSN所包含的信息一致),并经过JSON编码之后的数据。如果指定的交易并不存在,则返回一个404的HTTP响应代码。
典型的查询请求例子:
    REQUEST
    POST /gateway/transaction/index HTTP/1.1
    Host: sandbox.glocash.com
    ...

    REQ_EMAIL=account123%40merchant77.com&REQ_TIMES=1466492149&TNS_GCID=CCGM48FGLP11H8MT&REQ_SIGN=c8aa2f1cea7850e83688c9ceb618a8d17fb8f50db84861f0c64b998c5bbd7e4e
    RESPONSE
    HTTP/1.1 200 OK
    Date: Fri, 01 Dec 2017 08:15:25 GMT
    ...

    {"CCGM48FGLP11H8MT":{"REQ_INVOICE":"ORDER1234567890","CUS_EMAIL":"customer789@gmail.com","BIL_METHOD":"CCG","BIL_PRICE":"3.79","BIL_CURRENCY":"USD","REQ_EMAIL":"account123@merchant77.com","REQ_SANDBOX":"ON","TNS_UTIMES":1512371781.833,"TNS_GCID":"CCGM48FGLP11H8MT","REQ_REFERER":"https:\/\/www.merchant77.com\/checkout.php","BIL_IPADDR":"123.123.123.123","PGW_PRICE":"3.18","PGW_CURRENCY":"EUR","FDL_DECISION":"ACP","BIL_STATUS":"paid","REQ_TIMES":1512371788,"REQ_SIGN":"789e9d6691adae0f3d7d50b49b0682b18f3c48b068ef8a6d0321a716f47ac34c"}}
    JSON DECODED
    {
        CCGM48FGLP11H8MT: {
            REQ_INVOICE: "ORDER1234567890",
            CUS_EMAIL: "customer789@gmail.com",
            BIL_METHOD: "CCG",
            BIL_PRICE: "3.79",
            BIL_CURRENCY: "USD",
            REQ_EMAIL: "account123@merchant77.com",
            REQ_SANDBOX: "ON",
            TNS_UTIMES: 1512371781.833,
            TNS_GCID: "CCGM48FGLP11H8MT",
            REQ_REFERER: "https://www.merchant77.com/checkout.php",
            BIL_IPADDR: "123.123.123.123",
            PGW_PRICE: "3.18",
            PGW_CURRENCY: "EUR",
            FDL_DECISION: "ACP",
            BIL_STATUS: "paid",
            REQ_TIMES: 1512371788,
            REQ_SIGN: "789e9d6691adae0f3d7d50b49b0682b18f3c48b068ef8a6d0321a716f47ac34c",
        }
    }
9. 测试环境
当付款请求通过测试环境的接口地址发起时,GC网关将创建一个测试交易。在测试交易中的付款页面将默认为信用卡方式,可使用任何符合规范的卡号进行测试,但不会进行实际的扣款操作(交易的最终状态可在商户后台中配置)。
测试交易可使用查询接口(测试环境的接口地址),并且也同样会执行付款状态通知(PSN),不同的是交易信息中将包含一个用来标识测试环境的参数:
    参数名 参数说明 必要 最大长度 参数值举例
    REQ_SANDBOX 如果参数值为ON则当前交易处于测试环境下 - 2 ON
提示:在商户系统完成测试流程后,请联系您的客户经理以开通正式环境。
10. 退款请求
GC网关提供一个实时的退款接口:
  • 测试环境 - https://sandbox.glocash.com/gateway/transaction/refund
  • 正式环境 - https://pay.glocash.com/gateway/transaction/refund
商户系统可通过此接口提交需要退款的订单,一个符合要求的退款请求将包含以下必要参数:
    请求参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_EMAIL 商户的GC账户邮箱 255 account123@merchant77.com
    REQ_SIGN 当前请求的数字签名(见附录1) 64 c8aa2f1cea7850e83688c9ceb618a8d17fb8f50db84861f0c64b998c5bbd7e4e
    TNS_GCID 待退款的GC交易流水号 16 CCGM48FGLP11H8MT
    PGW_PRICE 待退款的交易金额(支持部分退款) 16 10
一个包含数字签名的参数将确保当前请求的合法性(具体算法请参阅附录1)。退款结果将返回对应的状态,并经过JSON编码之后的数据。REQ_CODE为200的情况下退款才表示退款成功
典型的退款请求例子:
    REQUEST
    POST /gateway/transaction/refund HTTP/1.1
    Host: sandbox.glocash.com
    ...

    REQ_EMAIL=account123%40merchant77.com&REQ_TIMES=1466492149&TNS_GCID=CCGM48FGLP11H8MT&PGW_PRICE=10&REQ_SIGN=c8aa2f1cea7850e83688c9ceb618a8d17fb8f50db84861f0c64b998c5bbd7e4e
    RESPONSE
    HTTP/1.1 200 OK
    Date: Fri, 01 Dec 2017 08:15:25 GMT
    ...

    '{"REQ_CODE":200,"REQ_ERROR":"REFUND SUCCESS"}'
    JSON DECODED
    {
            REQ_CODE: 200,
            REQ_ERROR: "REFUND SUCCESS",
    }
附录1:数字签名
付款请求(由商户系统发起):
    REQ_SIGN = SHA256 ( SECRET_KEY + REQ_TIMES + REQ_EMAIL + REQ_INVOICE + CUS_EMAIL + BIL_METHOD + BIL_PRICE + BIL_CURRENCY )
    注:各参数含义请参阅附录2,其中SECRET_KEY为商户账号的安全密钥。
查询请求(由商户系统发起):
    REQ_SIGN = SHA256 ( SECRET_KEY + REQ_TIMES + REQ_EMAIL + TNS_GCID )
    注:各参数含义请参阅附录4,其中SECRET_KEY为商户账号的安全密钥。
PSN请求(由GC网关发起):
    REQ_SIGN = SHA256 ( SECRET_KEY + REQ_TIMES + REQ_EMAIL + CUS_EMAIL + TNS_GCID + BIL_STATUS + BIL_METHOD + PGW_PRICE + PGW_CURRENCY )
    注:各参数含义请参阅附录3,其中SECRET_KEY为商户账号的安全密钥。
退款接口(由商户系统发起):
    REQ_SIGN = SHA256 ( SECRET_KEY + REQ_TIMES + REQ_EMAIL + TNS_GCID + PGW_PRICE )
    注:各参数含义请参阅附录3,其中SECRET_KEY为商户账号的安全密钥,PGW_PRICE为商户需要退款的金额。
附录2:付款请求参数表
完整的参数列表如下:
    请求参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_EMAIL 商户的GC账户邮箱 255 account123@merchant77.com
    REQ_INVOICE 商户系统创建的订单号(允许数字、大小写字母、符号_与-) 64 ORDER1234567890
    REQ_SIGN 当前请求的数字签名 64 8a8d17fb8f50db848c8aa2f850e83688c9ceb611cea761f0c64b998c5bbd7e4e
    REQ_MERCHANT 展示在付款页面的商户名称(默认为商户域名) - 32 MERCHANT-77 LTD.
    BIL_CC3DS 信用卡付款时是否启用3DS验证(非0则启用) - 1 1
    请求参数名 参数说明 必要 最大长度 参数值举例
    CUS_EMAIL 付款人的邮箱 255 customer789@gmail.com
    CUS_COUNTRY 付款人所在国家代码(ISO3166两字母) - 2 US
    CUS_STATE 付款人所在州/县/区域 - 64 New York
    CUS_CITY 付款人所在城市 - 32 Rochester
    CUS_ADDRESS 付款人所在地址 - 255 333 Lexington Avenue, 7th Floor, Room 701
    CUS_POSTAL 付款人所属邮编 - 16 10017
    CUS_PHONE 付款人的座机号码(国际区号|号码) - 32 86|65430127
    CUS_MOBILE 付款人的手机号码(国际区号|号码) - 32 86|13913913913
    CUS_IMUSR 付款人的即时通信用户名(类型:用户名) - 255 skype:user2345
    CUS_FNAME 付款人名 - 32 John
    CUS_LNAME 付款人姓 - 32 Smith
    CUS_REGISTER 付款人在商户系统中的注册时间(UNIX时间戳) - 10 1466452149
    请求参数名 参数说明 必要 最大长度 参数值举例
    BIL_GOODSNAME 展示在付款页面的商品描述 - 255 Smart Phone P238 x1
    BIL_QUANTITY 商品数量 - 10 3
    BIL_PRICE 请求的付款金额 16 37.86
    BIL_CURRENCY 付款的货币代码(ISO4217) 3 USD
    BIL_METHOD 指定的支付方式代码(默认为信用卡方式) - 3 C01
    BIL_PRCCODE 特定支付方式(如电信短代)的计费点代码 - 255 9487545
    请求参数名 参数说明 必要 最大长度 参数值举例
    URL_SUCCESS 付款成功后的跳转地址 - 255 https://www.merchant77.com/success.php?order=ORDER1234567890
    URL_PENDING 付款处理中的跳转地址(非实时到帐) - 255 https://www.merchant77.com/pending.php?order=ORDER1234567890
    URL_FAILED 付款失败后的跳转地址 - 255 https://www.merchant77.com/failed.php?order=ORDER1234567890
    URL_NOTIFY 付款状态通知的请求地址 - 255 https://www.merchant77.com/notification.php?order=ORDER1234567890
    请求参数名 参数说明 必要 最大长度 参数值举例
    CUSTOM_FD0 商户系统的自定义参数0 - 255 123456
    CUSTOM_FD7 商户系统的自定义参数7 - 255 ONEtwo three fourfive
附录3:付款状态通知(PSN)参数表
完整的参数列表如下:
    请求参数名 参数说明 必要 最大长度 参数值举例
    REQ_TIMES 当前请求的UNIX时间戳 10 1466492149
    REQ_EMAIL 商户的GC账户邮箱 255 account123@merchant77.com
    REQ_INVOICE 商户系统创建的订单号(由付款请求提交) 64 ORDER1234567890
    REQ_SIGN 当前请求的数字签名 64 8a8d17fb8f50db848c8aa2f850e83688c9ceb611cea761f0c64b998c5bbd7e4e
    REQ_REFERER 付款页面的跳转引用地址 - 255 https://www.merchant77.com/checkout.php
    REQ_SANDBOX 如果参数值为ON则当前交易处于测试环境下 - 2 ON
    请求参数名 参数说明 必要 最大长度 参数值举例
    CUS_EMAIL 付款人的邮箱(由付款请求提交) 255 customer789@gmail.com
    请求参数名 参数说明 必要 最大长度 参数值举例
    TNS_GCID GC交易流水号 16 CCGM48FGLP11H8MT
    TNS_UTIMES 创建交易的UNIX时间戳 16 1512360895.5831
    请求参数名 参数说明 必要 最大长度 参数值举例
    BIL_PRICE 请求的付款金额(由付款请求提交) 16 37.86
    BIL_CURRENCY 请求的付款货币代码(ISO4217,由付款请求提交) 3 USD
    BIL_METHOD 交易的支付方式代码 3 C01
    BIL_IPADDR 付款人进入付款页面时的IP地址(v4/v6) 40 123.123.123.123
    BIL_STATUS 当前交易的付款状态(详情见附录4) 16 paid
    请求参数名 参数说明 必要 最大长度 参数值举例
    PGW_PRICE 当前交易的实际付款金额 - 16 37.86
    PGW_CURRENCY 当前交易的实际付款货币代码(ISO4217) - 3 USD
    PGW_CCHOLDER 信用卡付款时的持卡人姓名 - 64 John Smith
    PGW_CC3DS 信用卡付款时的3DS结果代码(非0则通过验证) - 1 3
    PGW_MESSAGE 支付渠道所返回的相关信息(如错误提示等) - 255 payment success.
    请求参数名 参数说明 必要 最大长度 参数值举例
    FDL_DECISION 当前交易的风控决策(详情见附录5) - 3 REV
    请求参数名 参数说明 必要 最大长度 参数值举例
    CUSTOM_FD0 商户系统的自定义参数0(由付款请求提交) - 255 123456
    CUSTOM_FD7 商户系统的自定义参数7(由付款请求提交) - 255 ONEtwo three fourfive
附录4:交易状态
完整的状态列表如下:
    交易状态值 状态说明
    unpaid 交易未付款
    paid 交易已付款
    pending 付款处理中(非实时到帐或处理延迟)
    cancelled 付款已取消(由付款人操作)
    failed 付款已失败
    refunding 退款处理中
    refunded 已全额退款
    complaint 付款存在争议(由付款人发起)
    chargeback 交易已拒付/撤单
附录5:风控决策
完整的决策列表如下:
    风控决策值 决策说明
    ACP 已通过风控规则
    REV 建议审核的风险交易
    REJ 已拒绝付款或建议退款(高风险)
    BAN 已拒绝付款(高风险及黑名单)
附录6:可用的支付渠道
请联系您的客户经理确认并开通业务所在区域的相关支付方式。
    REQ_EMKEY
    REQ_SANDBOX
    INVOICE_REPEAT_MAX
    TNS_GCID
    REFUND FAILED
    BIL_CURRENCY
    CREDIT_CARD_FAILED_MAX
    REQ_REFERER
    BIL_CCNUMBER
    PGW_GATEWAY
1. 支付列表与名说明
通过接入GLOCASHPAYMENT支付网关系统所支持的支付方式列表(BIL_METHOD允许值列表):
    BIL_METHOD代码 支付所属类型 说明
    C01 信用卡支付 信用卡付款是顾客自愿使用其信用卡通过网络即时向对方帐户支付的一种方式,付款成功后,所支付的款项将立刻进入商家提供的账户,信用卡支付方式比较灵活,使用范围比较广
    P01 paysafecard在线支付 既不需要银行账户也不需要信用卡的一种在线支付,它使用简单:)
    T01 电话支付 消费者使用电话(固定电话、手机、小灵通)或其他类似电话的终端设备完成付款的方式
    L01 比特币支付 使用虚拟电子货币比特币进行支付
    L02 巴西boleto支付 巴西地区主流的现金支付方式,受巴西中央银行监管的巴西官方。客户可以到任何一家巴西银行、ATM机、Caipiao网点或使用网上银行授权银行转账
    L03 菲律宾在线支付 Dragonpay是菲律宾一家公司提供的在线支付,是一家安全可靠的在线支付方式。
    L04 新加坡虚拟信用卡支付 新加坡的数字支付提供商,它是一种虚拟信用卡,可以让所有年龄段的人都能实现在线安全付款,用户通过购买樱桃卡并且充值到账户激活使用
    L07 新加披DBS银行线上支付
    L08 新加披OCBC银行线上支付
    L09 新加披United Overseas银行线上支付
    L10 新加披CITIBank银行线上支付
    L11 新加披Standard Chartered银行线上支付
    L12 新加披enets电子钱包线上支付
    L13 泰国Siam Commercial银行线上支付
    L14 泰国Krung Thai银行线上支付
    L15 泰国Bank of Ayudaya银行线上支付
    L16 泰国United overseas Bank(Thai)银行线上支付
    L17 印度尼西亚Bank Centra lAsia在线支付
    L18 印度尼西亚Bank Negara Indonesia在线支付
    L19 印度尼西亚Bank Rakyat Indonesia在线支付
    L20 印度尼西亚CIMB Niaga在线支付
    L21 印度尼西亚Mandiri银行在线支付
    L22 越南Bank Đầu tư và Phát triển Việt Nam BIDV 在线支付
    L23 越南ACB 银行在线支付
    L24 越南Dong A 银行在线支付
    L25 越南Vietnam Maritime Commercial Joint Stock Bank (MariTimeBank) 银行在线支付
    L26 越南MB 银行在线支付
    L27 越南Sacom 银行在线支付
    L28 越南Techcom 银行在线支付
    L29 越南Vietin 银行在线支付
    L30 马来西亚 Maybank 在线支付
    L31 马来西亚 Bank Islam 在线支付
    L32 马来西亚 Hong Leong Bank 在线支付
    M01 微信移动支付 微信扫码支付
    M02 支付宝移动支付 在手机上支付,通过手机浏览器启动支付宝进行支付
    M03 新加披 enets 扫码支付 用户会在支付页面看到enets付款二维码,需要打开enets钱包扫码支付
1. 订单失败的状态码是什么
1. REQ_ERR