欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QQ、微信(WeChat)、支付宝(AliPay)的Go版本SDK。

程序员文章站 2022-03-16 12:05:51
...

QQ、微信、支付宝的Golang版本SDK

一、安装

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() => 验签接口