静海吉家家世界界可以微信支付吗

能微信支付的优德网址热新闻
澎湃新闻APP下载
能微信支付的优德网址:热门推荐天津移动通信-静海分公司(TJJHCMCC)
阅读本文前,请您先点击上面的蓝色字体“驾驭男人必修课”,再点击“关注”,这样您就可以继续免费收到文章了。每天
屁股甩得有点厉害
与人相伴,以心换心,必有相随。
仙贝海淘日本最全人气商品介绍,海外直邮。
5月5日,该主播曾直播道歉。 网络截图  5月5日,本报刊发《女主播夜宿故宫直播慈禧床榻?》报道,提到一
点击上方“洞察榆林”可订阅热门信息第一时间免费发给你洞察榆林三秦都市报陪你细致、客观、善意地看榆林新闻热线:
韩国总统文在寅的特使李海瓒今天起访问中国。韩国从17日起向美日中俄分别派出特使,正式启动“四强外交”。
民国剧《十里洋场拾年花》正在横店影视城热拍。探班期间制片人姚博文携主演秦海璐、盛一伦、王铭铎接受采访。谈及搭
“农药残存”!这些蔬菜你需要认真清洗了!
14日,哈尔滨一男子突发致呼吸受阻,被送到医院时,呼吸、心跳、血压均为零,且已过了10分钟,符合死亡标准。医静海水费能在支付宝上交吗?_静海吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:77,354贴子:
静海水费能在支付宝上交吗?收藏
静海水费能在支付宝上交吗?
酒店-携程酒店预订2折起~携程酒店,想订就订,预订电话:.酒店预订选「携程」有房保障,返现高达201元.
有没有哪位亲知道的
能把,电费就是在支付宝交的
不能 没联网
微信可以较
微信 ,钱包,生活缴费,水,静海,输入卡号可以交
支付宝可以
谢谢亲们,刚交了,微信可以交静海的,支付宝只能交泰达的
不能!!!
航通舟科技
现在的水卡交完以后是不是不用插卡了?打开水表没找到插卡的地方呢。
应该可以的吧,我家数字电就用支付宝付的
你不会自己看看吗……
微信怎么交?
微信可以交
支付宝可以
貌似可以支付宝缴费了,钱包,生活缴费,水费,静海,输入卡号可以交
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或1935人阅读
Android(77)
作者:谭东
环境:Windows 7
Android版微信支付官方文档和Demo问题很多,官方也没有及时更新和细化开发集成文档。
这里分享我集成Android客户端微信支付的思路和部分代码。希望对大家有帮助。
遇到的问题无非以下几种:
1、提示签名不对;
2、打包签名后的APK无法调起微信支付客户端,直接返回回调页;
3、不支持中文的Body;
4、支付的钱倍数不对,因为微信的单位是分;
首先,本文针对的是最新版微信Android支付SDK3.1.1写的,大家可以放心使用。
首先,把WXPayEntryActivity.java复制到我们的包名下的.wxapi目录下,要一致。
android:name=&.wxapi.WXPayEntryActivity&
android:exported=&true&
android:launchMode=&singleTop&
android:screenOrientation=&portrait& /&
WXPayEntryActivity.java官方Demo里有,我这里也复制一份我的,仅供参考。
public class WXPayEntryActivity extends BaseActivity implements IWXAPIEventHandler {
private IWXAPI
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, Conf.APP_ID);
api.handleIntent(getIntent(), this);
getSupportActionBar().setIcon(R.drawable.logo_gray);
getSupportActionBar().setTitle(&购买积分&);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Drawable dw = getResources().getDrawable(R.drawable.color_bg);
getSupportActionBar().setBackgroundDrawable(dw);
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
this.finish();
return super.onOptionsItemSelected(item);
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
public void onReq(BaseReq baseReq) {
public void onResp(BaseResp baseResp) {
if (baseResp.getType() == MAND_PAY_BY_WX) {
Log.d(&info&, &onPayFinish,errCode=& + baseResp.errCode);
if (baseResp.errCode == 0) {
ToastUtil.showToast(this, &支付成功&);
Intent intent = new Intent(&ACTION_PAY&);
sendBroadcast(intent);
this.finish();
} else if (baseResp.errCode == -1) {
ToastUtil.showToast(this, &配置错误&);
this.finish();
} else if (baseResp.errCode == -2) {
ToastUtil.showToast(this, &用户取消&);
this.finish();
ToastUtil.showToast(this, baseResp.errStr);
这里说一下Android微信支付流程,这里本地客户端都处理了所有的流程。
客户端把所有需要的信息拼接为XML后,统一下单,发送给微信服务器API请求,获取订单id,也就是prepayId。获取到这个prepayId后,我们再把必要的数据字段sign签名MD5后,调起微信支付客户端就可以了。比支付宝麻烦很多。
1、在程序的启动页,例如欢迎页就可以注册微信API的ID了。
IWXAPI msgApi = WXAPIFactory.createWXAPI(this, Conf.APP_ID);
msgApi.registerApp(Conf.APP_ID);
2、接下来处理微信POST请求的必要参数的拼接和加密等处理。写PayActivity.java
统一下单获取prepayId的接口地址:
微信文档地址:
把必填的参数处理下:
nonce_str:随机字符串,不长于32位。
out_trade_no:商户系统内部的订单号,32个字符内、可包含字母。
spbill_create_ip:用户端实际ip,16位,可写固定值。
notify_url:暂时写成固定的,http://www./wxpay/pay.php。
最麻烦的,sign:32位签名,参照。
以上这些算法我都会写成工具类,供大家参考。
签名算法:
附上整个支付代码:
PayActivity.java里关于支付的代码:
private IWXAPI
private String stringA;
private String noneS
private String out_trade_
private String prepayId;
private String body = &商品-积分充值&;
private static final String order_url = &https://api.mch./pay/unifiedorder&;//POST请求统一下单接口地址
private String notify_url = &http://www./wxpay/pay.php&;
private S//XML形式的post请求实体
private void payWeixin(int money) {
api = WXAPIFactory.createWXAPI(this, Conf.APP_ID);
body = new String(body.getBytes(), &utf-8&);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
noneString = Utils.createRandomString(true, 32);//32位随机字符串
out_trade_no = Utils.createRandomString(true, 20) + Utils.timeStamp();//30位内部随机订单号
ip = &123.123.123.123&;
stringA = &appid=& + Conf.APP_ID + &&body=& + body + &&mch_id=& + Conf.MCH_ID + &&nonce_str=& + noneString + &¬ify_url=& + notify_url + &&out_trade_no=& + out_trade_no + &&spbill_create_ip=& + ip + &&& +
&total_fee=& + money + &&trade_type=APP&;
String stringSignTemp = stringA + &&key=& + Conf.KEY;
sign = Utils.getMD5(stringSignTemp).toUpperCase(Locale.getDefault());
entity = &&xml&&appid&& + Conf.APP_ID + &&/appid&&mch_id&& + Conf.MCH_ID + &&/mch_id&&nonce_str&& + noneString + &&/nonce_str&&sign&& + sign +
&&/sign&&body&& + body + &&/body&&out_trade_no&& + out_trade_no + &&/out_trade_no&&total_fee&& + money +
&&/total_fee&&spbill_create_ip&& + ip + &&/spbill_create_ip&&notify_url&& + notify_url + &&/notify_url&&trade_type&APP&/trade_type&&/xml&&;
entity = new String(entity.getBytes(), &ISO8859-1&);//想要支持中文的Boby,那就要把XML转码为ISO8859-1即可
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
new Thread(new Runnable() {
public void run() {
byte[] buf = Utils.httpPost(order_url, entity);
Message message = new Message();
message.what = 0;
message.obj =
handler.sendMessage(message);
} catch (Exception e) {
Log.e(&info&, &异常:& + e.getMessage());
}).start();
Handler handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
byte[] buf = (byte[]) msg.
if (buf != null && buf.length & 0) {
String content = new String(buf);
OrderResult orderResult = Tools.parseXml(new ByteArrayInputStream(content.getBytes()));
if (!TextUtils.equals(orderResult.getReturnCode(), &SUCCESS&)) {
Toast.makeText(PayActivity.this, orderResult.getReturnMsg(), Toast.LENGTH_SHORT).show();
if (!TextUtils.equals(orderResult.getResultCode(), &SUCCESS&)) {
Toast.makeText(PayActivity.this, orderResult.getErrorDesc(), Toast.LENGTH_SHORT).show();
PayReq req = new PayReq();
req.appId = Conf.APP_ID;
req.partnerId = Conf.MCH_ID;
req.prepayId = orderResult.getPrepayId();
req.packageValue = &Sign=WXPay&;
req.nonceStr = noneS
String timeStamp = Utils.timeStamp();
req.timeStamp = timeS
req.sign = Utils.getMD5(&appid=& + Conf.APP_ID + &&noncestr=& + noneString + &&package=Sign=WXPay& +
&&partnerid=& + Conf.MCH_ID + &&prepayid=& + orderResult.getPrepayId() + &×tamp=& + timeStamp + &&key=& + Conf.KEY).toUpperCase(Locale.getDefault());
api.sendReq(req);
Log.d(&PAY_GET&, &服务器请求错误&);
Toast.makeText(PayActivity.this, &服务器请求错误&, Toast.LENGTH_SHORT).show();
Utils工具类代码:
public class Utils {
* 产生随机字符串
* @param numberFlag 是否允许有字母
* @param length
随机字符串长度
* @return 随机字符串
public static String createRandomString(boolean numberFlag, int length) {
String retStr = &&;
String strTable = numberFlag ? && : &abcdefghijkmnpqrstuvwxyz&;
int len = strTable.length();
boolean bDone =
retStr = &&;
int count = 0;
for (int i = 0; i & i++) {
double dblR = Math.random() *
int intR = (int) Math.floor(dblR);
char c = strTable.charAt(intR);
if (('0' &= c) && (c &= '9')) {
retStr += strTable.charAt(intR);
if (count &= 2) {
} while (bDone);
return retS
* 获取MD5加密后的字符串
* @param val 待加密字符串
* @return 加密后字符串
public static String getMD5(String val) {
byte[] m = new byte[0];
MessageDigest md5 = MessageDigest.getInstance(&MD5&);
md5.update(val.getBytes());
m = md5.digest();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return getString(m);
private static String getString(byte[] b) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i & b. i++) {
sb.append(b[i]);
return sb.toString();
* 获取10位长度的时间戳
* @return 10位时间戳
public static String timeStamp() {
String time = String.valueOf(System.currentTimeMillis());
return time.substring(0, 10);
public static byte[] httpGet(final String url) {
if (url == null || url.length() == 0) {
HttpClient httpClient = getNewHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse resp = httpClient.execute(httpGet);
if (resp.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
return EntityUtils.toByteArray(resp.getEntity());
} catch (Exception e) {
e.printStackTrace();
public static byte[] httpPost(String url, String entity) {
if (url == null || url.length() == 0) {
HttpClient httpClient = getNewHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new StringEntity(entity));
httpPost.setHeader(&Accept&, &application/json&);
httpPost.setHeader(&Content-type&, &application/json&);
HttpResponse resp = httpClient.execute(httpPost);
if (resp.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
return EntityUtils.toByteArray(resp.getEntity());
} catch (Exception e) {
e.printStackTrace();
private static HttpClient getNewHttpClient() {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);
SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme(&http&, PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme(&https&, sf, 443));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
return new DefaultHttpClient(ccm, params);
} catch (Exception e) {
return new DefaultHttpClient();
public static OrderResult parseXml(InputStream is) {
XmlPullParser parser = Xml.newPullParser();
OrderResult orderResult =
parser.setInput(is, &UTF-8&);
int type = parser.getEventType();
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:
case XmlPullParser.START_TAG:
if (parser.getName().equals(&xml&)) {
orderResult = new OrderResult();
} else if (parser.getName().equals(&return_code&)) {
orderResult.setReturnCode(parser.nextText());
} else if (parser.getName().equals(&return_msg&)) {
orderResult.setReturnMsg(parser.nextText());
} else if (parser.getName().equals(&result_code&)) {
orderResult.setResultCode(parser.nextText());
} else if (parser.getName().equals(&err_code_des&)) {
orderResult.setErrorDesc(parser.nextText());
} else if (parser.getName().equals(&prepay_id&)) {
orderResult.setPrepayId(parser.nextText());
} else if (parser.getName().equals(&sign&)) {
orderResult.setSign(parser.nextText());
case XmlPullParser.END_TAG:
type = parser.next();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return orderR
这样整个微信Android支付集成就完毕了。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:84753次
积分:1440
积分:1440
排名:千里之外
原创:44篇
转载:27篇
译文:12篇
评论:20条
(1)(1)(1)(6)(1)(5)(1)(2)(1)(7)(1)(1)(1)(8)(3)(4)(2)(2)(8)(13)(10)(5)

我要回帖

更多关于 静海微信群 的文章

 

随机推荐