我正在我的Android应用程序中集成payUMoney。在测试和生产两个环境中都成功支付后,我只得到paymentId。我需要交易细节以及从Payumoney。我也联系了payUMoney的技术团队,但没有得到任何回应。
请看附上的图片为payUMoney响应,我已经打印在logcat。
我所尝试的如下所示。
public void makePayment() {
String phone = "8882434664";
String productName = "product_name";
String firstName = "piyush";
String txnId = "0nf7" + System.currentTimeMillis();
String email = "piyush.jain@payu.in";
String sUrl = AppConstant.BASE_URL + "/mob-payment/success";
String fUrl = AppConstant.BASE_URL + "/mob-payment/failure";
String udf1 = "";
String udf2 = "";
String udf3 = "";
String udf4 = "";
String udf5 = "";
boolean isDebug = true;
String key = "dRQuiA";
String merchantId = "4928174";
PayUmoneySdkInitilizer.PaymentParam.Builder builder = new PayUmoneySdkInitilizer.PaymentParam.Builder();
builder.setAmount(1.0)
.setTnxId(txnId)
.setPhone(phone)
.setProductName(productName)
.setFirstName(firstName)
.setEmail(email)
.setsUrl(sUrl)
.setfUrl(fUrl)
.setUdf1(udf1)
.setUdf2(udf2)
.setUdf3(udf3)
.setUdf4(udf4)
.setUdf5(udf5)
.setIsDebug(isDebug)
.setKey(key)
.setMerchantId(merchantId);
PayUmoneySdkInitilizer.PaymentParam paymentParam = builder.build();
calculateServerSideHashAndInitiatePayment(paymentParam);
}
private void calculateServerSideHashAndInitiatePayment(final PayUmoneySdkInitilizer.PaymentParam paymentParam) {
String url = "https://test.payumoney.com/payment/op/calculateHashForTest";
StringRequest jsonObjectRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
if (jsonObject.has(SdkConstants.STATUS)) {
String status = jsonObject.optString(SdkConstants.STATUS);
if (status != null || status.equals("1")) {
String hash = jsonObject.getString(SdkConstants.RESULT);
paymentParam.setMerchantHash(hash);
PayUmoneySdkInitilizer.startPaymentActivityForResult(ActivityConfirmOrder.this, paymentParam);
} else {
Toast.makeText(ActivityConfirmOrder.this,
jsonObject.getString(SdkConstants.RESULT),
Toast.LENGTH_SHORT).show();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error instanceof NoConnectionError) {
Toast.makeText(ActivityConfirmOrder.this,
ActivityConfirmOrder.this.getString(R.string.connect_to_internet),
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ActivityConfirmOrder.this,
error.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return paymentParam.getParams();
}
};
Volley.newRequestQueue(this).add(jsonObjectRequest);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PayUmoneySdkInitilizer.PAYU_SDK_PAYMENT_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
StringBuilder str = new StringBuilder();
Bundle bundle = data.getExtras();
if (bundle != null) {
Set<String> keys = bundle.keySet();
Iterator<String> it = keys.iterator();
while (it.hasNext()) {
String key = it.next();
str.append(key);
str.append(":");
str.append(bundle.get(key));
str.append("\n\r");
}
Log.e("res: ", str.toString());
}
} else if (resultCode == RESULT_CANCELED) {
} else if (resultCode == PayUmoneySdkInitilizer.RESULT_FAILED) {
if (data != null) {
if (data.getStringExtra(SdkConstants.RESULT).equals("cancel")) {
} else {
}
}
} else if (resultCode == PayUmoneySdkInitilizer.RESULT_BACK) {
}
}
}
我也面临同样的问题,但经过一点点研究,我发现我们需要使用不同的发票API分别生成发票。您可以找到发票API文档的bellow URL...
https://www.payumoney.com/dev-guide/products/invoicing.html
@Maulikdodia其实你需要自己创建成功url,那么payumoney就会像这样直接在你的成功url中发送所有的数据……
Array
(
[mihpayid] => 40399371551*******
[mode] => DC
[status] => success
[unmappedstatus] => captured
[key] => d****A
[txnid] => INV0****0531
[amount] => 1000.0
[addedon] => 2017-05-31 13:16:12
[productinfo] => ****
[firstname] => ****
[lastname] =>
[address1] =>
[address2] =>
[city] => null
[state] =>
[country] => null
[zipcode] =>
[email] => ***@test.xxx
[phone] =>
[udf1] =>
[udf2] =>
[udf3] =>
[udf4] =>
[udf5] =>
[udf6] =>
[udf7] =>
[udf8] =>
[udf9] =>
[udf10] =>
[hash] => ***************
[field1] => 715140****61
[field2] => 99***9
[field3] => 8523310*****511
[field4] => -1
[field5] =>
[field6] =>
[field7] =>
[field8] =>
[field9] => SUCCESS
[PG_TYPE] => HDFCPG
[encryptedPaymentId] => DB****EB8****02A****9FE4C****CB3
[bank_ref_num] => 8****016137****
[bankcode] => MAST
[error] => E000
[error_Message] => No Error
[name_on_card] => payu
[cardnum] => 512345XXXXXXXX46
[cardhash] => This field is no longer supported in postback params.
[amount_split] => {"PAYU":"1000.0"}
[payuMoneyId] => 1******0
[discount] => 0.00
[net_amount_debit] => 1000
)
然后,您可以在服务器端使用它生成发票,或者做任何您想做的事情。
来源:我已经做了所有的代码,它正在工作。希望有帮助...谢谢
本文向大家介绍Android集成支付宝支付功能示例,包括了Android集成支付宝支付功能示例的使用技巧和注意事项,需要的朋友参考一下 公司项目中需要支付功能,现在支付宝、微信支付很方便,也很多人使用,因此,他们是首选。在此记录一下支付宝集成过程,下期为微信支付,敬请期待 首先去支付宝官网下载其最新的Android的SDK集成Dmeo 支付宝 选择SDK&Dmeo进行下载 将支付宝jar包添加项目
我已经核实了Payumoney的帐户。当点击沙箱模式下的paynow按钮时,它会显示“发生了一些错误”。我使用了pnp SDK。 此代码用于onclick on paynow按钮。 这是哈希计算函数 执行流程: 用户在选择“在线支付”作为方法后,单击“paynow”按钮。 执行LaunchPayumOneyFlow()函数 所有附加到PayumOneYSDKInitializer.PaymentP
我正在使用php集成的payumoney支付网关。现在我已经差不多做了,但只想在成功或失败后的响应自定义参数,当我从payumoney网站的付款过程返回。 因此,如果有人对此有想法,那么它将非常感谢。
请检查屏幕截图,这个问题是有时发生,有时工作良好。如果有语法错误请原谅
我已经将PayUMoney与我的android应用程序集成在一起,交易正常工作,但我没有得到任何响应数据,我必须根据支付交易的状态执行一些操作(如果成功,我必须执行一些操作,如果失败,我必须执行一些其他操作)。 这是我的代码
我正在尝试整合payumoney支付网关在我的网站。我能完成交易。然而,我正在寻找一种方法,以获得已被收取的金额作为交易费的一个特定的交易。我在payumoney服务器在交易成功后发送的交易响应对象中找不到此字段,请帮助我。 示例: 响应对象:{“Country”:“”,“UDF10”:“”,“Discount”:“0.00”,“CardToken”:“789CE930DF72D5693ADFC”