wxpay

package module
v1.0.0-beta.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2020 License: Apache-2.0 Imports: 21 Imported by: 0

README

fastwego/wxpay [beta]

A fast wxpay(v2) development sdk written in Golang

GoDoc Go Report Card

快速开始 & demo

go get github.com/fastwego/wxpay
// 微信支付 实例
pay = wxpay.New(wxpay.Config{
    Appid:  "APPID",
    Mchid:  "MCHID",
    ApiKey: "APIKEY",
    //IsSandBoxMode: true,
    Cert: "CERT",
})

// 统一下单
params := map[string]string{
    "appid":            pay.Config.Appid,
    "mch_id":           pay.Config.Mchid,
    "nonce_str":        util.GetRandString(32),
    "body":             "BODY",
    "out_trade_no":     "NO.10086",
    "total_fee":        c.Request.URL.Query().Get("fee"), // 201
    "spbill_create_ip": "12.123.14.223",
    "notify_url":       viper.GetString("NOTIFYURL"),
    "trade_type":       types.TradeTypeAPP,
}
result, err := order.UnifiedOrder(pay, params)
fmt.Println(result, err)

if err != nil {
    return
}

// 返回客户端预下单信息
//result["prepay_id"]

完整演示项目:

https://github.com/fastwego/wxpay-demo

查看所有支持的 API 列表

架构设计

sdk

框架特点

快速

「快」作为框架设计的核心理念,体现在方方面面:

  • 使用 Go 语言,开发快、编译快、部署快、运行快,轻松服务海量用户
  • 丰富的文档演示代码 ,快速上手
  • 独立清晰的模块划分,快速熟悉整个框架,没有意外,一切都是你期望的样子
  • 甚至连框架自身的大部分代码也是自动生成的,维护更新快到超乎想象
符合直觉

作为第三方开发框架,尽可能贴合官方文档和设计,不引入新的概念,不给开发者添加学习负担

官方文档就是最好的文档

每个接口的注释都附带官方文档的链接,让你随时翻阅,省时省心

完备的单元测试

100% 覆盖每一个接口,让你每一次调用都信心满满

活跃的开发者社区

FastWeGo 是一套完整的微信开发框架,包括公众号、开放平台、微信支付、企业微信、小程序、小游戏等微信服务,拥有庞大的开发者用户群体

你遇到的所有问题几乎都可以在社区找到解决方案

参与贡献

欢迎提交 pull request / issue / 文档,一起让微信开发更快更好!

Faster we go together!

加入开发者交流群

Documentation

Overview

Package wxpay 微信支付

Index

Constants

This section is empty.

Variables

View Source
var RSAServerUrl = "https://fraud.mch.weixin.qq.com"

获取RSA公钥API

View Source
var WXPayServerUrl = "https://api.mch.weixin.qq.com"

微信 api 服务器地址

Functions

This section is empty.

Types

type Client

type Client struct {
	Ctx *WXPay
}

HttpClient 用于向接口发送请求

func (*Client) HTTPPost

func (client *Client) HTTPPost(uri string, params map[string]string, isCertificate bool) (resp []byte, err error)

HTTPPost POST 请求

type Config

type Config struct {
	Appid         string
	Mchid         string // 商户 id
	ApiKey        string // 商户 api key
	IsSandboxMode bool   // 是否开启沙箱模式
	Cert          string // 证书路径
}

微信支付配置

type Server

type Server struct {
	Ctx *WXPay
}

响应微信请求 或 推送消息/事件 的服务器

func (*Server) PaymentNotify

func (s *Server) PaymentNotify(request *http.Request) (params map[string]string, err error)

支付结果 回调

See: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_7&index=3

func (*Server) RefundNotify

func (s *Server) RefundNotify(request *http.Request) (params map[string]string, err error)

退款结果 回调

See: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_16&index=11

func (*Server) ResponseSuccess

func (s *Server) ResponseSuccess(writer http.ResponseWriter, request *http.Request) (err error)

ResponseSuccess 响应微信消息

<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>

type WXPay

type WXPay struct {
	Config Config
	Client Client
	Server Server
	Logger *log.Logger
}

微信支付 实例

func New

func New(config Config) (wxpay *WXPay)

创建 实例

func (*WXPay) SetLogger

func (wxpay *WXPay) SetLogger(logger *log.Logger)

SetLogger 日志记录 默认输出到 os.Stdout

可以新建 logger 输出到指定文件

如果不想开启日志,可以 SetLogger(nil)

func (*WXPay) Sign

func (wxpay *WXPay) Sign(params map[string]string, signType string) (sign string, err error)

参数签名

See: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3

Directories

Path Synopsis
apis
corp_pay
Package corp_pay 企业付款 Package corp_pay 企业付款 Package corp_pay 企业付款 Package corp_pay 企业付款 Package corp_pay 企业付款
Package corp_pay 企业付款 Package corp_pay 企业付款 Package corp_pay 企业付款 Package corp_pay 企业付款 Package corp_pay 企业付款
coupon
Package coupon 代金券 Package coupon 代金券 Package coupon 代金券
Package coupon 代金券 Package coupon 代金券 Package coupon 代金券
dev_util
Package dev_util 开发辅助 Package dev_util 开发辅助
Package dev_util 开发辅助 Package dev_util 开发辅助
download
Package download 下载 相关 Package download 下载 相关 Package download 下载 相关
Package download 下载 相关 Package download 下载 相关 Package download 下载 相关
lucky_money
Package lucky_money 现金红包 Package lucky_money 现金红包 Package lucky_money 现金红包 Package lucky_money 现金红包
Package lucky_money 现金红包 Package lucky_money 现金红包 Package lucky_money 现金红包 Package lucky_money 现金红包
micropay
Package micropay 付款码支付 Package micropay 付款码支付 Package micropay 付款码支付
Package micropay 付款码支付 Package micropay 付款码支付 Package micropay 付款码支付
native
Package native Native 支付
Package native Native 支付
order
Package order 订单相关 Package order 订单相关 Package order 订单相关
Package order 订单相关 Package order 订单相关 Package order 订单相关
profit_sharing
Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账
Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账 Package profit_sharing 分账
refund
Package refund 退款 相关 Package refund 退款 相关
Package refund 退款 相关 Package refund 退款 相关
Package test 模拟微信服务器 测试
Package test 模拟微信服务器 测试
Package ecb implements block cipher mode of encryption ECB (Electronic Code Book) functions.
Package ecb implements block cipher mode of encryption ECB (Electronic Code Book) functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL