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:12:02  回复该评论
  • 哈哈哈,这篇文章太逗了,作者一定是个幽默大师,让人一读就忍不住想分享给朋友。
  •  墨色流年
     2024-11-19 06:11:56  回复该评论
  • 读了这篇文章,我感觉自己仿佛被一股欢乐的风吹过,心情变得无比舒畅。
  •  乱世枭雄
     2024-11-19 06:11:58  回复该评论
  • 读了这篇文章,我感觉自己仿佛被一股欢乐的暖流包围,心情变得无比温暖。
  •  文思泉涌侠
     2024-11-19 06:07:01  回复该评论
  • 此文条理清晰,文笔流畅,可见作者文思敏捷,才华横溢。虽未详读内容,但已能感受到文章的深度与广度,点赞!
  •  漫步云端
     2024-11-19 06:11:54  回复该评论
  • 哈哈哈,这篇文章太逗了,作者一定是个隐藏的段子高手,让人一读就爱不释手。
  •  剑指天涯
     2024-11-19 06:12:01  回复该评论
  • 读了这篇文章,我感觉自己仿佛被一股欢乐的力量感染,心情变得无比舒畅。
  •  点赞侠
     2024-11-19 06:07:01  回复该评论
  • 此文真是字字珠玑,读来满口余香,作者的文学功底深厚,让人钦佩不已!期待更多精彩,继续加油哦!
  •  温馨点赞
     2024-11-19 06:07:00  回复该评论
  • 这篇文章真是让人眼前一亮,文笔流畅,思路清晰,读起来非常享受。作者真是才华横溢,期待更多佳作!
  •  佳作印象
     2024-11-19 06:06:59  回复该评论
  • 文章条理清晰,论述深入,展现了作者的深厚功底。文笔流畅,阅读体验极佳,是一篇不可多得的佳作。
  •  柔情侠骨
     2024-11-19 06:11:57  回复该评论
  • 这篇文章简直就是我的解压神器,每次读都能让我开怀大笑,作者真是个宝藏。

发表评论:

推荐标签

tag