新手API开发:如何创建必填属性并集成PayMongo支付?
入门PayMongo支付方法创建:必填属性、Payload编写与结果获取
Hey there! 作为刚接触API开发的新手,我完全理解你想快速上手PayMongo支付的需求。结合官方示例,我把步骤拆得明明白白,帮你一步步搞定:
一、先搞定基础初始化
首先你得把PayMongo客户端配置好,关键是把Secret Key存在环境变量里(绝对不要硬写在代码里,不然泄露了就麻烦了)。代码很简单:
import Paymongo from 'paymongo'; // 从PayMongo后台的开发者页面拿到你的Secret Key,存在环境变量里 const paymongo = new Paymongo(process.env.PAYMONGO_SECRET_KEY);
二、搞懂必填属性到底有哪些
创建Payment Method时,官方要求的必填字段都在data.attributes下面,我给你拆解清楚:
type:固定值card(目前PayMongo只支持银行卡支付)details:对象类型,里面包含4个必填卡信息:card_number:银行卡号(测试环境可以用PayMongo提供的测试卡号,比如4141414141414141)exp_month:卡的到期月份,数字格式(比如2月就写2,注意不要加前导零,避免类型问题)exp_year:卡的到期年份,可以写两位(比如2023年写23)或四位(2023)cvc:卡背面的三位安全码
三、编写正确的Payload结构
Payload的层级要严格对应官方要求,注意JSON语法(我帮你修正了官方示例里遗漏的逗号):
// 正确的Payload结构 const paymentMethodPayload = { data: { attributes: { type: 'card', details: { card_number: '4141414141414141', // 测试用卡号 exp_month: 12, exp_year: 2026, cvc: '123' } } } };
四、放置Payload并调用API
要调用paymongo.paymentMethods.create()方法,注意await必须放在async函数里,所以你得把代码包裹在异步函数中:
// 封装成异步函数,方便调用 async function createPaymentMethod() { try { // 把刚才写的Payload传进去 const result = await paymongo.paymentMethods.create(paymentMethodPayload); // 这里就是获取返回结果的地方,往下看怎么处理 console.log('Payment Method创建成功:', result); return result; } catch (error) { // 别忘了处理错误,比如卡号无效、过期之类的情况 console.error('创建失败:', error.response.data); } } // 调用函数 createPaymentMethod();
五、获取并使用返回的内容
调用成功后,result里包含了PayMongo返回的Payment Method信息,核心内容在result.data里:
result.data.id:这个是Payment Method的唯一标识,后续创建支付Intent的时候会用到result.data.attributes.status:状态,比如active表示有效result.data.attributes.type:返回的支付类型(就是我们传的card)
举个例子,提取关键信息:
const paymentMethodId = result.data.id; const paymentStatus = result.data.attributes.status; console.log(`生成的Payment Method ID: ${paymentMethodId},状态: ${paymentStatus}`);
给新手的重要提示
- 绝对不要在前端代码里用Secret Key!Secret Key是后端专用的,前端要调用的话,应该自己写个后端接口,由后端来调用PayMongo的API,避免密钥泄露。
- 测试的时候用PayMongo提供的测试卡信息,不要用真实银行卡号。
- 一定要用
try/catch包裹异步调用,不然出错了程序会直接崩溃。
内容的提问来源于stack exchange,提问作者Ian Ducao
相关产品推荐
相关产品推荐

