Android 微信支付步骤
2016-06-28 11:38
423 查看
以前自己写过微信支付,今天让我用h5调用微信支付,结果还浪费了点时间,虽然时间不长。
1.导入jar包 。微信提供的jar包
2.写你的微信支付的代码,其实如果参数都有了就一段代码:
这里面orderModel 是你的后台给你的json数据。
3.解析gson的时间的时候要对时间进行特殊的处理:
4.写一个你的微信入口
你的应用程序包名.wxapi
里面的activity:
注意:你的清单文件里面的配置要explode 为true,不然你的程序微信不能给你回调
5.签名 ,包名等问题:
Android stadiO 调试的时候要设置自己的正规的签名,不然不行。
注意:
如果返回-1
可能是因为签名,可能是你的账单什么的不是最新的。所以人家给你返回-1. -1验证失败不只是因为你的签名。很多原因都可以-1
你在微信后台配置的那些参数,就是签名和包名,就是微信校验你可不可以吊起支付的关键。签名就是微信给你的一个工具,然后生成的。做微信支付这个第三方插件这个事情,我做了一件很挫的事情。就是没有在详细设计的时候,消除风险。
项目快做完了,又说什么做不了。好失败的一次。自己想想都不能原谅自己。能不能做不是想当然。还忽略了一个问题,就是你的appid,能不能吊起跟你不同的订单号。
好搓。好搓。当初想第三方支付怎么做的,开始的想法是,人家可以做,我肯定也可以做。后来发现,第三方只是封装了一下,实际上还是不能绕过微信。
注意;Android 最好也好注册微信。这样就可以避免微信的缓存问题。微信的缓存问题是指: 同样的包名,你这次调用微信用的是不对的keystore,如果你不清理缓存,下次调用微信的时候,它就不再去服务器查询你的keystore是不是对的,尽管你可能换的是对的。
微信注册也就是:
这样就可以避免每次用错了签名,每次都要清理缓存。
1.导入jar包 。微信提供的jar包
2.写你的微信支付的代码,其实如果参数都有了就一段代码:
public void requestWXPay(Context context,OrderModel orderModel) { IWXAPI api= WXAPIFactory.createWXAPI(context,orderModel.getAppid()); // boolean isPaySupported =api.getWXAppSupportAPI() >= Bui; // if (!isPaySupported) { // Toast.makeText(context, "你的手机微信不支持支付,请更新微信后重试", Toast.LENGTH_SHORT).show(); // } PayReq payReq=new PayReq(); payReq.appId=orderModel.getAppid(); payReq.partnerId=orderModel.getMchid(); payReq.prepayId=orderModel.getPrepayId(); payReq.nonceStr=orderModel.getNonceStr(); payReq.timeStamp=orderModel.getTimestamp(); payReq.packageValue="Sign=WXPay"; payReq.sign=orderModel.getSign(); api.registerApp(orderModel.getAppid()); api.sendReq(payReq); }
这里面orderModel 是你的后台给你的json数据。
3.解析gson的时间的时候要对时间进行特殊的处理:
Gson gson = new GsonBuilder() // 2013-09-14 16:45:29 .setDateFormat("yyyy-MM-dd HH:mm:ss") // .setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ") .create();
4.写一个你的微信入口
你的应用程序包名.wxapi
里面的activity:
注意:你的清单文件里面的配置要explode 为true,不然你的程序微信不能给你回调
<activity android:name=".wxapi.WXPayEntryActivity" android:exported="true" ></activity>
package com.chinaCEB.cebActivity.wxapi; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import com.chinaCEB.cebActivity.R; import com.tencent.mm.sdk.modelbase.BaseReq; import com.tencent.mm.sdk.modelbase.BaseResp; import com.tencent.mm.sdk.openapi.IWXAPI; import com.tencent.mm.sdk.openapi.IWXAPIEventHandler; import com.tencent.mm.sdk.openapi.WXAPIFactory; public class WXPayEntryActivity extends AppCompatActivity implements IWXAPIEventHandler { public static IWXAPI api; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_wxpay_entry); if (api==null) { api=WXAPIFactory.createWXAPI(this, "wx52f8500f7f6d98a7"); } api.handleIntent(getIntent(), this); } @Override protected void onNewIntent(Intent intent) { // TODO Auto-generated method stub super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq baseReq) { } @Override public void onResp(BaseResp baseResp) { int a=baseResp.errCode; } }
5.签名 ,包名等问题:
Android stadiO 调试的时候要设置自己的正规的签名,不然不行。
注意:
如果返回-1
可能是因为签名,可能是你的账单什么的不是最新的。所以人家给你返回-1. -1验证失败不只是因为你的签名。很多原因都可以-1
你在微信后台配置的那些参数,就是签名和包名,就是微信校验你可不可以吊起支付的关键。签名就是微信给你的一个工具,然后生成的。做微信支付这个第三方插件这个事情,我做了一件很挫的事情。就是没有在详细设计的时候,消除风险。
项目快做完了,又说什么做不了。好失败的一次。自己想想都不能原谅自己。能不能做不是想当然。还忽略了一个问题,就是你的appid,能不能吊起跟你不同的订单号。
好搓。好搓。当初想第三方支付怎么做的,开始的想法是,人家可以做,我肯定也可以做。后来发现,第三方只是封装了一下,实际上还是不能绕过微信。
注意;Android 最好也好注册微信。这样就可以避免微信的缓存问题。微信的缓存问题是指: 同样的包名,你这次调用微信用的是不对的keystore,如果你不清理缓存,下次调用微信的时候,它就不再去服务器查询你的keystore是不是对的,尽管你可能换的是对的。
微信注册也就是:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null); // 将该app注册到微信 msgApi.registerApp(Constants.APP_ID);
这样就可以避免每次用错了签名,每次都要清理缓存。
相关文章推荐
- 微信跨公众号支付
- 验证token、回复图文\文本、推送消息的实用微信类php代码
- 移动端html5图片上传方法【更好的兼容安卓IOS和微信】
- 微信或手机浏览器在线显示office文件(已测试ios、android)
- java微信企业号开发之通讯录
- java微信企业号开发之发送消息(文本、图片、语音)
- java微信企业号开发之开发模式的开启
- 运营人,为什么你的公众号不受欢迎?
- [置顶] 1、JAVA微信开发-微商城_O2O微门店SAAS系统开发
- 小技巧-解决"此图片来自微信公众平台,未经允许不可引用"
- Android仿微信二维码,源码要复制到项目里,不能导进去,会报错。
- 查找微信用户的信息
- wifidog添加URL白名单[放行微信]
- [置顶] 如何用php实现模拟微信抢红包
- 微信公众号开发可以参考
- 微信Token失败
- 微信支付流程
- 微信支付公的众号支付和扫码支付
- IOS模仿微信小视频开发心得
- 后台下载微信js sdk上传的图片