PayMongo API集成教程:在Next.js中接受GCash和GrabPay支付

本文将指导开发者如何在Next.js项目中集成PayMongo API,实现GCash和GrabPay支付的处理。通过使用PayMongo的API,商家可以在他们的应用或网站中直接集成支付功能。

第1部分:PayMongo支付工作流程与信用卡支付设置

在第一部分中,我们讨论了如何设置PayMongo的支付工作流,以及如何配置信用卡支付。接下来,我们将讨论如何使用webhooks监控支付状态,并处理GCash和GrabPay支付。

集成步骤

1. 设置项目

在开始之前,确保你已经完成了第一部分的设置。你可以克隆项目中的part-1-done分支,或者根据本教程创建一个.env文件,插入你的公共和私密密钥:

bash NEXT_PUBLIC_PAYMONGO_PUBLIC=pk_test_xxxxxxxxxxxxxxxxxxxxxxxx
PAYMONGO_SECRET=sk_test_xxxxxxxxxxxxxxxxxxxxxxxx

2. 配置ngrok

使用ngrok将本地开发环境暴露到公网。通过以下命令安装并启动ngrok:

bash yarn add ngrok --dev
yarn ngrok

3. 创建Webhook

PayMongo提供webhooks来通知支付事件。在pages/api/paymongo_webhook.js文件中,创建一个接收支付事件的端点:

javascript const handler = async (req, res) => {  if (req.method === "POST") {    console.log("===Webhook triggered===");    const data = req.body.data;    console.log(data);
    res.status(200).send("Webhook Received");
  } else {
    res.setHeader("Allow", "POST");
    res.status(405).send("Method Not Allowed");
  }
};export default handler;

4. 接受GCash和GrabPay支付

PayMongo的API使用Source和Payment工作流来处理GCash和GrabPay支付。以下是处理这些支付的步骤:

  • 创建一个Source:这表示一个支付来源,用户可以通过它授权支付。

  • 监听支付状态:通过webhook监听支付状态,确认支付是否成功。

  • 创建支付:在Source授权后,通过PayMongo创建一个支付。

5. 在前端处理支付

在前端页面中,创建一个函数来生成支付源,并通过用户授权完成支付:

const createSource = async () => {
  setPaymentStatus("Creating Source");
  const options = {
    method: 'POST',
    headers: {
      Accept: 'application/json',
      'Content-Type': 'application/json',
      Authorization: `Basic ${Buffer.from(publicKey).toString("base64")}`,
    },
    body: JSON.stringify({
      data: {
        attributes: {
          amount: amount  100,
          redirect: { success: 'http://localhost:3000/payment', failed: 'http://localhost:3000/payment' },
          billing: { name: `${name}`, phone: `$

`, email: `${email}` },           type: 'gcash', // or 'grabpay'           currency: 'PHP',         },       },     }),   };   return fetch('https://api.paymongo.com/v1/sources', options)     .then(response => response.json())     .then(response => response)     .catch(err => console.error(err)); };

6. 支付成功后的处理

一旦支付成功,PayMongo会触发payment.paid事件。你可以在webhook端点中处理此事件,更新数据库或进行其他操作:

javascript if (data.attributes.type === "payment.paid") {  console.log("Payment Paid");
}

7. 完成支付

通过监听source.chargeable事件并创建支付,你可以确保GCash或GrabPay支付的正确处理。一旦支付成功,资金将转账到商户账户。

总结

通过上述步骤,你可以在Next.js应用中集成PayMongo API,实现GCash和GrabPay支付的处理。PayMongo为菲律宾市场提供了一个强大的支付平台,帮助商家轻松接入本地支付方式。

PayMongo API集成教程:在Next.js中接受GCash和GrabPay支付

如需了解更多关于集成PayMongo API的信息,请访问PayMongo官网或联系我们的客服团队。


猜你喜欢

发表评论

  •  烈焰焚天
     2024-11-19 06:11:59  回复该评论
  • 哈哈哈,这篇文章太逗了,作者一定是个幽默大师,让人一读就忍不住想评论一番。
  •  三方四方
     2024-11-19 06:03:01  回复该评论
  • 这篇文章关于第三方支付平台在网站行业中的应用写得非常出色,结构清晰,逻辑严谨,语言流畅。作者不仅深入剖析了行业现状,还给出了前瞻性的见解,读后受益匪浅。
  •  战神无双
     2024-11-19 06:11:58  回复该评论
  • 这篇文章的幽默细胞真是太发达了,作者一定是生活中的开心果,让人一读就忍不住想笑。
  •  乱世枭雄
     2024-11-19 06:11:58  回复该评论
  • 读了这篇文章,我感觉自己仿佛被一股欢乐的暖流包围,心情变得无比温暖。
  •  墨韵飘香
     2024-11-19 06:07:01  回复该评论
  • 这文章读起来就是一种享受,作者的文字驾驭能力真是太棒了!字里行间流露出的气质,让人忍不住想一直读下去,期待更多佳作!
  •  梦幻之旅
     2024-11-19 06:11:59  回复该评论
  • 哈哈哈,这篇文章太逗了,作者一定是个隐藏的喜剧大师,让人忍俊不禁。
  •  冰封剑魄
     2024-11-19 06:11:59  回复该评论
  • 这篇文章简直是我的快乐源泉,读完笑得我肚子疼,作者真是个段子手!
  •  墨香书韵
     2024-11-19 06:07:01  回复该评论
  • 文章条理清晰,语言流畅,读来如沐春风,作者的文字功底可见一斑。虽未深入内容,但已心生敬佩,佳作一枚!
  •  文章赞赏
     2024-11-19 06:06:56  回复该评论
  • 此文条理清晰,语言流畅,展现了作者对第三方支付平台的深刻理解。内容虽未详读,但已感受到作者的用心与专业,值得一读。
  •  墨色苍穹
     2024-11-19 06:12:01  回复该评论
  • 哇,这篇文章太搞笑了,作者一定是段子界的佼佼者,让人一读就忍不住笑出声来。

发表评论:

推荐标签

tag