支付模块
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

92 righe
6.3 KiB

  1. package md
  2. const (
  3. JoinPayUrl = "https://www.joinpay.com/trade/uniPayApi.action"
  4. PayTestAccount = "888118100005250"
  5. PayTestSecretKey = "a12ceace4cc5423eae32b4626adf56c9"
  6. Q1FrpCodeALIPAY = "ALIPAY_H5" //支付宝固定
  7. Q1FrpCodeWEIXINPAYAPP = "WEIXIN_APP3" //微信固定(应该)
  8. //Q1FrpCodeWEIXINPAYH5 = "WEIXIN_H5_PLUS"
  9. //Q1FrpCodeWEIXINPAYGZH = "WEIXIN_GZH"
  10. //Q1FrpCodeWEIXINPAYXCX = "WEIXIN_XCX"
  11. PayTestAliAccount = "777146200391877"
  12. PayTestWeChatAccount = "777196100391173"
  13. )
  14. //
  15. // JoinPayReq
  16. // @Description: 汇聚支付-聚合支付-支付接口-请求参数信息体
  17. // @Url: https://www.joinpay.com/open-platform/pages/document.html?apiName=%E8%81%9A%E5%90%88%E6%94%AF%E4%BB%98&id=6
  18. //
  19. type JoinPayReq struct {
  20. P0Version string `json:"p0_Version" label:"版本号;目前版本号为:2.1;是"`
  21. P1MerchantNo string `json:"p1_MerchantNo" label:"商户编号;商户在支付平台系统的唯一身份标识;是"`
  22. P2OrderNo string `json:"p2_OrderNo" label:"商户订单号;商户系统提交的唯一订单号。仅支持由英文字母、阿拉伯数字、下划线(英文符号“_”)组成的订单号传输;是"`
  23. P3Amount string `json:"p3_Amount" label:"订单金额;单位:元,精确到分,保留两位小数。例如:10.23。;是"`
  24. P4Cur string `json:"p4_Cur" label:"交易币种;默认设置为1(代表人民币);是"`
  25. P5ProductName string `json:"p5_ProductName" label:"商品名称;用于支付时显示在支付平台网关上的订单产品信息;是"`
  26. P6ProductDesc string `json:"p6_ProductDesc" label:"商品描述;对商品信息进行描述;否"`
  27. P7Mp string `json:"p7_Mp" label:"公用回传参数;如果商户请求时传递了该参数,则返回给商户时会原值传回;否"`
  28. P9NotifyUrl string `json:"p9_NotifyUrl" label:"服务器异步通知地址;汇聚支付系统主动通知商户网站里指定的 http 地址。
  29. 异步通知地址需按:
  30. 1.AB|notifyUrl 的规则上送才会返回用户标识和平台优惠金额;
  31. 2.云闪付 CD|notifyUrl 的规则上才会返回用户支付的卡类型;是"`
  32. Q1FrpCode string `json:"q1_FrpCode" label:"交易类型;可见md模型里提供的;是"`
  33. Q2MerchantBankCode string `json:"q2_MerchantBankCode" label:"银行商户编码;非必填;否"`
  34. Q4IsShowPic string `json:"q4_IsShowPic" label:"是否展示图片;默认为空,不输出图片;填1表示输出图片,仅交易类型为主扫时可用(即当q1_FrpCode=ALIPAY_NATIVE、WEIXIN_NATIVE、JD_NATIVE、QQ_NATIVE、UNIONPAY_NATIVE、BAIDU_NATIVE、SUNING_NATIVE);否"`
  35. Q5OpenId string `json:"q5_OpenId" label:"微信Openid;
  36. 公众号获取用户Openid,公众号支付商户及微信小程序商户必填(即当q1_FrpCode=WEIXIN_GZH、WEIXIN_XCX);否"`
  37. Q6AuthCode string `json:"q6_AuthCode" label:"
  38. 付款码数字;付款码数字被扫支付必填(即当q1_FrpCode= ALIPAY_CARD、WEIXIN_CARD、JD_CARD、QQ_CARD、UNIONPAY_CARD;否"`
  39. Q7AppId string `json:"q7_AppId" label:"APPID;微信公众号、微信小程序、微信App、微信app+支付必填(即当q1_FrpCode= WEIXIN_GZH、WEIXIN_XCX、WEIXIN_APP3、WEIXIN_H5_PLUS【对应报备小程序appid】);否"`
  40. Q8TerminalNo string `json:"q8_TerminalNo" label:"
  41. 终端设备号;
  42. 通过终端信息采集接口获取,由汇聚生成。微信/支付宝被扫支付必填(即当q1_FrpCode= ALIPAY_CARD、WEIXIN_CARD);否"`
  43. Q9TransactionModel string `json:"q9_TransactionModel" label:"支付宝H5模式;支付宝H5选填,默认为空
  44. 1.模式一:当 q9_TransactionModel = MODEL1或为空时,有应答参数返回,rc_Result中返回html,需进行重定向跳转;2.模式二:当 q9_TransactionModel = MODEL2时,直接跳转链接,不返回应答参数。;否"`
  45. QATradeMerchantNo string `json:"qa_TradeMerchantNo" label:"报备商户号;请填写报备产品后返回的报备商户号;是"`
  46. QBbuyerId string `json:"qb_buyerId" label:"买家的支付宝唯一用户号;支付宝服务窗支付必填(即当q1_FrpCode=ALIPAY_FWC )(买家的支付宝唯一用户号(2088开头16位纯数字));否"`
  47. QJDJPlan string `json:"qj_DJPlan" label:"点金计划;该字段参数值为JSON串;否"`
  48. QKDisablePayModel string `json:"qk_DisablePayModel" label:"禁用支付方式;目前仅支持使用微信和支付宝支付时可禁用某些方式,详细枚举值见附录;否"`
  49. QLTerminalIp string `json:"ql_TerminalIp" label:"终端设备IP;
  50. 商户端终端设备 IP 地址。微信/支付宝被扫支付必填(即当q1_FrpCode= ALIPAY_CARD、WEIXIN_CARD);否"`
  51. Hmac string `json:"hmac" label:"签名数据;参见签名机制;是"`
  52. }
  53. type JoinPayResponse struct {
  54. R7TrxNo string `json:"r7_TrxNo"`
  55. RbCodeMsg string `json:"rb_CodeMsg"`
  56. R2OrderNo string `json:"r2_OrderNo"`
  57. R3Amount string `json:"r3_Amount"`
  58. R6FrpCode string `json:"r6_FrpCode"`
  59. RcResult string `json:"rc_Result"`
  60. RaCode int `json:"ra_Code"`
  61. Hmac string `json:"hmac"`
  62. RdPic string `json:"rd_Pic"`
  63. R4Cur string `json:"r4_Cur"`
  64. R5Mp string `json:"r5_Mp"`
  65. R8MerchantBankCode string `json:"r8_MerchantBankCode"`
  66. R0Version string `json:"r0_Version"`
  67. R1MerchantNo string `json:"r1_MerchantNo"`
  68. }
  69. type JoinPayCallBack struct {
  70. R1MerchantNo string `json:"r1_MerchantNo" form:"r1_MerchantNo"`
  71. R2OrderNo string `json:"r2_OrderNo" form:"r2_OrderNo"`
  72. R3Amount string `json:"r3_Amount" form:"r3_Amount"`
  73. R4Cur string `json:"r4_Cur" form:"r4_Cur"`
  74. R5Mp string `json:"r5_Mp" form:"r5_Mp"`
  75. R6Status int `json:"r6_Status" form:"r6_Status"`
  76. R7TrxNo string `json:"r7_TrxNo" form:"r7_TrxNo"`
  77. R8BankOrderNo string `json:"r8_BankOrderNo" form:"r8_BankOrderNo"`
  78. R9BankTrxNo string `json:"r9_BankTrxNo" form:"r9_BankTrxNo"`
  79. RaPayTime string `json:"ra_PayTime" form:"ra_PayTime"`
  80. RbDealTime string `json:"rb_DealTime" form:"rb_DealTime"`
  81. RcBankCode string `json:"rc_BankCode" form:"rc_BankCode"`
  82. RdOpenId string `json:"rd_OpenId" form:"rd_OpenId"`
  83. ReDiscountAmount string `json:"re_DiscountAmount" form:"re_DiscountAmount"`
  84. RhcardType string `json:"rh_cardType" form:"rh_cardType"`
  85. Hmac string `json:"hmac" form:"hmac"`
  86. }