- 查询订单状态,根据官方示例代码报错
orderno := c.Query("orderno") svc := jsapi.JsapiApiService{Client: Client} resp, result, err := svc.QueryOrderByOutTradeNo(c, jsapi.QueryOrderByOutTradeNoRequest{ OutTradeNo: core.String(orderno), Mchid: core.String(mchID), }, ) 报错内容(控制台打印):Error #01: json: unsupported type: func() (io.ReadCloser, error) 代码是根据官方的test文件中的示例代码进行修改 看了wechatpay-go的源码,没有找到对应的报错位置 测试过程: 将QueryOrderByOutradeNo方法逻辑实现了一遍,只要调用到Request方法就会报错。使用Client.Get也报相同错误基本确定为core.client.doRequest方法返回的错误。但是报错原因未找到
11-05 - golang 统一下单成功,小程序拉起支付签名验签失败
[图片] dataToSign:wx5510dcb87812a1a6\n1730362493\nQpQ31USowTt6E2h4KXK9W0JUSn3Psiuv\nprepay_id=wx31161453365242d9ffe4edebdc5afd0001\n 代码加签结果: [图片] 工具加签结果对比 [图片] 下单使用的是官方提供的wechatpay-go,没有找到官方的签名示例代码,自己写了加签方法,与工具对比不一致,导致下单成功,但无法拉起小程序支付
10-31 - golang微信支付初始化客户端错误
golang:1.23,wechatpay-go:2.20 代码如下: var ( mchID string = "商户平台提供的" // 商户号 mchCertificateSerialNumber string = "商户api证书序列号,后台查看的" // 商户证书序列号 mchAPIv3Key string = "APIV3秘钥,32位字符串" // 商户APIv3密钥 ) path := "./cert/apiclient_key.pem" // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名 mchPrivateKey, err := utils.LoadPrivateKeyWithPath(path) if err != nil { fmt.Println(err) log.Fatal("load merchant private key error") } fmt.Println(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key) // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力 opts := []core.ClientOption{ option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key), } fmt.Println(opts) client, err := core.NewClient(c, opts...) if err != nil { log.Fatalf("new wechat pay client err:%s", err) } 根据 https://github.com/wechatpay-apiv3/wechatpay-go/issues/135 文档进行APIV3秘钥重置,依然不能正常初始化客户端 option.WithWechatPayAutoAuthCipher()返回数据为“证书不存在” 重新生成了证书,更换了商户证书序列号,依然提示“证书不存在”
10-30 - eval is not a function
我微信登录开发测试都会提示eval not a function 但是同样的项目 别的开发人员就不存在这个问题,有没有遇到过类似问题的小伙伴,帮助一下 万分感谢
2017-08-25