QQ、微信(WeChat)、支付宝(AliPay)的Go版本SDK。
程序员文章站
2022-03-16 12:05:51
...
QQ、微信、支付宝的Golang版本SDK
一、安装
$ go get github.com/iGoogle-ink/gopay
import (
"fmt"
"github.com/iGoogle-ink/gopay"
)
func main() {
xlog.Debug("GoPay Version: ", gopay.Version)
}
微信支付API(现已支持部分V3接口,使用方法参考下面介绍)
希望有时间的伙伴儿Fork完后,积极提Pull Request,一起完善微信各个类别下的接口到相应的go文件中
- 统一下单:client.UnifiedOrder()
- JSAPI - JSAPI支付(或小程序支付)
- NATIVE - Native支付
- APP - app支付
- MWEB - H5支付
- 提交付款码支付:client.Micropay()
- 查询订单:client.QueryOrder()
- 关闭订单:client.CloseOrder()
- 撤销订单:client.Reverse()
- 申请退款:client.Refund()
- 查询退款:client.QueryRefund()
- 下载对账单:client.DownloadBill()
- 下载资金账单(正式):client.DownloadFundFlow()
- 交易保障:client.Report()
- 拉取订单评价数据(正式):client.BatchQueryComment()
- 企业付款(正式):client.Transfer()
- 查询企业付款(正式):client.GetTransferInfo()
- 授权码查询OpenId(正式):client.AuthCodeToOpenId()
- 公众号纯签约(正式):client.EntrustPublic()
- APP纯签约-预签约接口-获取预签约ID(正式):client.EntrustAppPre()
- H5纯签约(正式):client.EntrustH5()
- 支付中签约(正式):client.EntrustPaying()
- 请求单次分账(正式):client.ProfitSharing()
- 请求多次分账(正式):client.MultiProfitSharing()
- 查询分账结果(正式):client.ProfitSharingQuery()
- 添加分账接收方(正式):client.ProfitSharingAddReceiver()
- 删除分账接收方(正式):client.ProfitSharingRemoveReceiver()
- 完结分账(正式):client.ProfitSharingFinish()
- 分账回退(正式):client.ProfitSharingReturn()
- 分账回退结果查询(正式):client.ProfitSharingReturnQuery()
- 企业付款到银行卡API(正式):client.PayBank()
- 查询企业付款到银行卡API(正式):client.QueryBank()
- 获取RSA加密公钥API(正式):client.GetRSAPublicKey()
- 发放现金红包:client.SendCashRed()
- 发放现金裂变红包:client.SendGroupCashRed()
- 发放小程序红包:client.SendAppletRed()
- 查询红包记录:client.QueryRedRecord()
- 自定义方法请求微信API接口:client.PostWeChatAPISelf()
微信公共API
- wechat.GetParamSign() => 获取微信支付所需参数里的Sign值(通过支付参数计算Sign值)
- wechat.GetSanBoxParamSign() => 获取微信支付沙箱环境所需参数里的Sign值(通过支付参数计算Sign值)
- wechat.GetMiniPaySign() => 获取微信小程序支付所需要的paySign
- wechat.GetH5PaySign() => 获取微信内H5支付所需要的paySign
- wechat.GetAppPaySign() => 获取APP支付所需要的paySign
- wechat.ParseNotifyToBodyMap() => 解析微信支付异步通知的参数到BodyMap
- wechat.ParseNotify() => 解析微信支付异步通知的参数
- wechat.ParseRefundNotify() => 解析微信退款异步通知的参数
- wechat.VerifySign() => 微信同步返回参数验签或异步通知参数验签
- wechat.Code2Session() => 登录凭证校验:获取微信用户OpenId、UnionId、SessionKey
- wechat.GetAppletAccessToken() => 获取微信小程序全局唯一后台接口调用凭据
- wechat.GetAppletPaidUnionId() => 微信小程序用户支付完成后,获取该用户的 UnionId,无需用户授权
- wechat.GetPublicUserInfo() => 微信公众号:获取用户基本信息
- wechat.GetPublicUserInfoBatch() => 微信公众号:批量获取用户基本信息
- wechat.DecryptOpenDataToStruct() => 加密数据,解密到指定结构体
- wechat.DecryptOpenDataToBodyMap() => 加密数据,解密到 BodyMap
- wechat.GetOpenIdByAuthCode() => 授权码查询openid
- wechat.GetOauth2AccessToken() => 微信第三方登录,code 换取 access_token
- wechat.RefreshOauth2AccessToken() => 刷新微信第三方登录后,获取到的 access_token
- wechat.CheckOauth2AccessToken() => 检验授权凭证(access_token)是否有效
- wechat.GetOauth2UserInfo() => 微信开放平台:获取用户个人信息
- wechat.DecryptRefundNotifyReqInfo() => 解密微信退款异步通知的加密数据
QQ支付API
- 提交付款码支付:client.MicroPay()
- 撤销订单:client.Reverse()
- 统一下单:client.UnifiedOrder()
- 订单查询:client.OrderQuery()
- 关闭订单:client.CloseOrder()
- 申请退款:client.Refund()
- 退款查询:client.RefundQuery()
- 交易账单:client.StatementDown()
- 资金账单:client.AccRoll()
- 创建现金红包(未测试可用性):client.SendCashRed()
- 对账单下载(未测试可用性):client.DownloadRedListFile()
- 查询红包详情(未测试可用性):client.QueryRedInfo()
- 自定义方法请求微信API接口:client.PostQQAPISelf()
QQ公共API
- qq.ParseNotifyToBodyMap() => 解析QQ支付异步通知的结果到BodyMap
- qq.ParseNotify() => 解析QQ支付异步通知的参数
- qq.VerifySign() => QQ同步返回参数验签或异步通知参数验签
支付宝支付API
因支付宝接口太多,如没实现的接口,还请开发者自行调用client.PostAliPayAPISelfV2()方法实现!请参考 client_test.go 内的 TestClient_PostAliPayAPISelfV2() 方法
希望有时间的伙伴儿Fork完后,积极提Pull Request,一起完善支付宝各个类别下的接口到相应的go文件中
- 支付宝接口自行实现方法:client.PostAliPayAPISelfV2()
- 手机网站支付接口2.0(手机网站支付):client.TradeWapPay()
- 统一收单下单并支付页面接口(电脑网站支付):client.TradePagePay()
- APP支付接口2.0(APP支付):client.TradeAppPay()
- 统一收单交易支付接口(商家扫用户付款码):client.TradePay()
- 统一收单交易创建接口(小程序支付):client.TradeCreate()
- 统一收单线下交易查询:client.TradeQuery()
- 统一收单交易关闭接口:client.TradeClose()
- 统一收单交易撤销接口:client.TradeCancel()
- 统一收单交易退款接口:client.TradeRefund()
- 统一收单退款页面接口:client.TradePageRefund()
- 统一收单交易退款查询:client.TradeFastPayRefundQuery()
- 统一收单交易结算接口:client.TradeOrderSettle()
- 统一收单线下交易预创建(用户扫商品收款码):client.TradePrecreate()
- 单笔转账接口:client.FundTransUniTransfer()
- 转账业务单据查询接口:client.FundTransCommonQuery()
- 支付宝资金账户资产查询接口:client.FundAccountQuery()
- 换取授权访问令牌(获取access_token,user_id等信息):client.SystemOauthToken()
- 支付宝会员授权信息查询接口(App支付宝登录):client.UserInfoShare()
- 换取应用授权令牌(获取app_auth_token,auth_app_id,user_id等信息):client.OpenAuthTokenApp()
- 获取芝麻信用分:client.ZhimaCreditScoreGet()
- 身份认证初始化服务:client.UserCertifyOpenInit()
- 身份认证开始认证(获取认证链接):client.UserCertifyOpenCertify()
- 身份认证记录查询:client.UserCertifyOpenQuery()
- 用户登陆授权:client.UserInfoAuth()
- 支付宝商家账户当前余额查询:client.DataBillBalanceQuery()
- 查询对账单下载地址:client.DataBillDownloadUrlQuery()
支付宝公共API
- alipay.GetCertSN() => 获取证书SN号(app_cert_sn、alipay_cert_sn)
- alipay.GetRootCertSN() => 获取证书SN号(alipay_root_cert_sn)
- alipay.GetRsaSign() => 获取支付宝参数签名(参数sign值)
- alipay.SystemOauthToken() => 换取授权访问令牌(得到access_token,user_id等信息)
- alipay.FormatPrivateKey() => 格式化应用私钥
- alipay.FormatPublicKey() => 格式化支付宝公钥
- alipay.FormatURLParam() => 格式化支付宝请求URL参数
- alipay.ParseNotifyToBodyMap() => 解析支付宝支付异步通知的参数到BodyMap
- alipay.ParseNotifyByURLValues() => 通过 url.Values 解析支付宝支付异步通知的参数到BodyMap
- alipay.VerifySign() => 支付宝异步通知参数验签
- alipay.VerifySignWithCert() => 支付宝异步通知参数验签(证书方式)
- alipay.VerifySyncSign() => 支付宝同步返回参数验签
- alipay.DecryptOpenDataToStruct() => 解密支付宝开放数据到 结构体
- alipay.DecryptOpenDataToBodyMap() => 解密支付宝开放数据到 BodyMap
- alipay.MonitorHeartbeatSyn() => 验签接口