如何在Android App中接入微信支付

时间:2021-05-19

本篇简单介绍Android App中接入微信支付,包括App内支付和扫码支付。分享+支付 pofei

微信支付

wechat 官方接入文档

App内支付

源码下载

主要流程:

1.微信支付平台注册账号​

注:注册并申请成功以后,需要在API安全中设置你的API密钥 32个字符。建议使用 MD5加密 ,并且需要妥善的保存。因为无法查看。

2.生成预支付订单

3.生成签名参数

4.调起微信,完成支付

扫码支付

扫码支付使用的是微信统一下单API ,使用的是模式二,模式一 一直说URL参数错误,完全按照官方文档来的 令人费解。

统一下单API

统一下单API
在上面的基础上,修改

private String getProductArgs() { // TODO Auto-generated method stub StringBuffer xml=new StringBuffer(); try { String nonceStr=getNonceStr(); currentOrderId = getOutTrade(); xml.append("<xml>"); List<NameValuePair> packageParams=new LinkedList<NameValuePair>(); packageParams.add(new BasicNameValuePair("appid", WXConstants.APP_ID)); packageParams.add(new BasicNameValuePair("body", "APP pay test")); packageParams.add(new BasicNameValuePair("mch_id", WXConstants.MCH_ID)); packageParams.add(new BasicNameValuePair("nonce_str", nonceStr)); // 回调 URL 地址,这里是第三方 packageParams.add(new BasicNameValuePair("notify_url", "http:///pay/orderquery"; CheckAsyncTask checkAsyncTask = new CheckAsyncTask(); checkAsyncTask.execute(urlString);private class CheckAsyncTask extends AsyncTask<String,Void, Map<String, String>> { private ProgressDialog dialog; @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); dialog = ProgressDialog.show(PayActivity.this, "提示", "正在查看订单状态!"); } @Override protected Map<String, String> doInBackground(String... params) { // TODO Auto-generated method stub String url=String.format(params[0]); String entity=getProductCheckArgs(); byte[] buf= wxUtils.httpPost(url, entity); String content = new String(buf); Map<String,String> xml=decodeXml(content); // 可以通过 xml.get("trade_state"); 获取订单的状态 return xml; } @Override protected void onPostExecute(Map<String, String> result) { // TODO Auto-generated method stub super.onPostExecute(result); if (dialog != null) { dialog.dismiss(); } } }

以上就是如何在Android App中接入微信支付的详细内容,更多关于在Android App中接入微信支付的资料请关注其它相关文章!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章