初始化,您需要填写一些支付宝充值必要信息:
import "github.com/ascoders/alipay"
func init() {
//init alipay params
alipay.AlipayPartner = 0000000000000000
alipay.AlipayKey = 000000000000000000000
alipay.WebReturnUrl = "http://www.wokugame.com/alipay/return"
alipay.WebNotifyUrl = "http://www.wokugame.com/alipay/notify"
alipay.WebSellerEmail = "[email protected]"
}
/* @params string unique order id
* @params float32 pay money
* @params string payment account nickname
* @params string pay description
*/
form := alipay.CreateAlipaySign("123", 19.8, "翱翔大空", "充值19.8元")
// render "form"
fmt.Println(form)
以上生成的form放在页面任何位置,会利用js自动跳转到支付宝付款页面。
注意这里需要解析get请求参数,为了自动获取,请传入beego的&this.Controller
func (this *ApiController) Test() {
//错误代码(1为成功) 订单id(使用它查询订单) 买家支付宝账号(这个不错) 支付宝id(支付宝账单id)
status, orderId, buyerEmail, tradeNo := alipay.AlipayReturn(&this.Controller)
if status == 1 { //付款成功,处理订单
//处理订单
}
}
参数解析:
status
- 错误代码
- -1 最基本的网站交易号为空
- -2 签名认证失败
- -3 解析表单内容,失败返回错误代
- -4 交易未完成
orderId
- 订单id
它是订单唯一id,用它来查询交易订单
buyerEmail
- 买家支付宝账号
tradeNo
- 支付宝订单号
它是支付宝的订单唯一id,虽然与本站订单id没有关系,但在支付宝查询上会用到
func (this *ApiController) Test() {
status, orderId, buyerEmail, TradeNo := alipay.AlipayNotify(&this.Controller)
if status == 1 { //付款成功,处理订单
//处理订单
}
}