data.go 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package cropay
  2. import "encoding/xml"
  3. // 支付下单参数
  4. type payOrder_req struct {
  5. baseInfo // 基本信息
  6. billInfo // 账单信息
  7. deliveryInfo // 送货信息
  8. productInfo // 购物信息
  9. Signature string `form:"signature"` //订单签名=md5(order_hash+merchant_id+merch_order_id +price_currency+price_amount) order_hash:商户的交易证书,可从“商户后台”获取 注意:不同字符集中生成的证书可能不同,应使用utf-8
  10. Client_finger_cybs string `form:"client_finger_cybs"` //用于调用风控接口的唯一字符串,一般是32位的guid字符串
  11. }
  12. // 基本信息
  13. type baseInfo struct {
  14. Merchant_id int `form:"merchant_id"` // 商户号 (由Cropay支付系统分配) 备注:实际提交时,该值需要进行转换。转换方法为:商户号 * 818 + 5201314
  15. Order_type string `form:"order_type"` // 支付方式 0:跳转支付 3:内嵌支付 4:站内支付 (必须提交信用卡信息) 5:控制台支付(包括信用卡和国际本地化支付) 7:国际本地化支付(必须提交debit_id,issue_id)
  16. Gw_version string `form:"gw_version"` // 接口版本号 本公司开发的接口版本号统一命名。例如:zencart(1.0) 商户自行开发的接口,该“版本号”值为空,或根据开发平台分别命名为:asp(1.0),php(1.0),jsp(1.0),asp.net(1.0)
  17. Language string `form:"language"` // 浏览器语言。可选值为:en-us:英语 zh-cn:中文 zh-tw:繁体中文 de-de:德语 fr-fr:法语 it-it:意大利语 es-es:西班牙语 ja-jp:日语 ko-kr:韩语 pt-pt:葡萄牙语 若此字段传空,则默认为英文。
  18. Merch_order_ori_id string `form:"merch_order_ori_id"` // 商户原始订单号 (例如:791 , 10320 ...) 由商户网站生成,在商户网站后台查询该订单的订单号
  19. Merch_order_id string `form:"merch_order_id"` // 商户订单号 (例如:141017114556-3694 , ...) 由商户网站生成,用来唯一标识该订单,不应当重复。
  20. Merch_order_date string `form:"merch_order_date"` // 商户订单时间 格式:YYYYMMDDHHMMSS。例如:20180731235959
  21. Price_currency string `form:"price_currency"` // 标价币种 (具体支持的币种需要向销售确认) 例如:USD:美元,CNY:人民币,EUR:欧元,GBP:英镑,JPY:日元,KRW:韩元,RUR:俄罗斯卢布,HKD:港币,AUD:澳元
  22. Price_amount float64 `form:"price_amount"` // 标价金额 格式:保留两位小数的金额。例如:263.50
  23. Ip string `form:"ip"` // 持卡人的IP地址
  24. Url_sync string `form:"url_sync"` // 订单状态同步地 址/异步回传地址 例如:http://www.abc.com/glb-callback.php
  25. Url_succ_back string `form:"url_succ_back"` // 成功订单返回地址 (待处理状态的订单也返回该网址)
  26. Url_fail_back string `form:"url_fail_back"` // 失败订单返回地址
  27. Url_referrer_domain string `form:"url_referrer_domain"` // 商户交易网址(如果网站放在子目录,则也需要带上子目录) 例如 www.abc.com 或sale.abc.com/website1
  28. }
  29. // 账单信息
  30. type billInfo struct {
  31. Bill_address string `form:"bill_address"` // 账单地址
  32. Bill_country string `form:"bill_country"` // 账单国家(符合ISO标准的国家代码,参考“附录A”)
  33. Bill_province string `form:"bill_province"` // 账单地区
  34. Bill_city string `form:"bill_city"` // 账单城市
  35. Bill_email string `form:"bill_email"` // 账单e_mail 备注:必须符合e_mail格式
  36. Bill_phone string `form:"bill_phone"` // 账单电话
  37. Bill_post string `form:"bill_post"` // 账单邮编
  38. }
  39. // 送货信息
  40. type deliveryInfo struct {
  41. Delivery_name string `form:"delivery_name"` // 收货姓名
  42. Delivery_address string `form:"delivery_address"` // 收货地址
  43. Delivery_country string `form:"delivery_country"` // 收货国家(符合ISO标准的国家代码,参考“附录A”)
  44. Delivery_province string `form:"delivery_province"` // 收货地区
  45. Delivery_city string `form:"delivery_city"` // 收货城市
  46. Delivery_email string `form:"delivery_email"` // 收货e_mail 备注:必须符合e_mail格式
  47. Delivery_phone string `form:"delivery_phone"` // 收货电话
  48. Delivery_post string `form:"delivery_post"` // 收货邮编
  49. }
  50. // 购物信息
  51. type productInfo struct {
  52. Product_name string `form:"product_name"` // 商品名称 (可以传多个产品信息,至少1个,最多50个)
  53. Product_sn string `form:"product_sn"` // 商品货号 (同上)
  54. Quantity int `form:"quantity"` // 商品数量 (同上)
  55. Unit float64 `form:"unit"` // 商品单价 (同上)
  56. }
  57. // 支付下单响应
  58. type payOrder_resp struct {
  59. XMLName xml.Name `xml:"payments"` // 指定最外层的标签
  60. Merchant_id int `xml:"merchant_id"` // 商户号 (由Cropay支付系统分配)
  61. Merch_order_ori_id string `xml:"merch_order_ori_id"` // 商户原始订单号 由商户网站生成,在商户网站后台查询该订单的订单号
  62. Merch_order_id string `xml:"merch_order_id"` // 商户订单号 由商户网站生成,用来唯一标识该订单,不应当重复。
  63. Price_currency string `xml:"price_currency"` // 标价币种
  64. Price_amount float64 `xml:"price_amount"` // 标价金额
  65. Order_remark string `xml:"order_remark"` // 订单备注
  66. Order_id string `xml:"order_id"` // 系统订单号 (例如:1410302359590000) 本公司的系统生成的唯一标识该订单的订单号
  67. Status string `xml:"status"` // 订单状态 T-待处理 N-失败 E-出错 备注:status不会返回Y(成功)状态;如果系统正常,会返回T(待处理)状态。E代表异常订单
  68. Message string `xml:"message"` // 订单结果的描述性信息 备注:对于Y/N/E状态,都可能返回message信息。如果message不为空,该信息需要显示给持卡人看。
  69. Payment_url string `xml:"payment_url"` // 该值是一个URL。如果status=T,商户网站需要跳转到该页面,以便持卡人完成支付过程。 备注:该参数经过了base64转换。
  70. Signature string `xml:"signature"` // 签名=md5(order_hash+merchant_id+merch_order_id+ price_currency+price_amount+order_id+status) order_hash:商户的交易证书 注意:不同字符集中生成的证书可能不同,应使用utf-8
  71. Pay_title string `xml:"pay_title"` // 支付方式的标题。比如:Payment Gateway
  72. Pay_logo string `xml:"pay_logo"` // 支付方式的Logo文件名/URL。如果有多个文件名/URL,则用;分隔。例如: http://www.html5.com/vmj.png http://www.html5.com/vmj.png;http://www.html5.com/201.png vmj.png;201.png
  73. }
  74. // 通知响应
  75. type notify_resp struct {
  76. Merchant_id int `form:"merchant_id"` // 商户号 (由Cropay支付系统分配)
  77. Merch_order_ori_id string `form:"merch_order_ori_id"` // 商户原始订单号 由商户网站生成,在商户网站后台查询该订单的订单号
  78. Merch_order_id string `form:"merch_order_id"` // 商户订单号 由商户网站生成,用来唯一标识该订单,不应当重复。
  79. Bill_email string `form:"bill_email"` // 账单邮箱
  80. Price_currency string `form:"price_currency"` // 标价币种
  81. Price_amount string `form:"price_amount"` // 标价金额
  82. Order_remark string `form:"order_remark"` // 备注信息
  83. Order_id string `form:"order_id"` // 系统订单号 (例如:1410302359590000) 本公司的系统生成的唯一标识该订单的订单号
  84. Status string `form:"status"` // 订单状态 Y-成功 N-失败 备注:系统异步回传接口不会返回“T-待处理”和“E-错误”这两种状态,只会返回“Y-成功”和“N-失败”
  85. Message string `form:"message"` // 订单结果的描述性信息
  86. Card_holder string `form:"card_holder"` // 持卡人姓名(Full Name)
  87. Card_type_id string `form:"card_type_id"` // 卡种 1:Visa,2:MasterCard,3:JCB,4:AE运通卡
  88. Card_num_mask string `form:"card_num_mask"` // 卡号(掩码)
  89. Bin_country string `form:"bin_country"` // 发卡行所在国家的编码。参考附录A:国家代码表
  90. Signature string `form:"signature"` // 签名=md5(order_hash+merchant_id+merch_order_id+ price_currency+price_amount+order_id+status) order_hash:商户的交易证书 注意:不同字符集中生成的证书可能不同,应使用utf-8
  91. }