pst*_*trm 5 javascript payment-gateway node.js ecmascript-7 bambora
我正在实施Bambora 的Inline Checkout.授权步骤没有任何问题.但是当涉及到捕获付款时,我总是得到错误Transaction not found.
这就是我做的:
const options = {
headers: { Authorization: `Basic ${ apiKey }` },
};
const { payload } = {
amount
};
const { data } = await axios.post(`https://transaction-v1.api-eu.bambora.com/transactions/${ txnid }/capture`, payload, options);
Run Code Online (Sandbox Code Playgroud)
我也尝试过包含transactionoperations以下内容的请求:
const options = {
headers: { Authorization: `Basic ${ apiKey }` },
};
const { payload } = {
amount,
transactionoperations: [{ id: txnid }],
};
const { data } = await axios.post(`https://transaction-v1.api-eu.bambora.com/transactions/${ txnid }/capture`, payload, options);
Run Code Online (Sandbox Code Playgroud)
我在尝试获取交易信息时遇到同样的错误:
const options = {
headers: { Authorization: `Basic ${ apiKey }` },
};
const { data } = await axios.get(`https://merchant-v1.api-eu.bambora.com/transactions/${ txnid }`, options);
Run Code Online (Sandbox Code Playgroud)
据我了解文档,我正在做的一切正确,但我无法让它工作.
在查看Bamboras自己在PHP中的实现之后,我看不到代码的任何问题.
查看报告仪表板中URL中的特定订单与我在数据库中保存的ID不匹配.txnidInline Checkout Authorize事件返回的值似乎不准确.
我远离了我们代码中的问题所在。在 Bambora 支持和@Evelijn 的帮助下,问题得到了解决。
当从客户端发送txnid到服务器时,验证确保该值仅包含数字。我错过的是它也将其更改为数字类型。
这txnid是一个 18 位数字的字符串,javascript 最多可以处理 17 位数字。当txnid更改为数字时,最后一位数字将四舍五入为 0。
那么123456789012345678就会变成123456789012345680。
当我更改验证以不强制转换txnid为数字时,一切正常。
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |