代码拉取完成,页面将自动刷新
同步操作将从 北京小程科技有限公司/微信 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
这是用Golang封装了微信支付的所有API接口的SDK,并自动生成和解析XML数据,还包括部分服务号、小程序、移动端的工具函数。
struct
类型传递,而不是map
类型。go get -u gitee.com/cuckoopark/wechat
const (
isProd = true // 生产环境或沙盒环境
isMch = false // 是否是企业模式,仅当调用企业付款时为true
serviceType = wechat.ServiceTypeNormalDomestic // 普通商户或服务商等类型
apiKey = "xxxxxxxx" // 微信支付上设置的API Key
certFilepath = "/xxx/yyy/apiclient_cert.p12" // 微信证书文件的本地路径,仅部分接口使用,如果不使用这些接口,可以传递空值
)
config := wechat.Config{
AppId: AppID,
MchId: MchID,
SubAppId: SubAppId, // 仅服务商模式有效
SubMchId: SubMchID, // 仅服务商模式有效
}
client := wechat.NewClient(isProd, isMch, serviceType, apiKey, certFilepath, config)
下面是通用的接口,使用上面初始化时生成的实例client
进行相应函数的调用:
func (*Client) Micropay(MicropayBody) (MicropayResponse, error)
func (*Client) UnifiedOrder(UnifiedOrderBody) (UnifiedOrderResponse, error)
func (*Client) QueryOrder(QueryOrderBody) (QueryOrderResponse, error)
func (*Client) CloseOrder(CloseOrderBody) (CloseOrderResponse, error)
func (*Client) Reverse(ReverseBody) (ReverseResponse, error)
func (*Client) Refund(RefundBody) (RefundResponse, error)
func (*Client) QueryRefund(QueryRefundBody) (QueryRefundResponse, error)
func (*Client) DownloadBill(DownloadBillBody) (string, *DownloadBillResponse, error)
func (*Client) ReportJsApi(ReportJsApiBody) (ReportJsApiResponse, error)
func (*Client) ReportMicropay(ReportMicropayBody) (ReportMicropayResponse, error)
func (*Client) Change(ChangeBody) (ChangeResponse, error)
func (*Client) OpenIdByAuthCode(OpenIdByAuthCodeBody) (OpenIdByAuthCodeResponse, error)
func GetAccessToken(appId string, appSecret string) (AccessToken, error)
func GetUserInfo(accessToken string, openId string, lang ...string) (UserInfo, error)
func GetMiniPaySign(appId, nonceStr, prepayId, signType, timeStamp, apiKey string) (string)
func GetH5PaySign(appId, nonceStr, packages, signType, timeStamp, apiKey string) (string)
func GetAppPaySign(appId, nonceStr, partnerId, prepayId, signType, timeStamp, apiKey string) (string)
其中带有(*Client)
字样的接口,需要使用wechat.NewClient
创建的实例对象来调用,而不带的接口,则可以直接使用wechat.XXX
调用。
使用样例:
func Test() {
// 初始化参数
body := wechat.QueryOrderBody{}
body.OutTradeNo = "YgENQFTovdeJdFouNyy3nFVOhGD6ZvPH"
// 请求订单查询
wxRsp, err := client.QueryOrder(body)
if err != nil {
return
}
fmt.Printf("返回值: %+v\n", wxRsp)
}
注意事项:
wx_xxxxxx.go
文件,里面有XXXBody
和XXXResponse
与之对应。wx_xxxxxx_test.go
测试文件。修改client_test.go
中的生成测试Client的代码,调整沙盒/生产环境、普通商户/服务商等选项,或者修改环境变量,来调整商户参数。
环境变量的脚本在env
文件中,修改后加载环境变量:
source env
go test
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。