商户付款

商户付款主要是为付款至用户零钱的能力。

在使用前,请确认payment.UserConfig里面配置了的CertPathKeyPath,比较完整的配置参考介绍

  1. PaymentService, err := payment.NewPayment(&payment.UserConfig{
  2. // ...
  3. CertPath: "[wx_cert_path]",
  4. KeyPath: "[wx_key_path]",
  5. // ...
  6. })

商户付款到用户零钱

  1. transfer := &request.RequestTransferBatch{
  2. AppID: "{APPID}",
  3. OutBatchNO: "0010010404201411170000046522",
  4. BatchName: "batch-1",
  5. BatchRemark: "batch-1-remark",
  6. TotalAmount: 30,
  7. TotalNum: 1,
  8. TransferDetailList: []*request.TransferDetail{
  9. &request.TransferDetail{
  10. OutDetailNO: "00100104042014111700000465221",
  11. TransferAmount: 30,
  12. TransferRemark: "remark",
  13. OpenID: "o4QEk5Kc_y8QTrENCpKoxYhS4jkg",
  14. UserName: object.NewNullString("username", true),
  15. },
  16. },
  17. }
  18. payResult, err := services.PaymentApp.TransferBatch.Batch(c.Request.Context(), transfer)
  19. if err != nil {
  20. panic(err)
  21. }
  22. c.JSON(http.StatusOK, payResult)

RSA加密生成公钥

商户付款到银行卡需要对银行卡号与姓名进行 RSA 加密,所以这里需要先下载 RSA 公钥到本地 (服务器),可以使用openssl工具,请按照微信的方式,生成公钥

查询付款到零钱的订单

  1. rs, err := services.PaymentApp.TransferBatch.QueryBatch(
  2. c.Request.Context(),
  3. "{BatchID}",
  4. true,
  5. 0,
  6. 10,
  7. "")
  8. if err != nil {
  9. panic(nil)
  10. }
  11. c.JSON(http.StatusOK, rs)

BatchID

  • 类型: string(32)
  • 必传:
  • 示例: 10000098201411111234567890

商户调用付款API时获取的批次号。

微信官方文档地址: