首页 » 软件开发 » 记一次 go语言开发 支付宝单笔转账功能(转账支付宝开发语言功能)「支付宝转账接口开发」

记一次 go语言开发 支付宝单笔转账功能(转账支付宝开发语言功能)「支付宝转账接口开发」

少女玫瑰心 2024-07-24 03:07:08 软件开发 0

扫一扫用手机浏览

文章目录 [+]

1 支付宝开放平台 注册应用(企业)

因为业务需求是后台管理系统打款,所以注册的是 网页/移动开发

2 提交应用用审核

24小时就会审核通过

3 产品绑定

记一次 go语言开发 支付宝单笔转账功能(转账支付宝开发语言功能) 记一次 go语言开发 支付宝单笔转账功能(转账支付宝开发语言功能) 软件开发
(图片来自网络侵删)

选择转账到支付宝账户

4 api 管理

记一次 go语言开发 支付宝单笔转账功能(转账支付宝开发语言功能) 记一次 go语言开发 支付宝单笔转账功能(转账支付宝开发语言功能) 软件开发
(图片来自网络侵删)

需要完成对应的接入,没有完成会出现appid 无效

5 证书配置

根据提示配置即可,保存好个人的 privateKey 哟 (MIIE开头的)

二 、开发1 go get

go github.com/smartwalle/alipay/v3

2 不废话 直接上代码

package alipayimport "github.com/smartwalle/alipay/v3"func AlipayTransfer(tradeNo, username, name string, money int) (alipay.FundTransUniTransferRsp, error) { privateKey := viper.GetString("alipay.privateKey") client, err := alipay.New("appid", privateKey, true) if err != nil { return nil, err } if err = client.LoadAppCertPublicKeyFromFile("./cert/alipay/appCertPublicKey_2021004121666305.crt"); err != nil { return nil, err } if err = client.LoadAliPayRootCertFromFile("./cert/alipay/alipayRootCert.crt"); err != nil { return nil, err } if err = client.LoadAlipayCertPublicKeyFromFile("./cert/alipay/alipayCertPublicKey_RSA2.crt"); err != nil { return nil, err } payeeInfo := alipay.PayeeInfo{ Identity: username, IdentityType: "ALIPAY_LOGON_ID", Name: name, } uniTransfer := alipay.FundTransUniTransfer{ OutBizNo: tradeNo, TransAmount: fmt.Sprintf("%.2f", float64(money)/float64(100)), // 我数据库喜欢把金额保存为整形 所以需要转成float类型 ProductCode: "TRANS_ACCOUNT_NO_PWD", BizScene: "DIRECT_TRANSFER", OrderTitle: "title", PayeeInfo: &payeeInfo, Remark: "remark", } result, err := client.FundTransUniTransfer(uniTransfer) if err != nil { fmt.Println(err) return nil, err } return result, nil}

3 调用

//支付宝提现transfer, err := alipay.AlipayTransfer(tradeNo, account.UserName, account.Name, withdraw.Money) if err != nil { tx.Rollback() return err }

4 可以根据对应的错误提示 进行调整

5 备注:

转账需要大于0.1 保留两位小数点 - transfer.IsSuccess() - transfer.IsFailure()

三 、心路历程

1 官方没有 go的demo,search了一下 也都是支付的内容,没有转账的内容。
2 看了官方的开发文档,在sign这块碰到了问题,因为还需要使用公钥文件 进行加签,需要找到公钥的加签no。
遂放弃 3 看了alipay的github不尽如人意 4 所以我根据支付宝支付的go sdk,搜索Transfer,搜索出来 FundTransferUniTransfer和其他的,然后根据一步一步的提示 完成单笔转账开发 5 需要配置回调地址验证回调是否完成 6 一定要保存好privateKey

标签:

相关文章