3 回答

TA貢獻1804條經驗 獲得超7個贊
希望您已添加驗證校驗和所需的“CALLBACK_URL”。正如 paytm 文檔中提到的
CALLBACK_URL - 避免篡改的安全參數。使用 Paytm 提供的服務器端校驗和實用程序生成。商家必須確保它始終在服務器上生成。
希望這能發揮魔力。

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()
}
});
我希望這能幫到您。

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();
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }
添加回答
舉報