Android客户端集成微信支付

来源:互联网 发布:铲形门齿 知乎 编辑:程序博客网 时间:2024/06/16 04:51

##集成流程

1、导入微信支付需要的jar包libammsdk.jar

2、服务器端将需要的信息配置齐全

3、在项目中创建爱你weapi文件夹,在该文件夹下创建WXPayWntryActivity,需要注意:

   WXPayWntryActivity必须在com.xxx.app.wxapi文件夹下

   在AndroidMainfest.xml下添加WXPayWntryActivity注册,不要自动生成

<!--这里如果自动生成,安装则会出现两个Logo图标--><activity    android:name="com.XXX.app.wxapi.WXPayEntryActivity"    android:exported="true"    android:launchMode="singleTop" />
WXPayWntryActivity的具体代码如下:
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {    private IWXAPI api;    private PayUtil payUtl;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_wxpay_entry);        // 通过WXAPIFactory工厂,获取IWXAPI的实例        api = WXAPIFactory.createWXAPI(this, AppConstants.WX_APPID);//AppConstants.WX_APPID是你自己APP申请的ID        api.handleIntent(getIntent(), this);        payUtl = PayUtil.getInstance();    }    @Override    protected void onNewIntent(Intent intent) {        super.onNewIntent(intent);        setIntent(intent);        api.handleIntent(intent, this);    }    @Override    public void onReq(BaseReq req) {    }    @Override    public void onResp(BaseResp baseResp) {        //这里是对结果的回调        if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {            Log.d("info", "onPayFinish,errCode=" + baseResp.errCode);            if (baseResp.errCode == 0) {       
Toast.makeText(this,"支付成功",Toast.LENGTH_LONG).show();
this.finish(); } else if (baseResp.errCode == -1) {
Toast.makeText(this,"配置错误",Toast.LENGTH_LONG).show();
this.finish(); } else if (baseResp.errCode == -2) {
Toast.makeText(this,"用户取消",Toast.LENGTH_LONG).show();
this.finish(); } } else {
Toast.makeText(this,baseResp.errStr,Toast.LENGTH_LONG).show();
} }}

4、注册微信组件,并实例化微信API

// 微信相关APIpublic static IWXAPI wxApi;

wxApi = WXAPIFactory.createWXAPI(this, AppConstants.WX_APPID, true);
wxApi.registerApp(AppConstants.WX_APPID);
5、通过服务器提供的数据调用微信支付
PayReq req = new PayReq();req.appId = JsonUtil.getString(jsonArray, "appid");// 微信开放平台审核通过的应用APPID(服务器提供,跟本地存储的APPID是一个)req.partnerId = JsonUtil.getString(jsonArray, "partnerid");// 微信支付分配的商户号(可以服务器提供)req.prepayId = JsonUtil.getString(jsonArray, "prepayid");// 预支付订单号,服务器提供(服务器调用统一下单接口获取)req.nonceStr = JsonUtil.getString(jsonArray, "noncestr");// 随机字符串,不长于32位,服务器提供req.timeStamp = JsonUtil.getString(jsonArray, "timestamp");// 时间戳,服务器提供req.packageValue = JsonUtil.getString(jsonArray, "package");// 固定值Sign=WXPay,可以直接写死,服务器返回的也是这个固定值req.sign = JsonUtil.getString(jsonArray, "sign");// 签名,服务器提供,他会根据:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=4_3指导得到这个wxApi.sendReq(req);//wxApi为注册微信组件的api实例
6、做完以上操作就已经完成微信支付的集成了
注意:运行时使用的签名要与微信开放平台注册时的签名保持一致!!!


原创粉丝点击