android的银联支付,android 银联支付Demo

【实例简介】/*

*

*使用Upomp_Pay_Demo关联说明

*/

1.需将PluginLink.java和com_unionpay_upomp_lthj_lib.jar放入到Upomp_Pay_Demo的相应位置。

2.将Upomp_Pay_Demo与upomp_Res工程进行关联,并按照客户端技术文档指南,配置其相关信息,即可正常运行。

3.该Demo用于商户了解银联手机支付插件,从服务器到客户端,从客户端到调用插件进行支付的一系列操作。

其中包含了服务器的信息交互和签名相关方法。请妥善使用~

4.如有相关问题,请及时与我们联系!

【实例截图】

06920a7a980a695409f05a6e5ffb51d3.png

【核心代码】

package com.upomp.pay.activity;

import java.io.FileNotFoundException;

import java.io.InputStream;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import com.upomp.pay.help.CreateOriginal;

import com.upomp.pay.help.Create_MerchantX;

import com.upomp.pay.help.GetValue;

import com.upomp.pay.help.Xmlpar;

import com.upomp.pay.httpservice.XmlHttpConnection;

import com.upomp.pay.info.Upomp_Pay_Info;

import com.upomp.pay.info.XmlDefinition;

import com.upomp.pay.sign.SignBy;

/*

* 该类主要负责将银联手机支付中,服务器和客户端之间的支付流程

*/

public class Upomp_Pay_DemoActivity extends Activity {

Button LanchPay, SubmitOrder;

InputStream PrivateSign, recMes;

/**************获取类对象***********************/

XmlHttpConnection httpConnection;

GetValue values;

Xmlpar xmlpar;

Star_Upomp_Pay star;

/***********************************************/

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Control_properties();

}

public void Control_properties() {

SubmitOrder = (Button) findViewById(R.id.SubmitOrderBtn);

LanchPay = (Button) findViewById(R.id.LanchPayBtn);

/*

* 服务器端:订单提交

*/

SubmitOrder.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

/*

* 创建订单号和订单时间

*/

Upomp_Pay_Info.merchantOrderId = Create_MerchantX

.createMerchantOrderId();

Upomp_Pay_Info.merchantOrderTime = Create_MerchantX

.createMerchantOrderTime();

/*

* 创建订单提交的7位签名原串

*/

Upomp_Pay_Info.originalsign = CreateOriginal

.CreateOriginal_Sign(7);

Log.d(Upomp_Pay_Info.tag, "这是订单提交的7位原串===" "\n"

Upomp_Pay_Info.originalsign);

/*

* 获取订单提交时,sign节点的签名值

*/

try {

PrivateSign = getFromAssets("898000000000002.p12");

} catch (FileNotFoundException e) {

Log.d(Upomp_Pay_Info.tag, "Exception is " e);

}

Upomp_Pay_Info.xmlSign = SignBy.createSign(

Upomp_Pay_Info.originalsign, Upomp_Pay_Info.alias,

Upomp_Pay_Info.password, PrivateSign);

Log.d(Upomp_Pay_Info.tag, "这是订单提交的7位签名===" "\n"

Upomp_Pay_Info.xmlSign);

/*

* 生成订单提交报文,向测试环境地址提交数据

*/

String Submit = XmlDefinition.ReturnXml(Upomp_Pay_Info.xmlSign,

7);

Log.d(Upomp_Pay_Info.tag, "这是订单提交报文===" "\n" Submit);

/*

* 定义前置网络通信地址

*/

httpConnection = new XmlHttpConnection(

"http://211.154.166.219/qzjy/MerOrderAction/deal.action",

6000);

/*

* 向前直提交标准报文

*/

httpConnection.sendMsg(Submit);

// 输出前置返回的报文

Log.d(Upomp_Pay_Info.tag, "这是前置返回的报文===" "\n"

httpConnection.getReMeg());

}

});

/*

* 客户端:订单验证

*/

LanchPay.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

recMes = httpConnection.getRecvMsg();

values = new GetValue();

xmlpar = new Xmlpar();

try {

xmlpar.XMLparser(recMes);

/*

* 获取解析后的三要素

*/

Upomp_Pay_Info.merchantId = values.getMerchantId();

Upomp_Pay_Info.merchantOrderId = values

.getMerchantOrderId();

Upomp_Pay_Info.merchantOrderTime = values

.getMerchantOrderTime();

/*

* 创建订单验证的3位原串

*/

Upomp_Pay_Info.originalsign = CreateOriginal

.CreateOriginal_Sign(3);

Log.d(Upomp_Pay_Info.tag, "这是订单提交的7位原串===" "\n"

Upomp_Pay_Info.originalsign);

/*

* 获取订单提交时,sign节点的签名值

*/

try {

PrivateSign = getFromAssets("898000000000002.p12");

} catch (FileNotFoundException e) {

Log.d(Upomp_Pay_Info.tag, "Exception is " e);

}

Upomp_Pay_Info.xmlSign = SignBy.createSign(

Upomp_Pay_Info.originalsign, Upomp_Pay_Info.alias,

Upomp_Pay_Info.password, PrivateSign);

Log.d(Upomp_Pay_Info.tag, "这是订单提交的3位签名===" "\n"

Upomp_Pay_Info.xmlSign);

/*

* 生成订单验证报文,向插件提交数据

*/

String LanchPay = XmlDefinition.ReturnXml(

Upomp_Pay_Info.xmlSign, 3);

Log.d(Upomp_Pay_Info.tag, "这是订单提交报文===" "\n" LanchPay);

/*

* 向插件提交xml数据

*/

star = new Star_Upomp_Pay();

star.start_upomp_pay(Upomp_Pay_DemoActivity.this, LanchPay);

} catch (Exception e) {

Log.d(Upomp_Pay_Info.tag, "Exception is " e);

}

}

});

}

/*

* 从assets 文件夹中获取文件并读取数据 "898000000000002.p12"

*/

public InputStream getFromAssets(String fileName)

throws FileNotFoundException {

try {

PrivateSign = getResources().getAssets().open(fileName);

} catch (Exception e) {

Log.d(Upomp_Pay_Info.tag, "Exception is " e);

}

return PrivateSign;

}

/*

* 插件返回支付信息的**回调函数** (non-Javadoc)

*

* @see android.app.Activity#onActivityResult(int, int,

* android.content.Intent)

*/

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (data != null) {

Bundle bundle = data.getExtras();

byte[] xml = bundle.getByteArray("xml");

// 自行解析并输出

String Sxml;

try {

Sxml = new String(xml, "utf-8");

Log.d(Upomp_Pay_Info.tag, "这是支付成功后,回调返回的报文,需自行解析" Sxml);

} catch (Exception e) {

Log.d(Upomp_Pay_Info.tag, "Exception is " e);

}

} else {

Log.d(Upomp_Pay_Info.tag, "data is null");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值