hujiali 6 лет назад
Родитель
Сommit
af3d760cca
2 измененных файлов с 25 добавлено и 12 удалено
  1. 7 0
      constant.go
  2. 18 12
      wechat_client.go

+ 7 - 0
constant.go

@@ -32,6 +32,13 @@ const (
 	wxDownloadfundflow  = "pay/downloadfundflow"                  //下载资金账单
 	wxDownloadfundflow  = "pay/downloadfundflow"                  //下载资金账单
 	wxBatchquerycomment = "billcommentsp/batchquerycomment"       //拉取订单评价数据
 	wxBatchquerycomment = "billcommentsp/batchquerycomment"       //拉取订单评价数据
 	wxTransfers         = "mmpaymkttransfers/promotion/transfers" //企业向微信用户个人付款
 	wxTransfers         = "mmpaymkttransfers/promotion/transfers" //企业向微信用户个人付款
+	wxEntrustPublic     = "papay/entrustweb"                      //公众号纯签约
+	wxEntrustApp        = "papay/preentrustweb"                   //APP纯签约
+	wxEntrustH5         = "papay/h5entrustweb"                    //H5纯签约
+	wxEntrustQuery      = "papay/querycontract"                   //查询签约关系
+	wxEntrustDelete     = "papay/deletecontract"                  //申请解约
+	wxEntrustApplyPay   = "pay/pappayapply"                       //申请扣款
+	wxEntrustQueryOrder = "pay/paporderquery"                     //查询扣款订单
 
 
 	//SanBox
 	//SanBox
 	wxSandboxGetsignkey        = "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey"
 	wxSandboxGetsignkey        = "https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey"

+ 18 - 12
wechat_client.go

@@ -20,7 +20,7 @@ type WeChatClient struct {
 	IsProd  bool
 	IsProd  bool
 }
 }
 
 
-//初始化微信客户端 ok
+// 初始化微信客户端 ok
 //    appId:应用ID
 //    appId:应用ID
 //    mchId:商户ID
 //    mchId:商户ID
 //    ApiKey:API秘钥值
 //    ApiKey:API秘钥值
@@ -33,7 +33,7 @@ func NewWeChatClient(appId, mchId, apiKey string, isProd bool) (client *WeChatCl
 		IsProd: isProd}
 		IsProd: isProd}
 }
 }
 
 
-//提交付款码支付 ok
+// 提交付款码支付 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1
 func (w *WeChatClient) Micropay(body BodyMap) (wxRsp *WeChatMicropayResponse, err error) {
 func (w *WeChatClient) Micropay(body BodyMap) (wxRsp *WeChatMicropayResponse, err error) {
 	var bs []byte
 	var bs []byte
@@ -52,7 +52,7 @@ func (w *WeChatClient) Micropay(body BodyMap) (wxRsp *WeChatMicropayResponse, er
 	return
 	return
 }
 }
 
 
-//统一下单 ok
+// 统一下单 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
 func (w *WeChatClient) UnifiedOrder(body BodyMap) (wxRsp *WeChatUnifiedOrderResponse, err error) {
 func (w *WeChatClient) UnifiedOrder(body BodyMap) (wxRsp *WeChatUnifiedOrderResponse, err error) {
 	var bs []byte
 	var bs []byte
@@ -72,7 +72,7 @@ func (w *WeChatClient) UnifiedOrder(body BodyMap) (wxRsp *WeChatUnifiedOrderResp
 	return
 	return
 }
 }
 
 
-//查询订单 ok
+// 查询订单 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2
 func (w *WeChatClient) QueryOrder(body BodyMap) (wxRsp *WeChatQueryOrderResponse, err error) {
 func (w *WeChatClient) QueryOrder(body BodyMap) (wxRsp *WeChatQueryOrderResponse, err error) {
 	var bs []byte
 	var bs []byte
@@ -91,7 +91,7 @@ func (w *WeChatClient) QueryOrder(body BodyMap) (wxRsp *WeChatQueryOrderResponse
 	return
 	return
 }
 }
 
 
-//关闭订单 ok
+// 关闭订单 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_3
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_3
 func (w *WeChatClient) CloseOrder(body BodyMap) (wxRsp *WeChatCloseOrderResponse, err error) {
 func (w *WeChatClient) CloseOrder(body BodyMap) (wxRsp *WeChatCloseOrderResponse, err error) {
 	var bs []byte
 	var bs []byte
@@ -110,7 +110,7 @@ func (w *WeChatClient) CloseOrder(body BodyMap) (wxRsp *WeChatCloseOrderResponse
 	return
 	return
 }
 }
 
 
-//撤销订单 ok
+// 撤销订单 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_11&index=3
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_11&index=3
 func (w *WeChatClient) Reverse(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp *WeChatReverseResponse, err error) {
 func (w *WeChatClient) Reverse(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp *WeChatReverseResponse, err error) {
 	var (
 	var (
@@ -146,7 +146,7 @@ func (w *WeChatClient) Reverse(body BodyMap, certFilePath, keyFilePath, pkcs12Fi
 	return
 	return
 }
 }
 
 
-//申请退款 ok
+// 申请退款 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
 func (w *WeChatClient) Refund(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp *WeChatRefundResponse, err error) {
 func (w *WeChatClient) Refund(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp *WeChatRefundResponse, err error) {
 	var (
 	var (
@@ -182,7 +182,7 @@ func (w *WeChatClient) Refund(body BodyMap, certFilePath, keyFilePath, pkcs12Fil
 	return
 	return
 }
 }
 
 
-//查询退款 ok
+// 查询退款 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_5
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_5
 func (w *WeChatClient) QueryRefund(body BodyMap) (wxRsp *WeChatQueryRefundResponse, err error) {
 func (w *WeChatClient) QueryRefund(body BodyMap) (wxRsp *WeChatQueryRefundResponse, err error) {
 	var bs []byte
 	var bs []byte
@@ -201,7 +201,7 @@ func (w *WeChatClient) QueryRefund(body BodyMap) (wxRsp *WeChatQueryRefundRespon
 	return
 	return
 }
 }
 
 
-//下载对账单 ok
+// 下载对账单 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_6
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_6
 func (w *WeChatClient) DownloadBill(body BodyMap) (wxRsp string, err error) {
 func (w *WeChatClient) DownloadBill(body BodyMap) (wxRsp string, err error) {
 	var bs []byte
 	var bs []byte
@@ -217,7 +217,7 @@ func (w *WeChatClient) DownloadBill(body BodyMap) (wxRsp string, err error) {
 	return
 	return
 }
 }
 
 
-//下载资金账单 ok
+// 下载资金账单 ok
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_18&index=7
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_18&index=7
 //    好像不支持沙箱环境,因为沙箱环境默认需要用MD5签名,但是此接口仅支持HMAC-SHA256签名
 //    好像不支持沙箱环境,因为沙箱环境默认需要用MD5签名,但是此接口仅支持HMAC-SHA256签名
 func (w *WeChatClient) DownloadFundFlow(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp string, err error) {
 func (w *WeChatClient) DownloadFundFlow(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp string, err error) {
@@ -251,7 +251,7 @@ func (w *WeChatClient) DownloadFundFlow(body BodyMap, certFilePath, keyFilePath,
 	return
 	return
 }
 }
 
 
-//拉取订单评价数据
+// 拉取订单评价数据
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_17&index=11
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_17&index=11
 //    好像不支持沙箱环境,因为沙箱环境默认需要用MD5签名,但是此接口仅支持HMAC-SHA256签名
 //    好像不支持沙箱环境,因为沙箱环境默认需要用MD5签名,但是此接口仅支持HMAC-SHA256签名
 func (w *WeChatClient) BatchQueryComment(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp string, err error) {
 func (w *WeChatClient) BatchQueryComment(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp string, err error) {
@@ -286,7 +286,7 @@ func (w *WeChatClient) BatchQueryComment(body BodyMap, certFilePath, keyFilePath
 	return
 	return
 }
 }
 
 
-//企业向微信用户个人付款
+// 企业向微信用户个人付款
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1
 //    文档地址:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1
 //    注意:此方法未支持沙箱环境,默认正式环境,转账请慎重
 //    注意:此方法未支持沙箱环境,默认正式环境,转账请慎重
 func (w *WeChatClient) Transfer(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp *WeChatTransfersResponse, err error) {
 func (w *WeChatClient) Transfer(body BodyMap, certFilePath, keyFilePath, pkcs12FilePath string) (wxRsp *WeChatTransfersResponse, err error) {
@@ -333,6 +333,12 @@ func (w *WeChatClient) Transfer(body BodyMap, certFilePath, keyFilePath, pkcs12F
 	return
 	return
 }
 }
 
 
+// 公众号纯签约
+//    文档地址:https://pay.weixin.qq.com/wiki/doc/api/pap.php?chapter=18_1&index=1
+func (w *WeChatClient) EntrustPublic(body BodyMap) (bs []byte, err error) {
+	bs, err = w.doWeChat(body, wxEntrustPublic)
+}
+
 //向微信发送请求 ok
 //向微信发送请求 ok
 func (w *WeChatClient) doWeChat(body BodyMap, path string, tlsConfig ...*tls.Config) (bytes []byte, err error) {
 func (w *WeChatClient) doWeChat(body BodyMap, path string, tlsConfig ...*tls.Config) (bytes []byte, err error) {
 	body.Set("appid", w.AppId)
 	body.Set("appid", w.AppId)