pay_data.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package payermax
  2. type ret struct {
  3. Code string `json:"code"` // 响应 ‘SUCCESS’
  4. Msg string `json:"msg"` // 响应 ‘Success’
  5. }
  6. type (
  7. pay_req struct {
  8. Version string `json:"version,omitempty"` // 接口版本。当前值为:1.0
  9. KeyVersion string `json:"keyVersion,omitempty"` // 密钥版本。当前值为:1
  10. RequestTime string `json:"requestTime,omitempty"` // 请求时间,符合rfc3339规范,格式:yyyy-MM-dd’T’HH:mm:ss.SSSXXX
  11. MerchantAppId string `json:"merchantAppId,omitempty"` // 商户应用Id,PayerMax分配给商户应用的唯一标识
  12. MerchantNo string `json:"merchantNo,omitempty"` // 商户号,商户与PayerMax业务签约时生成的唯一标识
  13. Data payReqData `json:"data,omitempty"` // 请求数据体
  14. }
  15. payReqData struct {
  16. OutTradeNo string `json:"outTradeNo,omitempty"` // 商户订单号,唯一标识商户的一笔交易,不能重复,只能包含字母、数字、下划线。
  17. Subject string `json:"subject,omitempty"` // 订单标题
  18. TotalAmount string `json:"totalAmount,omitempty"` // 商户传入的订单金额,金额的单位为元。除以下国家外按照各国币种支持的小数点位上送。注意:巴林、科威特、伊拉克,约旦、突尼斯、利比亚、奥马尔地区,本币只支持两位小数; 印尼、中国台湾、巴基斯坦、哥伦比亚地区,本币不支持带小数金额。
  19. Currency string `json:"currency,omitempty"` // 币种代码,大写字母,参见【交易支持国家/地区与币种】
  20. Country string `json:"country,omitempty"` // 国家代码,大写字母,如果所传的国家代码与币种不匹配,则以货币代码对应的地区展示收银台。如指定了支付方式,则国家必须上送,参见【交易支持国家/地区与币种】
  21. UserId string `json:"userId,omitempty"` // 商户内部的用户Id,需要保证每个ID唯一性
  22. PaymentDetail *paymentDetailData `json:"paymentDetail,omitempty"` // 支付信息,非必填 1、支持仅指定支付方式,收银台会拉取该支付方式支持的所有目标机构 2、支持指定支付方式+目标机构
  23. CardInfo *cardInfoData `json:"cardInfo,omitempty"`
  24. FrontCallbackUrl string `json:"frontCallbackUrl,omitempty"` // 商户指定的跳转URL,用户完成支付后会被跳转到该地址,以http/https开头或者商户应用的scheme地址(目前仅支持Andriod)
  25. NotifyUrl string `json:"notifyUrl,omitempty"` // 服务端回调通知URL,以http/https开头可以通过MerchantDashboard平台配置商户通知地址,如果交易中上送,则以交易为准
  26. }
  27. paymentDetailData struct {
  28. PaymentTokenID string `json:"paymentTokenID,omitempty"` // 卡token支付时,此字段为必填
  29. PaymentMethod string `json:"paymentMethod,omitempty"` // 支付方式,可以为空,参见【收银台支付-支付方式列表】
  30. TargetOrg string `json:"targetOrg,omitempty"` // 目标机构,可以为空,如果指定目标机构,则支付方式也必须指定。
  31. }
  32. cardInfoData struct {
  33. CardOrg string `json:"cardOrg,omitempty"`
  34. CardOrgType string `json:"cardOrgType,omitempty"`
  35. }
  36. pay_resp struct {
  37. Code string `json:"code,omitempty"` // 返回码,’APPLY_SUCCESS’代表成功
  38. Msg string `json:"msg,omitempty"` // 返回描述,’Success.’
  39. Data payRespData `json:"data,omitempty"` // 返回数据体
  40. }
  41. payRespData struct {
  42. OutTradeNo string `json:"outTradeNo,omitempty"` // 商户订单号
  43. TradeToken string `json:"tradeToken,omitempty"` // PayerMax流水号
  44. Status string `json:"status,omitempty"` // 交易状态
  45. RedirectUrl string `json:"redirectUrl,omitempty"` // 跳转地址
  46. }
  47. )
  48. type (
  49. payNotify struct {
  50. Code string `json:"code,omitempty"` // 返回码,’APPLY_SUCCESS’代表成功
  51. Msg string `json:"msg,omitempty"` // 返回描述,’Success.’
  52. KeyVersion string `json:"keyVersion,omitempty"` // 密钥版本。当前值为:1
  53. MerchantAppId string `json:"merchantAppId,omitempty"` // 商户app id
  54. MerchantNo string `json:"merchantNo,omitempty"` // 商户Id
  55. NotifyTime string `json:"notifyTime,omitempty"` // 通知时间,符合rfc3339规范,格式:yyyy-MM-dd’T’HH:mm:ss.SSSXXX
  56. NotifyType string `json:"notifyType,omitempty"` // 通知类型 PAYMENT
  57. Data payNotifyData `json:"data,omitempty"`
  58. }
  59. payNotifyData struct {
  60. OutTradeNo string `json:"outTradeNo,omitempty"` // 商户订单号
  61. TradeToken string `json:"tradeToken,omitempty"` // PayerMax交易流水号
  62. TotalAmount int `json:"totalAmount,omitempty"` // 商户传入的订单金额,金额的单位为元
  63. Currency string `json:"currency,omitempty"` // 订单币种
  64. Status string `json:"status,omitempty"` // 交易状态
  65. }
  66. )
  67. type payReturn struct {
  68. OutTradeNo string `json:"outTradeNo" form:"outTradeNo"`
  69. Status string `json:"status" form:"status"`
  70. TradeToken string `json:"tradeToken" form:"tradeToken"`
  71. }