Android.微信支付及那些坑

1、开通微信开发者账号

2、创建应用

3、查看应用

4、下载官方Demo

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

注:这里不得不吐槽一下,这是什么demo ,一堆报错!!!

5、正式接入

商户系统和微信支付系统主要交互说明:

步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。

步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。

步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay

步骤4:商户APP调起微信支付。api参见本章节【app端开发步骤说明】

步骤5:商户后台接收支付通知。api参见【支付结果通知API】

步骤6:商户后台查询支付结果。,api参见【查询订单API】

7、接入Api

注:这里如果结合后端开发。统一下单 和 支付结果通用通知 由后端实现。App只需要“”调起支付”就可以了。

8、Android接入

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

(1)、注册APPID

privateIWXAPIWXApi;

WXApi= WXAPIFactory.createWXAPI(this, MyApplication.instance().appConfig.wxapi_key);

WXApi.registerApp(MyApplication.instance().appConfig.wxapi_key);

(2)、判断是否安装微信

if(WXApi.getWXAppSupportAPI() < Build.PAY_SUPPORTED_SDK_INT) {

Utils.toastText(ActivityPay.this,"您未安装最新版本微信,不支持微信支付,请安装或升级微信版本");

}

(3)、调起支付

PayReq req =newPayReq();

req.appId= map.get("appid");

req.partnerId= map.get("partnerid");

req.prepayId= map.get("prepayid");

req.nonceStr= map.get("noncestr");

req.timeStamp= map.get("timestamp");

req.packageValue= map.get("package");

req.sign= map.get("sign");

req.extData="app data";

WXApi.sendReq(req);

(4)、支付结果回调

注:这里最坑的,需要在你的包名例如:com.Sample.demo 下建 wxapi 实现 WXPayEntryActivity 如下:

不然没法回调。

更坑的是,这里 回调 errCode == 0 ,并不是真正的成功。应以服务器端的接收的支付通知或查询API返回的结果为准

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {

private static final String TAG = "WXPayEntryActivity";

private IWXAPI api;

private Context context;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.account_pay_result);

context = this;

api = WXAPIFactory.createWXAPI(this, "wx_key");

api.handleIntent(getIntent(), this);

}

@Override

public void onReq(BaseReq req) {

}

@Override

public void onResp(final BaseResp resp) {

if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {

Intent intent = new Intent(WXPayEntryActivity.this, ActivityPay.class);

intent.putExtra("payState", JsonParseUtil.toJson(resp));

startActivity(intent);

finish();

}

}

}

5、常看签名

https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk

6、常规报错

(1)调不起微信支付,通常通过以下几个步骤检查下

--检查 微信开发平台是否开通微信支付功能?

--检查 App端 的APPID 与服务端下单时的APPID 是否一致?

--检查 App的包名是否与微信开发平台设置的一致?

--检查 App的签名是否与微信开发平台设置的一致?

注:

--如果还是不行,请清除微信缓存重试

--微信最坑的,就是一切都对,没有任何的报错,那就得微信的工程师了

(2)微信支付成功,没有回调

--检查app工程下 上面的 第4 点

作者:小玄子_fhx

链接:http://www.jianshu.com/p/5226cc6b4962

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 1、开通微信开发者账号 2、创建应用 3、查看应用 4、下载官方Demo https://pay.weixin.q...
    小玄子_fhx阅读 8,318评论 11 5
  • 1、开通微信开发者账号 2、创建应用 3、查看应用 4、下载官方Demo https://pay.weixin.q...
    LucasAdam阅读 812评论 0 0
  • 由于公司运营需要,Android客户端要增加微信支付。在看了几遍官方文档之后,加上之前有集成微信分享的经验,所以很...
    Kerry202阅读 1,451评论 2 8
  • UIImageView添加圆角最直接的方法就是使用如下属性设置: imgView.layer.cornerRadi...
    dicesc阅读 1,242评论 0 0
  • 移动支付已经成为大家日常生活中一种重要的支付手段,市面上也有越来越多的手机应用支持各种第三方的移动支付。当然,有的...
    SYOL阅读 4,125评论 0 5