大家好,关于源码分享网站在哪个文件夹很多朋友都还不太明白,今天小编就来为大家分享关于源码分享网站在哪个文件夹下的知识,希望对各位有所帮助!
作为一个后端开发人员来说,微信开发已经是必备的技能之一了,今天小编就来分享一个相关的类库shenghui0779/gochat(以下简称wechat)。这个类库简单易用,看源码的时候目录结构一目了然,可以看出作者的思路很清晰,功能也挺丰富日常开发来绝对够用。下面跟着小编的节凑来一探究竟吧。
目录结构
mch:商户平台相关业务,下单、支付、退款、查询、委托代扣、企业付款、企业红包等mp:小程序端相关业务,小程序授权、用户数据解析、消息发送、二维码生成、消息等pub:公众号相关业务,网页授权、菜单、模板消息、消息回复、用户管理、消息转客服等wechat.go包的入口,获取以上三个业务的实例
一、支付
下单用法
import(\n&34;\n&34;\n)\n\n//UnifiedOrder统一下单数据直接引用包里的结构体即可\ntypeUnifiedOrderstruct{\n\t//必填参数\n\tOutTradeNOstring//商户系统内部的订单号,32个字符内、可包含字母,其他说明见商户订单号\n\tTotalFeeint//订单总金额,单位为分,详见支付金额\n\tSpbillCreateIPstring//APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP\n\tTradeTypestring//取值如下:JSAPI,NATIVE,APP,MWEB,详细说明见参数规定\n\tBodystring//商品或支付单简要描述\n\tNotifyURLstring//接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数\n\t//选填参数\n\tDeviceInfostring//终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传&34;\n\tDetailstring//商品名称明细列表\n\tAttachstring//附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据\n\tFeeTypestring//符合ISO4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型\n\tTimeStartstring//订单生成时间,格式为yyyyMMddHHmmss,如:2009年12月25日9点10分10秒表示为:20091225091010\n\tTimeExpirestring//订单失效时间,格式为yyyyMMddHHmmss,如:2009年12月27日9点10分10秒表示为:20091227091010\n\tGoodsTagstring//商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠\n\tProductIDstring//trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义\n\tLimitPaystring//no_credit–指定不能使用信用卡支付\n\tOpenIDstring//trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识\n\tReceiptbool//是否在支付成功消息和支付详情页中出现开票入口,注:需要在微信支付商户平台或微信公众平台开通电子发票功能\n\tSceneInfostring//该字段用于上报支付的场景信息\n}\n\n\n//初始化实例\nwxmch:=gochat.NewWXMch(appid,apikey,cert)\nr,err:=wxmch.Order().Unify(order)\n\niferr!=nil{\n//错误处理…\n}\n\nifr[&34;]!=mch.ResultSuccess{\n//判断微信的返回状态码,失败处理…\n}\n\n//成功逻辑处理…\n//拿到预支付的id\nprepayID:=r[&34;]\n\n//获取支付签名的票据,返回给前端和app就能拉取支付界面了\n//APP\ndata:=wxmch.APPAPI(prepayID)\n\n//JS\ndata:=wxmch.JSAPI(prepayID)
查询订单状态
//RefundData退款数据\ntypeRefundDatastruct{\n\t//必填参数\n\tOutRefundNOstring//商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔\n\tTotalFeeint//订单总金额,单位为分,只能为整数,详见支付金额\n\tRefundFeeint//退款总金额,订单总金额,单位为分,只能为整数,详见支付金额\n\t//选填参数\n\tRefundFeeTypestring//货币类型,符合ISO4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型\n\tRefundDescstring//若商户传入,会在下发给用户的退款消息中体现退款原因\n\tRefundAccountstring//退款资金来源,仅针对老资金流商户使用\n\tNotifyURLstring//异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数\n}\n\n//根据微信订单号查询\nr,err:=wxmch.Order().QueryByTransactionID(transactionID)\n\n//根据商户订单号查询\nr,err:=wxmch.Order().QueryByOutTradeNO(transactionID)\n\n//关闭订单\nr,err:=wxmch.Order().Close(outTradeNO)
退款
//根据微信订单号退款\nr,err:=wxmch.Refund().RefundByTransactionID(transactionID,refundData)\niferr!=nil{\n//错误处理…\n}\n\nifr[&34;]!=mch.ResultSuccess{\n//失败处理…\n}\n//成功逻辑处理…\n\n\n//根据商户订单号退款\nr,err:=wxmch.Refund().RefundByOutTradeNO(outTradeNO,refundData)\n\niferr!=nil{\n//错误处理…\n}\n\nifr[&34;]!=mch.ResultSuccess{\n//失败处理…\n}\n//成功逻辑处理…
小程序
登录授权
import(\n&34;\n&34;\n&34;\n)\n\n//初始化小程序实例\nwxmp:=gochat.NewWXMP(appid,appsecret)\n\n//授权\nsession,err:=wxmp.Sns().Code2Session(code)\n\n//数据校验解密\n//数据签名校验\nifsignature!=utils.SHA1(rawData+sessionKey){\nreturnerrors.New(&34;)\n}\n\n//数据解密\nbizDataCrypt:=wxmp.BizDataCrypt(encryptedData,sessionKey,iv)\n\niferr:=bizDataCrypt.Decrypt();err!=nil{\nreturnerr\n}\n\n//解密后取用户信息\nbizData,err:=bizDataCrypt.GetUserData()\n\niferr!=nil{\nreturnerr\n}
获取access_token
accessToken,err:=wxmp.CgiBin().GetAccessToken()\n\niferr!=nil{\nreturnerr\n}\n\n//TODO:存储access_token…
因access_token每日获取次数有限且含有效期,故服务端应妥善保存access_token并定时刷新
公众号
//获取公众号实例\npub:=gochat.NewWXPub(accountid,appid,appsecret,signToken,encodingAESKey)
整个包看下来还是蛮简单,使用方便。想要了解更多内容可以去查看作者的源码和使用说明。
地址:https://github.com/shenghui0779/gochat/wiki
关于源码分享网站在哪个文件夹,源码分享网站在哪个文件夹下的介绍到此结束,希望对大家有所帮助。
