-
沙箱环境
文档:https://docs.open.alipay.com/200/105311/
沙箱地址:https://openhome.alipay.com/platform/appDaily.htm -
密钥(文档已经很详细了,附链接)
https://opendocs.alipay.com/open/291/105971#Krqvg
-
代码使用的第三方库
github.com/smartwalle/alipay/v3
-
代码简单实现
网页支付
```go
package pays
import (
"errors"
"fmt"
"github.com/smartwalle/alipay/v3"
)
var (
// appId
appId = ""
// 应用公钥
aliPublicKey = ""
// 应用私钥
privateKey = ""
client, _ = alipay.New(appId, privateKey, true)
)
func init() {
client.LoadAppPublicCertFromFile("appCertPublicKey.crt") // 加载应用公钥证书
client.LoadAliPayRootCertFromFile("alipayRootCert.crt") // 加载支付宝根证书
client.LoadAliPayPublicCertFromFile("alipayCertPublicKey.crt") // 加载支付宝公钥证书
}
//手机客户端支付
func WapAlipay() {
var p = alipay.TradeWapPay{}
p.NotifyURL = ""
p.ReturnURL = "http://xxx"
p.Subject = ""
p.OutTradeNo = ""
p.TotalAmount = ""
p.ProductCode = ""
url, err := client.TradeWapPay(p)
if err != nil {
fmt.Println("pay client.TradeAppPay error:", err)
return
}
//logging.Info(url)
binary, _ := url.MarshalBinary()
fmt.Println(string(binary))
}
//转账
func Alipayout(outBizNo, payeeAccount, amount, payeeRealName string) error {
var p = alipay.FundTransToAccountTransfer{}
p.OutBizNo = outBizNo // 必选 商户转账唯一订单号
p.PayeeType = "ALIPAY_LOGONID" // 必选 收款方账户类型,"ALIPAY_LOGONID":支付宝帐号
p.PayeeAccount = payeeAccount // 必选 收款方账户。与payee_type配合使用
p.Amount = amount // 必选 转账金额,元
p.PayeeRealName = payeeRealName //收款方真实姓名
rsp, err := client.FundTransToAccountTransfer(p)
if err != nil {
fmt.Println("FundTransToAccountTransfer error:", err)
return err
}
if rsp.Content.Code != alipay.CodeSuccess {
fmt.Println(rsp.Content.Msg, rsp.Content.SubMsg)
return errors.New("pay error:" + rsp.Content.Msg)
}
fmt.Println(rsp.Content.Msg)
return nil
}
```