allpay Golang 实现的聚合支付

开源网站开源项目 24-07-02 13:10:29

Golang实现的聚合支付,含微信支付和支付宝

特点1、代码简单、灵活可靠。2、可扩展性强:参数传递采用map[string]interface{},不需要定义复杂的结构,满足多变的参数需求。3、支持服务商模式和非服务商模式。

第三方包引用1、httprouter2、gorm

微信支付调用:

funcTestWxClient_Execute(t*testing.T){cli:=NewWxClient("你的apikey",true)cli.FillDefaultParams()cli.PutMapParams(map[string]string{"appid":"您的appid","mch_id":"您的商户号",})cli.PutParam("body","test")cli.PutParam("out_trade_no","58867657575757")cli.PutParam("sub_mch_id","您好的子商户号")cli.PutParam("total_fee","101")cli.PutParam("spbill_create_ip","127.0.0.1")cli.PutParam("notify_url","http://test.xxx.com/notify")cli.PutParam("trade_type","JSAPI")resp,err:=cli.Execute("unifiedorder")iferr!=nil{t.Log(err.Error())return}t.Log(resp)}

支付宝调用:

funcdoWapPay()[]byte{cli:=NewaliClient(con_privatekey,con_pubickey,"https://openapi.alipaydev.com/gateway.do")cli.FillDefaultParams()cli.PutMapSysParams(map[string]string{"app_id":"您的app_id","notify_url":"http://test.xxx.com/notify",})cli.PutMapAppParams(map[string]string{"subject":"测试","out_trade_no":"2000100001","seller_id":"商户号",})cli.PutAppAnyParams("total_amount",1.00)cli.PutAppAnyParams("extend_params",map[string]string{"sys_service_provider_id":"服务商id",})resp,err:=cli.PageExecute("alipay.trade.wap.pay")iferr!=nil{return[]byte("")}returnresp}funcTestAliClient_Execute(t*testing.T){h:=httprouter.New()h.GET("/api/wap",func(whttp.ResponseWriter,r*http.Request,phttprouter.Params){body:=doWapPay()w.Header().Set("Content-Type","text/html;charset=utf-8")//WriteHeader一定放在Set后面w.WriteHeader(http.StatusOK)w.Write(body)})http.ListenAndServe("localhost:3000",h)}

聚合支付网页调用(javascript)

functioncallpay(method){letdomain=location.href;leturlobj={method:method,mid:"100000",subject:"测试商品",total_amount:"101",out_trade_no:newDate().Format("yyMMddhhmmss"),return_url:domain+"result.html?method="+method,}leturl=""for(letkinurlobj){if(url==""){url="?"+k+"="+encodeURI(urlobj[k])}else{url+="&"+k+"="+encodeURI(urlobj[k])}}letopenurl=domain+"payapi/wappay/sandbox"+url;if(method==="Ali.wappay"){_AP.pay(openurl);}else{location.href=openurl;}}

使用到的数据库结构:

/*==============================================================*//*Table:ap_mchpay_options*//*==============================================================*/createtableap_mchpay_options(midbigintnotnull,paytypetinyintnotnull,attrnamevarchar(64)notnull,attrvaluevarchar(128)notnull,primarykey(mid,paytype));/*==============================================================*//*Table:ap_merchant_info*//*==============================================================*/createtableap_merchant_info(midbigintnotnullauto_increment,namevarchar(128)notnull,isdebugboolnotnull,apikeyvarchar(128)notnull,parentidbigintnotnulldefault-1,mchclassintnotnulldefault0,primarykey(mid))auto_increment=100000;
[allpay Golang 实现的聚合支付]相关推荐
kint PHP调试助手

kint PHP调试助手

当调试PHP代码时,var_dump()、print_r()和debug_backtrace()是我们最常用的工具。Kint,一个开源软件,……...

Gephi 复杂网络分析平台

Gephi 复杂网络分析平台

Gephi是一款开源的交互式的复杂网络分析平台。它支持Windows, Mac OS X以及Linux等环境。主要功能包括: ……...

Metis 腾讯智能运维学件平台

Metis这个名字取自希腊神话中的智慧女神墨提斯(Metis),它是一系列AIOps领域的应用实践集合。主要解决……...

jBox jQuery 对话框插件

jBox jQuery 对话框插件

该项目已停止维护,如有需要可通过站内私信联系作者。 jBox 是一款基于 jQuery 的多功能对话框插件,可鼠……...

Redox 基于 Rust 的操作系统

Redox 基于 Rust 的操作系统

Redox 是一个用 Rust 语言编写的类 UNIX 操作系统 , 它的目标是把 Rust 语言的创新带入到一个现代的微内……...

今日开源
  1. Colly 简单快速的 Web 爬虫框架

    Colly 是一个采用 Go 语言编写的 Web 爬虫框架,旨在提供一个能够写任何爬虫/采集器/蜘蛛的简洁模板。通过 Colly ,你可以轻松从网站中提取结构化的数据,然后进行数据挖掘、处理或归档。 项目特性 清晰明了的 API……

    开源软件 2024-07-04

  2. rocky HTTP/S 代理

    rocky 是一个可插拔的、全功能和面向中间件的 HTTP/ S 代理。它带有通用的路由层,适用各种后端的流量拦截和延迟,内置均衡器,分层配置,可选的交通重试/回退逻辑等等。专用于 node.js/io.js。兼容 connect/expre……

    开源软件 2024-07-04

  3. R语言

    R语言

    R语言是主要用于统计分析、绘图的语言和操作环境。 R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman 开发。 (也因此称为R)现在由“R开发核心团队”负责开发。 R是基于S语言的一个GNU项目,所以也可……

    开源软件 2024-07-04

返回顶部小火箭