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>");采購
購買方法需要五個參數。
我們已經在上面設置了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)。
由于重新開票方法需要三個參數
我們已經討論了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()方法來檢查事務是否成功。
您還可以注意到這兩種方法都非常簡單,可以隨意使用更適合自己的方法,但是建議您使用第一種方法,因為這也非常簡單,并且排除了任何可能的錯誤。
注意:在本示例的其余部分,我們將使用第一種方法。
退款
退款方式需要三個參數
這與退款非常相似。 這就是我們稱為退款方式的方式。
JSONObject refundParams = response.getJSONObject("lr").getJSONObject("refundParams")HTTPResponse refundResponse = gateway.refund(apiSampleParameters, refundParams, 2.5);注意:其余工作將保持不變。returnResponse包含實際的響應。
空洞
voidTransaction方法需要兩個參數。
下面是示例代碼。
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 –完整示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: usb安装linux找不到优盘(usb安
- 下一篇: 汽车重新备案(旧车备案后)