首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从apple pay获得任何响应-此资源来自本地覆盖。

无法从apple pay获得任何响应-此资源来自本地覆盖。
EN

Stack Overflow用户
提问于 2021-05-10 12:49:24
回答 2查看 536关注 0票数 0

我是集成苹果支付和遵循支付请求API!根据文档(https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session)

cert: merchIdentityCert和key: merchIdentityCert都是相同的。我将我的merchantIdentityCertificate.pem附加到证书和密钥中.

却无法从苹果付费服务器上得到任何回应。在我的请求之后,它将抛出一个错误,safari将显示一条消息,作为“此资源来自本地覆盖”

代码:

代码语言:javascript
运行
复制
const merchIdentityCert = fs.readFileSync("./merchIdentityCert.pem")
const httpsAgent = new https.Agent({
  cert: merchIdentityCert,
  key: merchIdentityCert,
  maxVersion: "TLSv1.2",
  minVersion: "TLSv1.2"
})
const post = (url, body) => {
logger.info({ message: "apple pay START", url, body })
fetch(url, {
  body: JSON.stringify(body),
  method: "POST",
  agent: httpsAgent
}).then(resp => {
logger.info({ message: "apple pay SUCCESS", resp })
return resp
}).catch((error) => {
logger.info({ message: "apple pay ERROR", error })
return error
})
}

日志:

消息:"apple pay START",url:"https://-pay-gateway-cert.apple.com/paymentservices/startSession",body: displayName“:”Test Pay","initiative":"web",“initiativeContext”:“-**.*”}

消息:“苹果支付错误”,错误:{}*

我正在使用一个节点获取库。我的web应用程序和节点应用程序部署在AWS服务器上。我已经通过证书完成了服务器设置和环境设置要求。https://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_server

,有人知道这件事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-18 03:16:32

能够解决{“大小”:0,“超时值”:0}问题,并且它与节点获取库相关。我从代码级别修复了它。(Node-fetch problems with POST requestshttps://www.npmjs.com/package/node-fetch)

除此之外,我使用下面的请求来使用远程服务器进行调试,并将会话对象提供给我。

代码语言:javascript
运行
复制
curl -XPOST -H "Content-type: application/json" -d '{"merchantIdentifier":"merchant.***.xxxxx","displayName":"TestPay","initiative":"web","initiativeContext":"***-***-xxxxxx.xxxxxxxxxx.xx"}' --cert cert.pem:cert.pem 'https://apple-pay-gateway-cert.apple.com/paymentservices/startSession'

我的代码:

代码语言:javascript
运行
复制
import fetch from "node-fetch"
import fs from "fs"
import { promiseReject } from "../utils/misc"
import { Logger } from "../services/Logger"
import https from "https"
const logger = new Logger("Apple Pay Client")
const checkStatusAndGetJSON = (fetchResponse) =>
    fetchResponse.ok
        ? fetchResponse.json()
        : fetchResponse.json().then(promiseReject)
const merchIdentityCert = fs.readFileSync("./merchIdentityCert.pem")
const httpsAgent = new https.Agent({
    cert: merchIdentityCert,
    key: merchIdentityCert,
    maxVersion: "TLSv1.2",
    minVersion: "TLSv1.2"
})
const basicHeaders = {
    "Accept": "application/json",
    "lang": "en",
    "Content-Type": "application/json"
}
const post = (url, body) => {
    const start = Date.now()
    return fetch(url, {
        body: JSON.stringify(body),
        headers: basicHeaders,
        method: "POST",
        agent: httpsAgent
    }).then(resp => {
        const duration = Date.now() - start
        logger.debug(`apple pay call took ${duration} millis.`, { endpoint: url, method: "POST", duration })
        return resp
    }).then(checkStatusAndGetJSON)
}
/** Apple Pay */
export const performValidation = (url, body) => post(url, body)
票数 0
EN

Stack Overflow用户

发布于 2021-05-11 12:55:30

我的merchIdentityCert的私钥出了问题,我修复了它。安装.cer文件后,从密钥链访问扩展它,并将2项导出为.p12,并使用OpenSSL将其转换为.pem。现在,我有一个包含这两个资产的PEM文件。然后我继续我的过程,没有得到下面的错误,在这段时间,我在上面的帖子中提到。

消息:“苹果支付错误”,错误:{}

但是,在提出请求后,我会在日志下面,

消息:“苹果支付成功”,resp:{“大小”:0,“超时”:0}

此外,在检查元素→Network→(单击my request)→预览中

在响应预览的顶部,它显示一条消息为“显示这个资源来自本地覆盖”

有人有主意吗?我从苹果付费服务器上得到{“大小”:0,“超时值”:0}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67470730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档