亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android paytm支付網關響應

Android paytm支付網關響應

慕神8447489 2023-09-13 10:46:11
我已經實現了 Paytm 支付系統,一切正常,網絡意圖高于我的意圖,錢從客戶的賬戶中扣除,并添加到我的帳戶中,但交易完成后,它卡在一個白色頁面上,上面寫著“重定向”到應用程序',我相信我應該編寫代碼來重定向回我的應用程序,但我不知道該怎么做,因為我找不到 onTransactionSucess() 事件或類似的事件,我也嘗試過 onTransactionResponse 但仍然沒有回復。我檢查了所有 paytm 文檔并嘗試聯系 paytm 支持,但找不到方法。
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

希望您已添加驗證校驗和所需的“CALLBACK_URL”。正如 paytm 文檔中提到的

CALLBACK_URL - 避免篡改的安全參數。使用 Paytm 提供的服務器端校驗和實用程序生成。商家必須確保它始終在服務器上生成。

希望這能發揮魔力。


查看完整回答
反對 回復 2023-09-13
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

我希望您已將此變量添加到您的代碼中 -


PaytmPGService service;

如果您正在使用它,那么您可以獲得所有與付款相關的方法,如下所示:


service.startPaymentTransaction(this, true,

            true, new PaytmPaymentTransactionCallback() {


                @Override

                public void onTransactionResponse(Bundle inResponse) {

                    System.out.println("===== onTransactionResponse " + inResponse.toString());

                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

                        if (Objects.equals(inResponse.getString("STATUS"), "TXN_SUCCESS")) {

                            //    Payment Success

                        } else if (!inResponse.getBoolean("STATUS")) {

                            //    Payment Failed

                        }

                    }

                }


                @Override

                public void networkNotAvailable() {

                    // network error

                }


                @Override

                public void clientAuthenticationFailed(String inErrorMessage) {

                    // AuthenticationFailed

                }


                @Override

                public void someUIErrorOccurred(String inErrorMessage) {

                    // UI Error

                }


                @Override

                public void onErrorLoadingWebPage(int iniErrorCode, String inErrorMessage, String inFailingUrl) {

                    //  Web page loading error

                }


                @Override

                public void onBackPressedCancelTransaction() {

                    // on cancelling transaction

                }


                @Override

                public void onTransactionCancel(String inErrorMessage, Bundle inResponse) {

                    // maybe same as onBackPressedCancelTransaction()

                }

            });

我希望這能幫到您。


查看完整回答
反對 回復 2023-09-13
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

將默認的回調 URL 更改為假設“?http://yourdomain(如果在本地主機上檢查,則為 IP 地址)/pgResponse.php”;。將以下代碼添加到 pgResponse.php


?<?php

? ? ? ? session_start();?

? ? ? ? header("Pragma: no-cache");

? ? ? ? header("Cache-Control: no-cache");

? ? ? ? header("Expires: 0");




? ? ? ? // following files need to be included

? ? ? ? require_once("./lib/config_paytm.php");

? ? ? ? require_once("./lib/encdec_paytm.php");


? ? ? ? $paytmChecksum = "";

? ? ? ? $paramList = array();

? ? ? ? $isValidChecksum = "FALSE";


? ? ? ? $paramList = $_POST;

? ? ? ? $return_array= $_POST;

? ? ? ? $checkSum = getChecksumFromArray($paramList,PAYTM_MERCHANT_KEY);//generate new checksum

? ? ? ? $paytmChecksum = isset($_POST["CHECKSUMHASH"]) ? $_POST["CHECKSUMHASH"] : ""; //Sent by Paytm pg



? ? ? ? //Verify all parameters received from Paytm pg to your application. Like MID received from paytm pg is same as your applicationís MID, TXN_AMOUNT and ORDER_ID are same as what was sent by you to Paytm PG for initiating transaction etc.

? ? ? ? $isValidChecksum = verifychecksum_e($paramList, PAYTM_MERCHANT_KEY, $paytmChecksum); //will return TRUE or FALSE string.

? ? ? ? $return_array["IS_CHECKSUM_VALID"] = $isValidChecksum ? "Y" : "N";

? ? ? ? unset($return_array["CHECKSUMHASH"]);

? ? ? ? $mid = $_POST['MID'];

? ? ? $orderid = $_POST['ORDERID'];?



? ? ? ? $curl = curl_init();


? ? ? ? curl_setopt_array($curl, array(

? ? ? ? ? ? CURLOPT_RETURNTRANSFER => 1,

? ? ? ? ? ? CURLOPT_URL => 'https://securegw-stage.paytm.in/order/status?JsonData={"MID":"'.$mid.'","ORDERID":"'.$orderid.'","CHECKSUMHASH":"'.$checkSum.'"}',

? ? ? ? ? ? CURLOPT_USERAGENT => 'Make Request'

? ? ? ? ));


? ? ? ? $resp = curl_exec($curl);

? ? ? ? $status= json_decode($resp)->STATUS;


//do something in your database



? ? ? ? $encoded_json = htmlentities(json_encode($return_array));




? ? ? ? ?>


? ? ? ? <html>

? ? ? ? <head>

? ? ? ? ? ? ?<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-I">

? ? ? ? ? ? ?<title>Paytm</title>

? ? ? ? ? ? ?<script type="text/javascript">

? ? ? ? ? ? ? ? ? ? function response(){

? ? ? ? ? ? ? ? ? ? ? ? ? ? return document.getElementById('response').value;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ?</script>

? ? ? ? </head>

? ? ? ? <body>

? ? ? ? ? Redirecting back to the app.....</br>

? ? ? ? ? <form name="frm" method="post">

? ? ? ? ? ? <input type="hidden" id="response" name="responseField" value='<?php echo $encoded_json?>'>

? ? ? ? ? </form>

? ? ? ? </body>

? ? ? ? </html>

在安卓工作室中:


public void onTransactionResponse(Bundle inResponse) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? Log.d("Create Response", inResponse.toString());


? ? ? ? ? ? ? ? ? ? ? ? ? ? String response = inResponse.getString("RESPMSG");

? ? ? ? ? ? ? ? ? ? ? ? ? ? if (response.equals("Txn Successful.")) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Toast.makeText(Bag.this,"Payment done",Toast.LENGTH_LONG).show();


? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? else{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Toast.makeText(Bag.this,response,Toast.LENGTH_LONG).show();

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? }


查看完整回答
反對 回復 2023-09-13
  • 3 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號