我正在尝试使用 Plaid 开发环境来测试 Plaid API。我正在为 plaid 创建一个命令行 cli,所以我目前不需要服务器,所以目前我使用 Go 生成一个链接令牌并将该令牌呈现为 HTML blob。当我在浏览器中打开该 HTML 文件并单击“链接帐户”按钮时,它会无限期挂起。
下面是生成链接并呈现为 HTML 的 go 代码:
package main
import (
"context"
_ "embed"
"html/template"
"log"
"os"
"time"
"github.com/plaid/plaid-go/plaid"
"github.com/vrischmann/envconfig"
)
type config struct {
PlaidApi struct {
ClientId string `envconfig:"PLAID_CLIENT_ID"`
Secret string `envconfig:"PLAID_SECRET"`
}
}
//go:embed token.html.tmpl
var tokenPage string
func main() {
cfg := config{}
if err := envconfig.Init(&cfg); err != nil {
log.Fatalf("failed to load config from environment: %s", err)
}
ctx := context.TODO()
plaidCfg := plaid.NewConfiguration()
plaidCfg.UseEnvironment(plaid.Development)
cli := plaid.NewAPIClient(plaidCfg)
phoneNumber := "+1 888 888-8888"
user := plaid.LinkTokenCreateRequestUser{
ClientUserId: "1",
PhoneNumber: &phoneNumber,
}
request := plaid.NewLinkTokenCreateRequest(
"Personal Finance App",
"en",
[]plaid.CountryCode{plaid.COUNTRYCODE_US},
user,
)
request.SetProducts([]plaid.Products{plaid.PRODUCTS_TRANSACTIONS})
request.SetSecret(cfg.PlaidApi.Secret)
request.SetClientId(cfg.PlaidApi.ClientId)
linkTokenCreateResp, _, err := cli.PlaidApi.LinkTokenCreate(ctx).LinkTokenCreateRequest(*request).Execute()
if err != nil {
if pErr, err := plaid.ToPlaidError(err); err == nil {
log.Printf("Error from plaid: %s", pErr.ErrorMessage)
}
log.Fatalf("failed to get link request: %s", err.Error())
}
log.Printf("link token: %s", linkTokenCreateResp.GetLinkToken())
tmplate, err := template.New("token.html").Parse(tokenPage)
if err != nil {
log.Printf("Html tmplate:\n%s", tokenPage)
log.Fatalf("Failed to create HTML template: %s", err)
}
page, err := os.CreateTemp("", "catnip_*.html")
if err != nil {
log.Fatalf("Failed to create temp file: %s", err)
}
defer os.Remove(page.Name())
data := struct {
LinkToken string
}{LinkToken: linkTokenCreateResp.LinkToken}
if err := tmplate.Execute(page, data); err != nil {
log.Printf("template data: %#v", data)
log.Printf("html template:\n%#v", tokenPage)
log.Fatalf("Failed to render token page: %s", err)
}
log.Printf("token page path:\n%s", page.Name())
time.Sleep(2 * time.Minute)
}
这是模板(token.html.tmpl
):
- 查看控制台,没有看到任何错误
- 查看网络流量,奇怪的是,单击按钮似乎没有产生任何流量
正确答案
我尝试手动创建链接令牌(使用格子邮差集合)并硬-将该链接令牌编码到您的 HTML 文件中。当我这样做时,它对我来说工作正常:按下按钮后,我短暂地看到了旋转器,然后弹出了一个链接窗口。
我建议你尝试同样的事情。如果它有效,那么问题要么与您如何在代码中生成链接令牌有关,要么与模板如何发送/摄取链接令牌有关。如果它不起作用,那么问题可能是客户端特定于您的配置的问题(例如,可能是浏览器插件阻止链接打开)?
以上就是格子 link-initialize.js 永远显示加载符号的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756