支付模块
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

join.go 6.7 KiB

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