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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

J2Pay –完整示例

發布時間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 J2Pay –完整示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

在本節中,我們將詳細探討如何使用網關并成功調用所有四種方法,即購買,退款,作廢和重新計費。

對于此示例,我們將使用授權網關。 讓我們開始。

首先,我們將獲得Authorize網關對象。

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

    總結

    以上是生活随笔為你收集整理的J2Pay –完整示例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。