日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stripe pay_J2Pay –完整示例

發(fā)布時(shí)間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stripe pay_J2Pay –完整示例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

stripe pay

介紹

在本節(jié)中,我們將詳細(xì)探討如何使用網(wǎng)關(guān)并成功調(diào)用所有四種方法,即購買,退款,作廢和重新計(jì)費(fèi)。

對(duì)于此示例,我們將使用授權(quán)網(wǎng)關(guān)。 讓我們開始。

首先,我們將獲得授權(quán)網(wǎng)關(guān)對(duì)象。

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

但是,如果您想動(dòng)態(tài)獲取授權(quán)網(wǎng)關(guān),例如從數(shù)據(jù)庫中獲取其名稱,該怎么辦。

這是您可以執(zhí)行的操作。

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

知道您可以了解如何獲取所需網(wǎng)關(guān)對(duì)象的兩種方法。

由于我們?cè)跍y(cè)試環(huán)境中工作,因此第二件事就是啟用測(cè)試模式。

gateway.setTestMode(true);

注意:測(cè)試模式僅在網(wǎng)關(guān)支持的情況下才有效,否則它將被庫忽略。

接下來也是最重要的一點(diǎn)是API參數(shù),這些參數(shù)是我的商家服務(wù)提供商提供的唯一值,即API用戶名和密碼,必須包含在所有請(qǐng)求中,并且對(duì)于所有網(wǎng)關(guān)而言,它們始終是不同的。

由于我們使用的是J2pay,因此無需閱讀任何文檔即可授權(quán)網(wǎng)關(guān)變量。

這是您將使用樣本參數(shù)方法的位置(請(qǐng)參閱樣本參數(shù)部分)

這是您將執(zhí)行的操作。

JSONObject apiSampleParameters = gateway.getApiSampleParameters();

現(xiàn)在我們將打印它以查看參數(shù)是什么。

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

如您所見,Authorize API參數(shù)是name和transactionKey。 我們將填充這些值并傳遞給購買方法。

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

采購

購買方法需要五個(gè)參數(shù)。

  • JSONObject apiParamters,這是每個(gè)網(wǎng)關(guān)始終唯一的網(wǎng)關(guān)特定參數(shù)。
  • 客戶客戶,這個(gè)類代表客戶的個(gè)人信息。
  • CustomerCard customerCard,此類代表客戶卡詳細(xì)信息。
  • 貨幣貨幣,即枚舉,包含將收取金額的貨幣列表。
  • 浮動(dòng)金額,將要收取的金額。
  • 我們已經(jīng)在上面設(shè)置了apiParameters。

    現(xiàn)在創(chuàng)建客戶和客戶卡對(duì)象。

    注意:客戶和客戶卡類支持鏈設(shè)置器方法,并且下面使用的所有字段都是必需的。

    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參數(shù)不需要任何說明。

    現(xiàn)在所有參數(shù)都準(zhǔn)備好了,我們可以將它們傳遞給購買方法

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

    您可以通過調(diào)用isSuccessful方法來檢查購買請(qǐng)求的狀態(tài),還可以通過調(diào)用getJSONResponse方法來獲取JSON響應(yīng)。

    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());

    讓我們看看收到的回復(fù)。 考慮我們將響應(yīng)保存在響應(yīng)變量中。

    JSONObject response = response.getJSONResponse();

    打印響應(yīng)后,這就是我們得到的。

    {"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 }}

    如您所見,對(duì)于進(jìn)一步的交易,例如退款,作廢或重新開票庫本身創(chuàng)建了必需的參數(shù)

    重發(fā)

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

    虛無

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

    退款

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

    注意:您可以將這些參數(shù)保存在數(shù)據(jù)庫中,并將它們傳遞給合適的方法。

    重新開票

    對(duì)于重新計(jì)費(fèi),我們將調(diào)用getRebillSampleParameters方法。

    JSONObject rebillSampleParameters = gateway.getRebillSampleParameters();

    打印后,您將看到。

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

    如果將其與上面的購買響應(yīng)rebillParams密鑰相匹配,您將看到實(shí)際上沒有任何區(qū)別。 購買響應(yīng)已包含這些參數(shù)和填充值。

    因此,我們不會(huì)像上面的getApiSampleParameters那樣創(chuàng)建它們,但是如果您尚未從該庫中執(zhí)行購買交易,則可以使用第二個(gè)選項(xiàng)來創(chuàng)建這些參數(shù)并將它們傳遞給rebill方法。 下面我們描述了兩種方法,因此您可以使用更適合自己的方法。

    第一種方法

    這種方法是快速前進(jìn)的。 我們將使用庫生成的參數(shù)(rebillParams)。

    由于重新開票方法需要三個(gè)參數(shù)

  • JSON apiParameters
  • JSON rebillParameters
  • 浮動(dòng)金額
  • 我們已經(jīng)討論了apiParameters,只是提醒您我們將網(wǎng)關(guān)對(duì)象保存在網(wǎng)關(guān)變量中,并將購買響應(yīng)保存在響應(yīng)變量中。

    這是我們可以輕松調(diào)用rebill方法的方法。

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

    僅僅兩行就不是那么簡(jiǎn)單嗎?

    第二種方法

    第二種方法與我們創(chuàng)建的apiParameters類似。

    JSONObject rebillParams = gateway.getRebillSampleParameters();

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

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

    現(xiàn)在,我們將填充這些值。

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

    現(xiàn)在我們可以調(diào)用rebill方法。

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

    如上所示,您可以調(diào)用rebillResponse。 getJSONResponse()方法獲取響應(yīng)。 您還可以通過調(diào)用rebillResponse.isSuccessful()方法來檢查事務(wù)是否成功。

    您還可以注意到這兩種方法都非常簡(jiǎn)單,可以隨意使用更適合自己的方法,但是建議您使用第一種方法,因?yàn)檫@也非常簡(jiǎn)單,并且排除了任何可能的錯(cuò)誤。

    注意:在本示例的其余部分,我們將使用第一種方法。

    退款

    退款方式需要三個(gè)參數(shù)

  • JSON apiParameters
  • JSON退款參數(shù)
  • 浮動(dòng)金額
  • 這與退款非常相似。 這就是我們稱為退款方式的方式。

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

    注意:其余工作將保持不變。returnResponse包含實(shí)際的響應(yīng)。

    空洞

    voidTransaction方法需要兩個(gè)參數(shù)。

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

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

    注意:其余工作將保持不變voidResponse包含實(shí)際的響應(yīng)。

    祝賀您完成示例。 您已經(jīng)完全了解該庫。

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

    stripe pay

    總結(jié)

    以上是生活随笔為你收集整理的stripe pay_J2Pay –完整示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。