android studio接入微信支付
微信官网申请好appid
1.将微信的libs下的jar拷贝到自己项目中
添加为依赖库
2.在Androidmanifest.xml中添加
3.再包名com.sinyuee.kingwar.ab.wxap下添加一个WXPayEntryActivity类:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.ftaro.adapter.FtPay;
import com.ftaro.adapter.Manager;
import com.ftaro.adapter.PublicArgs;
import com.tencent.mm.sdk.constants.ConstantsAPI;
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 Activity implements IWXAPIEventHandler {
private IWXAPI api;
@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);api = WXAPIFactory.createWXAPI(this, PublicArgs.WX_APP_ID);api.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {// TODO Auto-generated method stub}@Overridepublic void onResp(BaseResp resp) {Log.d("coyc", "onPayFinish, errCode = " + resp.errCode);int pid=((FtPay)(Manager.getInstance().ftPay)).pid;if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {if (resp.errCode == 0) {
// Toast.makeText(WXPayEntryActivity.this, “支付成功”, Toast.LENGTH_LONG).show();
Manager.notifyPay(1,pid,"");
}
else if (resp.errCode == -2) { // 用户取消
// Toast.makeText(WXPayEntryActivity.this, “用户取消”, Toast.LENGTH_LONG).show();
Manager.notifyPay(-2,pid,"");
}else{
// Toast.makeText(WXPayEntryActivity.this, “支付失败”, Toast.LENGTH_LONG).show();
Manager.notifyPay(-1,pid,"");
}}finish();}
}
4.调用支付签名都需要服务端做:
//微信支付
public void callWxPay() {
if (api.isWXAppInstalled() && !api.isWXAppSupportAPI()) { //判断微信版本是否支持支付
Toast.makeText(activity, “请您先安装微信客户端!”,Toast.LENGTH_SHORT).show();
return;
}
connectWetChatWeb();
}
private void connectWetChatWeb() {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
params.add(new BasicNameValuePair(“method”, “OpenPay”));
params.add(new BasicNameValuePair(“key”, “RPtkT2UPCfsw7PiU9DpS”));
params.add(new BasicNameValuePair(“payType”, payType));//payType:1支付宝 0微信
params.add(new BasicNameValuePair(“orderId”,Manager.getInstance().js_order));//Manager.getInstance().js_order
String result = post(“自己服务端地址”);
Log.d(“gmf weixinresult:”,result);
String orderInfo=result;
try {
JSONObject data = new JSONObject(orderInfo.toString());
Log.d(“data123:”,data.toString());
String appId = data.getString(“appid”);
String partnerId = data.getString(“partnerid”);
String prepayId = data.getString(“prepayid”);
String packageValue = data.getString(“package”);
String nonceStr = data.getString(“noncestr”);
String timeStamp = data.getString(“timestamp”);
String sign = data.getString(“sign”);
Log.d("gmfappId",appId); Log.d("gmfpartnerId",partnerId); Log.d("gmfprepayId",prepayId); Log.d("gmfpackageValue",packageValue); Log.d("gmfnonceStr",nonceStr); Log.d("gmftimeStamp",timeStamp); Log.d("gmfsign",sign); PayReq req = new PayReq(); req.appId = appId; req.partnerId = partnerId; req.prepayId = prepayId; req.packageValue = packageValue; req.nonceStr = nonceStr; req.timeStamp = timeStamp; req.sign = sign; api.sendReq(req); return; } catch (JSONException e) { e.printStackTrace(); } } }, 0);}
更多相关文章
- Nginx系列教程(二)| 一文带你读懂Nginx的正向与反向代理
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- GestureDetector.OnGestureListener 详解
- 【Android】进程通信IPC——Messenger
- Ubuntu 下编译Android(安卓)源代码
- 备忘---Android(安卓)Permission
- 如何使用好android的可访问性服务(Accessibility Services)
- Notification入门
- Android(安卓)Permission List