刚刚参加实习,很多东西都不懂,微信支付是最近才接触到的,开始去看官方文档的时候,一大堆文字东西说明看的有点蒙圈,好像很难的样子,但是随着慢慢的熟悉,微信支付其实也就那样(事实上我却做了两天,渣渣...),然后这个做了之后我觉得有必要把自己遇到的坑给记一下,再次做到微信支付的开发任务的时候便能够游刃有余了。
微信支付交互过程(这里我照抄了官方文档,原文在这里):
步骤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】
我踩的大坑
第一坑:调起微信支付接口没有反应,但是boolean result = api.sendReq(req);却返回了true
原因:在AndroidManifest.xml文件中没有注册WXPayEntryActivity,因此我们只要在将其在AndroidManifest.xml文件进行注册就可以了,如下示例
<activity android:name=".wxapi.WXPayEntryActivity" android:exported="true" android:launchMode="singleTop"/>