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.
pay/README.md

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
}
```