欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

stripe pay_J2Pay –完整示例

发布时间:2023/12/3 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 stripe pay_J2Pay –完整示例 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

stripe pay

介绍

在本节中,我们将详细探讨如何使用网关并成功调用所有四种方法,即购买,退款,作废和重新计费。

对于此示例,我们将使用授权网关。 让我们开始。

首先,我们将获得授权网关对象。

Gateway gateway = GatewayFactory.getGateway(AvailableGateways.AUTHORIZE);

但是,如果您想动态获取授权网关,例如从数据库中获取其名称,该怎么办。

这是您可以执行的操作。

Gateway gateway = GatewayFactory.getGateway(AvailableGateways.valueOf("AUTHORIZE"));

知道您可以了解如何获取所需网关对象的两种方法。

由于我们在测试环境中工作,因此第二件事就是启用测试模式。

gateway.setTestMode(true);

注意:测试模式仅在网关支持的情况下才有效,否则它将被库忽略。

接下来也是最重要的一点是API参数,这些参数是我的商家服务提供商提供的唯一值,即API用户名和密码,必须包含在所有请求中,并且对于所有网关而言,它们始终是不同的。

由于我们使用的是J2pay,因此无需阅读任何文档即可授权网关变量。

这是您将使用样本参数方法的位置(请参阅样本参数部分)

这是您将执行的操作。

JSONObject apiSampleParameters = gateway.getApiSampleParameters();

现在我们将打印它以查看参数是什么。

JSONObject apiSampleParameters = gateway.getApiSampleParameters();System.out.println(apiSampleParameters);//output{ "name" : "also called api user name / api login id", "transactionKey" : "the transaction key" }

如您所见,Authorize API参数是name和transactionKey。 我们将填充这些值并传递给购买方法。

apiSampleParameters.put("name", "<your acount's user name here>"); apiSampleParameters.put("transactionKey", "<your account's transaction key here>");

采购

购买方法需要五个参数。

  • JSONObject apiParamters,这是每个网关始终唯一的网关特定参数。
  • 客户客户,这个类代表客户的个人信息。
  • CustomerCard customerCard,此类代表客户卡详细信息。
  • 货币货币,即枚举,包含将收取金额的货币列表。
  • 浮动金额,将要收取的金额。
  • 我们已经在上面设置了apiParameters。

    现在创建客户和客户卡对象。

    注意:客户和客户卡类支持链设置器方法,并且下面使用的所有字段都是必需的。

    Customer customer = new Customer();customer.setFirstName("test first name").setLastName("test last name").setCountry(Country.US).setState("TX").setCity("test city").setAddress("test address").setZip("12345").setPhoneNumber("1234567890").setEmail("email@domain.com").setIp("127.0.0.1");CustomerCard customerCard = new CustomerCard();customerCard.setName("test card name").setNumber("5424000000000015").setCvv(123).setExpiryMonth("01").setExpiryYear("2022");

    注意:第4和第5参数不需要任何说明。

    现在所有参数都准备好了,我们可以将它们传递给购买方法

    HTTPResponse response = gateway.purchase(apiSampleParameters, customer, customerCard, Currency.USD, 45);

    您可以通过调用isSuccessful方法来检查购买请求的状态,还可以通过调用getJSONResponse方法来获取JSON响应。

    response.isSuccessful();response.getJSONResponse();

    让我们将所有代码放在一起。

    Gateway gateway = GatewayFactory.getGateway(AvailableGateways.AUTHORIZE);JSONObject apiSampleParameters = gateway.getApiSampleParameters();apiSampleParameters.put("name", "");apiSampleParameters.put("transactionKey", "");Customer customer = new Customer();customer.setFirstName("test first name").setLastName("test last name").setCountry(Country.US).setState("TX").setCity("test city").setAddress("test address").setZip("12345").setPhoneNumber("1234567890");CustomerCard customerCard = new CustomerCard();customerCard.setName("test card name").setNumber("5424000000000015").setCvv(123).setExpiryMonth("01").setExpiryYear("2022");gateway.setTestMode(true);HTTPResponse response = gateway.purchase(apiSampleParameters, customer, customerCard, Currency.USD, 45);System.out.println (response.isSuccessful());System.out.println (response.getJSONResponse());

    让我们看看收到的回复。 考虑我们将响应保存在响应变量中。

    JSONObject response = response.getJSONResponse();

    打印响应后,这就是我们得到的。

    {"lr": {"amount": 2.5,"cardExpiryYear": "2017","message": "This transaction has been approved.","cardFirst6": "542400","cardExpiryMonth": "12","transactionId": "60036012175","maskedCard": "542400******0015","rebillParams": {"customerProfileId": "1813844918","paymentProfileId": "1808509554"},"success": true,"voidParams": {"transactionId": "60036012175"},"currencyCode": "USD","cardLast4": "0015","refundParams": {"transactionId": "60036012175","cardLast4": "0015"}},"gr": { //long gateway response }}

    如您所见,对于进一步的交易,例如退款,作废或重新开票库本身创建了必需的参数

    重发

    "rebillParams": {"customerProfileId": "1813844918","paymentProfileId": "1808509554"},

    虚无

    "voidParams": {"transactionId": "60036012175"},

    退款

    "refundParams": {"transactionId": "60036012175","cardLast4": "0015"}

    注意:您可以将这些参数保存在数据库中,并将它们传递给合适的方法。

    重新开票

    对于重新计费,我们将调用getRebillSampleParameters方法。

    JSONObject rebillSampleParameters = gateway.getRebillSampleParameters();

    打印后,您将看到。

    {"customerProfileId":"the customer profile id","paymentProfileId":"the customer payment profile id"}

    如果将其与上面的购买响应rebillParams密钥相匹配,您将看到实际上没有任何区别。 购买响应已包含这些参数和填充值。

    因此,我们不会像上面的getApiSampleParameters那样创建它们,但是如果您尚未从该库中执行购买交易,则可以使用第二个选项来创建这些参数并将它们传递给rebill方法。 下面我们描述了两种方法,因此您可以使用更适合自己的方法。

    第一种方法

    这种方法是快速前进的。 我们将使用库生成的参数(rebillParams)。

    由于重新开票方法需要三个参数

  • JSON apiParameters
  • JSON rebillParameters
  • 浮动金额
  • 我们已经讨论了apiParameters,只是提醒您我们将网关对象保存在网关变量中,并将购买响应保存在响应变量中。

    这是我们可以轻松调用rebill方法的方法。

    JSONObject rebillParams = response.getJSONObject("lr").getJSONObject("rebillParams")HTTPResponse rebillResponse = gateway.rebill(apiSampleParameters, rebillParams, 105);

    仅仅两行就不是那么简单吗?

    第二种方法

    第二种方法与我们创建的apiParameters类似。

    JSONObject rebillParams = gateway.getRebillSampleParameters();

    打印rebillParams之后,我们得到了。

    System.out.println(rebillParams);//output{"customerProfileId":"the customer profile id","paymentProfileId":"the customer payment profile id"}

    现在,我们将填充这些值。

    rebillParams.put("customerProfileId", "1813844918");rebillParams.put("paymentProfileId", "1808509554");

    现在我们可以调用rebill方法。

    HTTPResponse rebillResponse = gateway.rebill(apiSampleParameters, rebillParams, 105);

    如上所示,您可以调用rebillResponse。 getJSONResponse()方法获取响应。 您还可以通过调用rebillResponse.isSuccessful()方法来检查事务是否成功。

    您还可以注意到这两种方法都非常简单,可以随意使用更适合自己的方法,但是建议您使用第一种方法,因为这也非常简单,并且排除了任何可能的错误。

    注意:在本示例的其余部分,我们将使用第一种方法。

    退款

    退款方式需要三个参数

  • JSON apiParameters
  • JSON退款参数
  • 浮动金额
  • 这与退款非常相似。 这就是我们称为退款方式的方式。

    JSONObject refundParams = response.getJSONObject("lr").getJSONObject("refundParams")HTTPResponse refundResponse = gateway.refund(apiSampleParameters, refundParams, 2.5);

    注意:其余工作将保持不变。returnResponse包含实际的响应。

    空洞

    voidTransaction方法需要两个参数。

  • JSON apiParameters
  • JSON voidParameters
  • 下面是示例代码。

    JSONObject voidParams= response.getJSONObject("lr").getJSONObject("voidParams")HTTPResponse voidResponse = gateway.voidTransaction (apiSampleParameters, voidParams);

    注意:其余工作将保持不变voidResponse包含实际的响应。

    祝贺您完成示例。 您已经完全了解该库。

    翻译自: https://www.javacodegeeks.com/2018/11/j2pay-complete-example.html

    stripe pay

    总结

    以上是生活随笔为你收集整理的stripe pay_J2Pay –完整示例的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。