java ios支付接口开发_微信支付接入(Android/IOS(swift)/Java后台)

创建 包名.wxapi.WXPayEntryActivity 文件,保证内容如下(WechartUtils下面会给出):

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import com.tencent.mm.opensdk.constants.ConstantsAPI;

import com.tencent.mm.opensdk.modelbase.BaseReq;

import com.tencent.mm.opensdk.modelbase.BaseResp;

import com.tencent.mm.opensdk.modelpay.PayResp;

import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {

public static final String APP_ID = "";//填入自己的appid

public static Back authBack;

public interface Back {

public void onFiled(String errorMsg);

public void onSuccess(String code, String state);

}

public static void registAuthBack(Back back) {

authBack = back;

}

public static void unregistAuthBack() {

authBack = null;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

WechartUtils.getInstance(this, APP_ID)

.handleIntent(this, this);

}

@Override

public void onReq(BaseReq baseReq) {

Log.e("-----1", "baseReq=" + baseReq);

}

@Override

public void onResp(BaseResp baseResp) {

switch (baseResp.getType()) {

case ConstantsAPI.COMMAND_PAY_BY_WX:

if (authBack != null) {

// 0:成功; -1:错误; -2:用户取消;

PayResp payResp = (PayResp) baseResp;

if (payResp.errCode == 0) {

authBack.onSuccess(String.valueOf(payResp.errCode), payResp.prepayId);

} else {

authBack.onFiled(baseResp.errStr);

}

}

break;

}

finish();

}

@Override

protected void onDestroy() {

super.onDestroy();

WechartUtils.getInstance(this, APP_ID)

.unregisterApp(this);

}

}

创建WechartUtils文件用于公共处理支付

import android.app.Activity;

import android.util.Log;

import com.tencent.mm.opensdk.modelmsg.SendAuth;

import com.tencent.mm.opensdk.modelpay.PayReq;

import com.tencent.mm.opensdk.openapi.IWXAPI;

import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;

import com.tencent.mm.opensdk.openapi.WXAPIFactory;

import java.util.concurrent.ConcurrentHashMap;

public class WechartUtils {

private static final WechartUtils wechartUtils = new WechartUtils();

private static final ConcurrentHashMap apis = new ConcurrentHashMap<>();

private WechartUtils() {

}

public static WechartUtils getInstance(Activity activity, String appId) {

if (activity != null

&& !apis.containsKey(activity.getLocalClassName())) {

IWXAPI api = WXAPIFactory.createWXAPI(activity, appId, true);

api.registerApp(appId);

apis.put(activity.getLocalClassName(), api);

}

return wechartUtils;

}

public WechartUtils handleIntent(Activity activity

, IWXAPIEventHandler handler) {

apis.get(activity.getLocalClassName())

.handleIntent(activity.getIntent(), handler);

return this;

}

public void pay(Activity activity, String appId, String partnerId, String packageName

, String prepayId, String nonceStr, String timeStamp, String sign) {

if (activity == null) {

return;

}

PayReq req = new PayReq();

req.appId = appId;//appid

req.partnerId = partnerId;//微信支付分配的商户号

req.packageValue = packageName;//暂填写固定值Sign=WXPay

req.prepayId = prepayId;//微信返回的支付交易会话ID

req.nonceStr = nonceStr;//随机字符串

req.timeStamp = timeStamp;//时间戳

req.sign = sign;//签名

IWXAPI api = apis.get(activity.getLocalClassName());

if (api != null) {

api.sendReq(req);

}

}

public void login(Activity activity) {

if (activity == null) {

return;

}

SendAuth.Req req = new SendAuth.Req();

req.scope = "snsapi_userinfo";

req.state = String.valueOf(System.currentTimeMillis());

IWXAPI api = apis.get(activity.getLocalClassName());

if (api != null) {

api.sendReq(req);

}

}

public void unregisterApp(Activity activity) {

if (activity == null) {

return;

}

IWXAPI api = apis.get(activity.getLocalClassName());

if (api != null) {

api.unregisterApp();

apis.remove(activity.getLocalClassName());

}

}

}

在AndroidManifest.xml文件内注册activity

android:name=".wxapi.WXPayEntryActivity"

android:exported="true"

android:label="@string/app_name" />

创建好工具文件后可以开始准备开发了,这里贴出主要使用伪代码。

public class DemoActivity extends Activity {

private WechartUtils wechartUtils;

@Override

protected void onCreate(Bundle savedInstanceState) {

//初始化工具

wechartUtils = WechartUtils.getInstance(this, WXPayEntryActivity.APP_ID);

//注册微信支付回调

WXPayEntryActivity.registAuthBack(new WXPayEntryActivity.Back() {

@Override

public void onFiled(String errorMsg) {

//支付失败回调

}

@Override

public void onSuccess(String code, String state) {

//失败成功回调

}

});

}

//开始微信支付方法

private void startWechatPay() {

//去服务器获取签名信息 具体返回的信息可查看后面的后台开发

WXResponse response = getWXResponse();

//调用wechartUtils的pay方法调起微信支付。

wechartUtils.pay(this, response.appid, response.partnerid

, response.packageName, response.prepayid, response.noncestr

, response.timestamp, response.sign);

}

@Override

protected void onDestroy() {

//取消注册

wechartUtils.unregisterApp(this);

WXPayEntryActivity.unregistAuthBack();

super.onDestroy();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值