介绍

微信支付SDK,基于全新的微信支付APIv3来实现。支持小程序支付、JSAPI支付、Native支付、APP支付、H5支付,支持直连商户模式和服务商模式。

安装说明

go get gitee.com/haming123/wxpay4go

快速上手

  1. 商户对象初始化
package mainimport ("log""wxpay"
)var MchCtx *wxpay.MchWxApp = nil
func MchCtxInit() error {pem_cert, err := wxpay.LoadCertificateWithPath("/path/to/merchant/apiclient_cert.pem")if err != nil {return err}pem_key, err := wxpay.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")if err != nil {return err}MchCtx = wxpay.NewMchWxApp("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)return nil
}func main() {//......err := MchCtxInit()if err != nil {log.Print(err)return}//......
}
  1. 支付下单
func HandlerPayCreateDemo(w http.ResponseWriter, r *http.Request) {//................(其他业务逻辑)var data_req wxpay.WxAppOrderDatadata_req.Description = "业务描述"data_req.Out_trade_no = "业务订单号"data_req.Notify_url = "接收支付通知的URL地址"data_req.Sub_mchid = "子商户号"data_req.Sub_appid = "小程序的APPID"data_req.Payer.Sub_openid = "用户在小程序中的OPENID"data_req.Amount.Total = 20param, err := MchCtx.CreateOrder(data_req)if err!= nil {log.Print(err)return}//................(其他业务逻辑)
}
  1. 支付订单查询
func HandlerPayQueryDemo(w http.ResponseWriter, r *http.Request) {//................(其他业务逻辑)out_trade_no := "业务订单号"sub_mchid := "子商户号"result, err := MchCtx.QueryByOutTradeNo(out_trade_no, sub_mchid)if err!= nil {log.Print(err)return}//................(其他业务逻辑)
}
  1. 支付回调处理
func HandlerPayCallBack(w http.ResponseWriter, r *http.Request) {//解析回调数据req_info, err := MchCtx.ParsePayCallBack(r)if err != nil {wxpay.HttpCallBackReturn(w, 500,"FAIL", "FAIL")return}//................(其他业务逻辑)//回调返回wxpay.HttpCallBackReturn(w, 200, "SUCCESS", "SUCCESS")
}
  1. 退款申请
func HandlerRefundDemo(w http.ResponseWriter, r *http.Request) {//................(其他业务逻辑)var data wxpay.RefundCreateReqdata.Sub_mchid = "子商户号"data.Out_trade_no = "业务订单号"data.Out_refund_no = "商户的退款单号"data.Amount.Total = 20data.Amount.Refund = 20data.Notify_url = "退款结果回调的URL"result, err := MchCtx.RefundOrder(data)if err!= nil {log.Print(err)}//................(其他业务逻辑)
}
  1. 退款回调处理
func HandlerRefundCallBack(w http.ResponseWriter, r *http.Request) {//解析回调数据req_info, err := MchCtx.ParseRefundCallBack(r)if err != nil {wxpay.HttpCallBackReturn(w, 500,"FAIL", "FAIL")return}//................(其他业务逻辑)//回调返回wxpay.HttpCallBackReturn(w, 200, "SUCCESS", "SUCCESS")
}

其他支付产品的使用

  1. 直连商户商户对象初始化
//小程序
MchCtx = wxpay.NewMchWxApp("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//JsAPi
MchCtx = wxpay.NewMchJsApi("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//H5
MchCtx = wxpay.NewMchH5("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//Native
MchCtx = wxpay.NewMchNative("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//App
MchCtx = wxpay.NewMchApp("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
  1. 服务商商户对象初始化
//小程序
MchCtx = wxpay.NewMidWxApp("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//JsAPi
MchCtx = wxpay.NewMidJsApi("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//H5
MchCtx = wxpay.NewMidH5("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//Native
MchCtx = wxpay.NewMidNative("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)
//App
MchCtx = wxpay.NewMidApp("mchID_string", "appID_string", "mchAPIv3Key_string", pem_cert, pem_key)

简单易用的APIv3版微信支付SDK相关推荐

  1. API v3版微信支付平台证书获取与自动更新

    API v3版微信支付平台证书获取与自动更新 关于微信证书 获取平台证书 证书自动更新 首次下载证书 关于微信证书 微信支付开发有两份证书. ♥ 商户证书:商户平台证书私钥可以对请求进行签名,微信服务 ...

  2. 微信支付SDK 中 PHP Certificate Downloader 微信支付 APIv3 平台证书的命令行下载工具 使用教程

    使用环境 在linux 环境中使用 (没有服务器可以使用虚拟机 复制到本地) windows环境很麻烦 使用前准备 商户号.商户证书序列号.商户私匙文件(pem格式).ApiV3密钥 安装好 微信支付 ...

  3. iOS SDK开发系列三之微信支付SDK封装Demo以及xcodebuild简单打包脚本实现

    前言 SDK开发系列文章一 SDK开发系列文章二 之前两个文章介绍了Cocoapods的原理,Xcode环境变量以及动态库和静态库的介绍,这些基本知识就单独抽出来了,方便以后翻阅.看了一遍网上的一些静 ...

  4. 7月第1周风控关注 微信支付SDK曝XXE漏洞 可伪造订单

    ​易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.微信支付SDK被曝XXE漏 ...

  5. Android集成微信支付SDK,实现支付功能

    官方集成文档地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5# 一.在您 App Module 的 build.gra ...

  6. 微信支付SDK接入流程梳理

    微信SDK的支付功能接入简单梳理. 首先说一下,你需要的官网都有,但是官网提供的东西不管新旧与否先给你放上去,部分地方提供的链接点击时还提示404,不同的页面提示相同的下载内容(demo)还不一样,表 ...

  7. Unity接入微信支付SDK

    最近1年转了UE开发,博客更新的比较少,技术栈宽了不少,以后有空尽量多更新,也方便总结记忆 Unity接入微信支付整个过程坑比较多,网上之前的教程要么比较老,要么比较零碎,只能东拼西凑摸索,跑通后还是 ...

  8. tp6中使用微信支付sdk

    一.下载微信支付sdk 二.将lib文件夹下的文件复制到目录:extend->WxPay 将example文件夹下的WxPay.Config.php文件也复制到:extend->WxPay ...

  9. 微信支付SDK的使用

    在此记录一下微信支付sdk的使用 使用微信支付SDK理所应该去看官方文档,按步骤一步步来就好了,怎么还需要写博客呢? 答案是因为使用支付SDK时,遇到了很多弱智的坑,希望后来人不要和我一样SB就好. ...

  10. tp5 微信支付sdk

    接触到微信支付,然而微信官方给出的微信支付sdk用起来不太方便,在原来微信支付sdk上进行了修改,测试过能用,现在我的tp5项目都用这个,分享出来大家研究研究,新手一枚,望大神们能指出错处. git地 ...

最新文章

  1. 【数据库】sqlite中的限制:数据库大小、表数、列数、行数、参数个数、连接数等
  2. c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结
  3. 编程的一些快捷键(转帖)
  4. 天兔(Lepus)监控邮件推送安装配置
  5. refreshtoken用mysql_微信access_token和refresh_token保存于redis
  6. 技术干货 | mPaaS 小程序高玩带你起飞:客户端预置小程序无视网络质量
  7. Arraylist线程不安全原因
  8. html网页制作每周食谱,新增食谱.html
  9. windows 开启/关闭本地连接的批处理程序
  10. GNU nano介绍
  11. 解决显示“此图片来自微信公众平台未经允许不可引用”错误图片
  12. 【词法分析和语法分析】编译原理实验一(hit)2022-lab1
  13. ADO与ADO.NET的区别
  14. Oracle 游标详解(cursor)
  15. 回首2017,展望2018
  16. VMware虚拟机Linux----cents7系统安装操作
  17. 图片转PDF格式怎么弄?我来教你几个方法
  18. 码云gitee 部署公钥匙
  19. 福州大学数据科学与计算机学院分数,2021福州大学录取分数线-福州大学分数线-2021福州大学录取查询网址...
  20. 《『EcmaScript』之理顺Js中的四种继承

热门文章

  1. [Vulfocus解题系列] 所复现漏洞总结
  2. springboot美容院会员管理系统毕业设计源码191740
  3. 【模块】MAX31865 铂电阻温度检测器模块 RTD传感器PT100-PT1000
  4. 基于GIS的三维智慧警务系统
  5. 七牛云存对象存储及域名设置
  6. 如何用计算机校验信息,支付宝短信校验服务怎么开通?-电脑教程
  7. 如果十二星座都有自己的专属 App,你会是哪一款?
  8. 技术选型Rust——事后分析
  9. 【Rust日报】 2020-01-10 track_caller 錯誤處理大突破
  10. 5990.8亿,一个如约而来的重大项目