首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React和RazorPay应用程序的RazorPay集成

React和RazorPay应用程序的RazorPay集成
EN

Stack Overflow用户
提问于 2020-10-17 10:52:32
回答 1查看 3.1K关注 0票数 1

是否可以使用reactjs(前端)和Java 8(后端)在应用程序中集成Razorpay。

在“剃须刀”网站上,他们没有与react应用程序集成的文档。

我刚开始使用reactjs和支付网关集成,所以如果有人曾经与reactjs合作过,请提出任何好的方法/任何可用的文档。

或者,如果有人可以建议任何好的支付网关,这是很容易集成到REACTJS+JAVA应用程序。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-17 11:36:32

为了将API作为后端来处理,对于使用React的前端,我们使用JavaScript编写HTML。我们依赖于JavaScript的强大功能来生成依赖于某些数据的HTML,而不是增强HTML以使其与该数据一起工作。增强HTML是其他JavaScript框架通常所做的事情。

因此,要使用API。Prerequisites# Java1.7或更高版本

Installation#您可以使用Maven或Gradle安装Razorpay。

Maven#下载并在您的系统上安装Maven。

从GitHub的发布部分下载最新的源代码压缩文件。

解压缩文件并将此依赖项添加到项目的项目对象模型(POM)中。

代码语言:javascript
复制
<dependency>
<groupId>com.razorpay</groupId>
<artifactId>razorpay-java</artifactId>
<version>x.y.z</version> //x.y.z = the version you want to install
</dependency>

Gradle#下载并在您的系统上安装Gradle。

从GitHub的发布部分下载最新的源代码压缩文件。

解压缩该文件并将此依赖项添加到项目的构建文件中:

代码语言:javascript
复制
compile "com.razorpay:razorpay-java:x.y.z" //x.y.z = the version you want to install

样本码

Initialization#

代码语言:javascript
复制
Create RazorpayClient with key_id & key_secret.
JAVA RazorpayClient razorpayClient = new RazorpayClient("key_id", "key_secret");

生成API Key#

使用适当的凭据登录到仪表板。选择要为其生成API键的模式(测试或活动)。注意:您必须为测试模式和活动模式生成单独的API键。在测试模式中没有使用真正的金钱。导航到“设置”→API键→生成键以生成所选模式的密钥。

添加自定义Headers#备注:这是一个可选步骤。

若要向请求中添加自定义标头,请执行以下操作:

代码语言:javascript
复制
Map<String, String> headers = new HashMap<String, String>();
razorpayClient.addHeaders(headers);

Orders#注意:单击此处获取请求参数和一个请求和响应示例。

创建一个Order#

代码语言:javascript
复制
JSONObject options = new JSONObject();
options.put("amount", 5000);
options.put("currency", "INR");
options.put("receipt", "txn_123456");
Order order = razorpayClient.Orders.create(options);

用ID#获取订单

代码语言:javascript
复制
Order order = razorpayClient.Orders.fetch("order_id");

获取所有Orders#

代码语言:javascript
复制
List<Order> orders = razorpayClient.Orders.fetchAll();

获取Payment#的订单

代码语言:javascript
复制
List<Payment> payments = razorpayClient.Orders.fetchPayments("order_id");

捕获Payment#

代码语言:javascript
复制
JSONObject options = new JSONObject();
options.put("amount", 1000);
options.put("currency", "INR");
razorpayClient.Payments.capture("payment_id", options);

用ID#取款

代码语言:javascript
复制
Payment payment = razorpayClient.Payments.fetch("payment_id");
int amount = payment.get("amount");
String id = payment.get("id");
Date createdAt = payment.get("created_at");

实体.get("attribute_key")方法根据属性具有灵活的返回类型。

获取所有Payments#

代码语言:javascript
复制
List<Payment> payments = razorpayClient.Payments.fetchAll();

创建一个完整的Refund#

代码语言:javascript
复制
JSONObject refundRequest = new JSONObject();
refundRequest.put("payment_id", <payment_id>);
Refund refund = razorpayClient.Payments.refund(refundRequest);

创建部分Refund#

代码语言:javascript
复制
JSONObject refundRequest = new JSONObject();
refundRequest.put("amount", <amount>);
refundRequest.put("payment_id", <payment_id>);
Refund refund = razorpay.Payments.refund(refundRequest);

通过ID#获取退款

代码语言:javascript
复制
Refund refund = razorpayClient.Refunds.fetch("refund_id");

获取所有Refunds#

代码语言:javascript
复制
List<Refund> refunds = razorpayClient.Refunds.fetchAll();

收取Payment#退款

代码语言:javascript
复制
Refund refund = razorpayClient.Payments.fetchRefund("refund_id");

获取Payment#的所有退款

代码语言:javascript
复制
JSONObject refundRequest = new JSONObject();
refundRequest.put("payment_id", <payment_id>);
List<Refund> refund = razorpayClient.Payments.fetchAllRefunds(refundRequest);

取卡Details#

代码语言:javascript
复制
Card card = razorpayClient.Cards.fetch(id);

创建一个Customer#

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("name", <name>);
request.put("email", <email>);
Customer customer = razorpayClient.Customers.create(request);

利用ID#获取客户

代码语言:javascript
复制
Customer customer = razorpayClient.Customers.fetch(customerId);

编辑Customer#

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("name", <name>);
request.put("email", <email>);
Customer customer = razorpayClient.Customers.edit(customerId, request);

获取一个Token#

代码语言:javascript
复制
Token token = razorpayClient.Customers.fetchToken(customerId, tokenId);

获取Customer#的令牌

代码语言:javascript
复制
List<Token> tokens = razorpayClient.Customers.fetchTokens(customerId);

删除Token#

代码语言:javascript
复制
razorpayClient.Customers.deleteToken(customerId, tokenId);

Subscriptions#

创建一个Plan#

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("period", "weekly");
request.put("interval", 1);

JSONObject item = new JSONObject();
item.put("name", "Test Weekly 1 plan");
item.put("description", "Description for the weekly 1 plan");
item.put("amount", 600);
item.put("currency", "INR");
request.put("item", item);
Plan plan = razorpayClient.Plans.create(request);

基于ID#的抓取计划

代码语言:javascript
复制
Plan plan = razorpayClient.Plans.fetch("<plan_id>");

获取所有Plans#

代码语言:javascript
复制
List<Plan> listPlans = razorpayClient.Plans.fetchAll();

创建一个Subscription#

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("plan_id", "<plan_id>");
request.put("customer_notify", 1);
request.put("total_count", 6);
request.put("start_at", 1495995837);

JSONArray addons = new JSONArray();
JSONObject addon = new JSONObject();
JSONObject item = new JSONObject();
item.put("name", "Delivery charges");
item.put("amount", 30000);
item.put("currency", "INR");
addon.put("item", item);
addons.put(addon);
request.put("addons", addons);

Subscription subscription = razorpayClient.Subscriptions.create(request);

通过ID#获取订阅

代码语言:javascript
复制
Subscription subscription = razorpayClient.Subscriptions.fetch("<subscription_id>");

获取所有Subscriptions#

代码语言:javascript
复制
 List<Subscription> listSubscriptions = razorpayClient.Subscriptions.fetchAll();

取消Subscription#

代码语言:javascript
复制
 Subscription subscription = razorpayClient.Subscriptions.cancel("<subscription_id>");

创建一个附加#

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("quantity", 2);

JSONObject addonItem = new JSONObject();
addonItem.put("name", "Extra Chair");
addonItem.put("amount", 30000);
addonItem.put("currency", "INR");
request.put("item", addonItem);

Addon addon = razorpayClient.Subscriptions.createAddon(<subscription_id>, request);

通过ID#获取附加组件

代码语言:javascript
复制
Addon addon = razorpayClient.Addons.fetch(<addon_id>);

删除加载项#

代码语言:javascript
复制
razorpayClient.Addons.delete(<addon_id>);

支付Links#

创建订阅Link#

代码语言:javascript
复制
JSONObject lineItem = new JSONObject();
lineItem.put("amount", 100); // Note: The amount should be in paise.
lineItem.put("name", "name_invoice");

JSONArray lineItems = new JSONArray();
lineItems.put(lineItem);

JSONObject request = new JSONObject();
request.put("line_items", lineItems);
request.put("date", 1480768625); // Timestamp in seconds
request.put("currency", "INR");
request.put("sms_notify", "0");

Invoice invoice = razorpayClient.Invoices.create(request);
Fetch Subscription Link by ID#
Invoice invoice = razorpayClient.Invoices.fetch("invoice_id");

获取所有订阅Links#

代码语言:javascript
复制
List<Invoice> invoices = razorpayClient.Invoices.fetchAll();

取消订阅Link#

代码语言:javascript
复制
Invoice invoice = razorpayClient.Invoices.cancel("invoice_id");

创建一个Invoice#

代码语言:javascript
复制
JSONObject lineItem = new JSONObject();
lineItem.put("amount", 100);
lineItem.put("name", "name_invoice");

JSONArray lineItems = new JSONArray();
lineItems.put(lineItem);

JSONObject request = new JSONObject();
request.put("line_items", lineItems);
request.put("date", 1480768625);
request.put("currency", "INR");
request.put("sms_notify", "0");

Invoice invoice = razorpayClient.Invoices.create(request);

用ID#取发票

代码语言:javascript
复制
Invoice invoice = razorpayClient.Invoices.fetch("invoice_id");
Fetch all Invoices#
List<Invoice> invoices = razorpayClient.Invoices.fetchAll();
Cancel an Invoice#
Invoice invoice = razorpayClient.Invoices.cancel("invoice_id");

创建虚拟Account#

代码语言:javascript
复制
JSONObject request = new JSONObject();
JSONArray receiverTypeArray = new JSONArray();
receiverTypeArray.put("bank_account");
request.put("receiver_types", receiverTypeArray);
JSONObject notes = new JSONObject();
notes.put("receiver_key", "receiver_value");
request.put("notes", notes);
request.put("description", "First Virtual Account");
VirtualAccount virtualAccount = razorpayClient.VirtualAccounts.create(request);

利用ID#获取虚拟帐户

代码语言:javascript
复制
VirtualAccount virtualAccount = razorpayClient.VirtualAccounts.fetch(" 
<virtual_account_id>");

获取所有虚拟Accounts#

代码语言:javascript
复制
List<VirtualAccount> virtualAccountList = razorpayClient.VirtualAccounts.fetchAll();
Close a Virtual Account#
VirtualAccount virtualAccount = razorpayClient.VirtualAccounts.close(" 
<virtual_account_id>");
List Payments for a Virtual Account#
List<Payment> paymentList = 
razorpayClient.VirtualAccounts.fetchPayments("virtual_account_id");

创建一个Transfer#

代码语言:javascript
复制
JSONObject request = new JSONObject();

JSONArray transfers = new JSONArray();

JSONObject transfer = new JSONObject();
transfer.put("amount", <amount>);
transfer.put("currency", "INR");
transfer.put("account", <account_id>);

transfers.put(transfer);
request.put("transfers", transfers);
List<Transfer> transfers = razorpayClient.Payments.transfer("payment_id", request);

创建一个直接Transfer#

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("amount", <amount>);
request.put("currency", "INR");
request.put("account", <account_id>);
Transfer transfer = razorpayClient.Transfers.create(request);

编辑Transfer#

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("on_hold", true);
Transfer transfer = razorpayClient.Transfers.edit(request);

提取银行转帐Payments#

代码语言:javascript
复制
BankTransfer bankTransfer = razorpayClient.Payments.fetchBankTransfers("payment_id");

获取Payment#的所有传输

代码语言:javascript
复制
List<Transfers> transfers = razorpayClient.Payments.fetchAllTransfers("payment_id");
Fetch a Transfer by ID#
Transfer transfer = razorpayClient.Transfers.fetch("transfer_id");

获取所有Transfers#

代码语言:javascript
复制
List<Transfer> transfers = razorpayClient.Transfers.fetchAll();

创建Transfer#的反转

代码语言:javascript
复制
JSONObject request = new JSONObject();
request.put("amount", <amount>);

Reversal reversal = razorpayClient.Transfers.reversal("transfer_id", request);

Webhooks#

验证Web钩子Signature#您可以验证接收到的Web钩子的签名:

代码语言:javascript
复制
Utils.verifyWebhookSignature("<webhook_payload>", "<webhook_signature>", " 
<webhook_secret>");

Utility#

验证Payment#的签名您可以使用Utils类来验证接收到的签名,以响应使用Orders进行的付款。

代码语言:javascript
复制
JSONObject options = new JSONObject();
options.put("razorpay_order_id", "<order_id>");
options.put("razorpay_payment_id", "<payment_id>");
options.put("razorpay_signature", "<signature>");
Utils.verifyPaymentSignature(paymentResponse, "<key_secret>");

自定义Requests#您可以使用客户端发出自定义API请求。例如,这里是如何向/payments/path端点发出自定义请求的方法。

代码语言:javascript
复制
Entity response = razorpayClient.Payments.post("path", JSONObject requestBody);

样本应用

集成并运行示例Application#

使用Razorpay集成创建签出表单。

在表单提交中接受razorpay_payment_id参数。

运行捕获代码来捕获支付。

编辑index.ftl.中的键

将您的和添加到server.yml文件中。参考Generate键学习如何生成密钥。

使用以下命令构建测试应用程序:

代码语言:javascript
复制
mvn clean install

使用以下命令运行测试应用程序:

代码语言:javascript
复制
java -jar target/razorpay-java-testapp-1.0-SNAPSHOT.jar server server.yml

注意:

如果要重用此代码作为最终代码,请执行以下步骤:

编辑index.ftl文件中的键。编辑和server.yml文件中的server.yml。在使用应用程序接受实时付款时使用活动键。

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

https://stackoverflow.com/questions/64401632

复制
相关文章

相似问题

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