You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.8 KiB
102 lines
2.8 KiB
3 years ago
|
# 支付
|
||
|
|
||
|
### 微信支付
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"git.oa00.com/go/pay"
|
||
|
"github.com/wechatpay-apiv3/wechatpay-go/core"
|
||
|
"github.com/wechatpay-apiv3/wechatpay-go/services/payments/app"
|
||
|
"github.com/wechatpay-apiv3/wechatpay-go/services/payments/jsapi"
|
||
|
"log"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
// 初始化配置
|
||
|
if err := pay.InitWxpay(pay.WxpayConfig{
|
||
|
MchID: "mchID", // 支付商户号
|
||
|
MchAPIv3Key: "mchAPIv3Key", // apiV3密钥
|
||
|
PrivateKey: "privateKey", // 私钥证书密钥
|
||
|
PrivateCert: "privateCert", // 私钥证书
|
||
|
}); err != nil {
|
||
|
log.Panicln("微信支付错误:", err)
|
||
|
}
|
||
|
|
||
|
// app支付
|
||
|
apiService := app.AppApiService{Client: pay.Wxpay.Client}
|
||
|
result, _, err := apiService.PrepayWithRequestPayment(context.Background(), app.PrepayRequest{
|
||
|
Appid: core.String("appid"),
|
||
|
Mchid: core.String("mchID"),
|
||
|
Description: core.String("subject"),
|
||
|
OutTradeNo: core.String("payNo"),
|
||
|
TimeExpire: core.Time(time.Now().Add(time.Minute * time.Duration(15))),
|
||
|
NotifyUrl: core.String("notifyURL"),
|
||
|
Amount: &app.Amount{
|
||
|
Total: core.Int64(int64(0.01 * 100)),
|
||
|
Currency: core.String("CNY"),
|
||
|
},
|
||
|
})
|
||
|
log.Println(result, err)
|
||
|
|
||
|
// 小程序/微信公众号支付
|
||
|
apiService := jsapi.JsapiApiService{Client: pay.Wxpay.Client}
|
||
|
result, _, err = apiService.PrepayWithRequestPayment(context.Background(), jsapi.PrepayRequest{
|
||
|
Appid: core.String("appid"),
|
||
|
Mchid: core.String("mchID"),
|
||
|
Description: core.String("subject"),
|
||
|
OutTradeNo: core.String("payNo"),
|
||
|
TimeExpire: core.Time(time.Now().Add(time.Minute * time.Duration(15))),
|
||
|
NotifyUrl: core.String("notifyURL"),
|
||
|
Amount: &jsapi.Amount{
|
||
|
Total: core.Int64(int64(0.01 * 100)),
|
||
|
Currency: core.String("CNY"),
|
||
|
},
|
||
|
Payer: &jsapi.Payer{
|
||
|
Openid: core.String("openId"),
|
||
|
},
|
||
|
})
|
||
|
log.Println(result, err)
|
||
|
|
||
|
// 详细使用文档见 https://github.com/wechatpay-apiv3/wechatpay-go
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### 支付宝支付
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"git.oa00.com/go/pay"
|
||
|
"github.com/smartwalle/alipay/v3"
|
||
|
"log"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
// 初始化配置
|
||
|
if err := pay.InitAlipay(pay.AlipayConfig{
|
||
|
AppId: "appId",// appId
|
||
|
PrivateKey: "privateKey",// 商户私钥
|
||
|
AliPublicKey: "aliPublicKey",// 支付宝公钥
|
||
|
IsProduction: isProduction,// 是否线上环境
|
||
|
}); err != nil {
|
||
|
log.Panicln("支付宝支付错误:", err)
|
||
|
}
|
||
|
|
||
|
// app支付
|
||
|
param := alipay.TradeAppPay{}
|
||
|
param.OutTradeNo = "payNo"
|
||
|
param.TotalAmount = "0.01"
|
||
|
param.Subject = "subject"
|
||
|
param.TimeExpire = time.Now().Add(time.Minute * time.Duration(15)).Format("2006-01-02 15:04:05")
|
||
|
param.NotifyURL = "notifyURL"
|
||
|
result, err := pay.Alipay.TradeAppPay(param)
|
||
|
log.Println(result, err)
|
||
|
|
||
|
// 详细使用文档见 https://github.com/smartwalle/alipay
|
||
|
}
|
||
|
```
|