您的位置:首页 > 移动开发 > 微信开发

关于集成第三方微信支付,支付宝,高德地图等排坑

2018-01-11 14:25 246 查看
高德地图定位:

大家仔细检查key 千万不要搞错了

@OnPermissionDenied(Manifest.permission.ACCESS_FINE_LOCATION)
void showDeniedForLocation() {
ToastUtils.showToast(mContext, getString(R.string.permission_location_denied));
initLocation();
}

@OnNeverAskAgain(Manifest.permission.ACCESS_FINE_LOCATION)
void onCameraNeverAskAgain() {
ToastUtils.showToast(mContext, getString(R.string.permission_location_never_askagain));
}

还有就是定位功能如果是公司内网的话,会获取不到定位,原因不知,切换成数据就可以了。

支付宝开发,值得注意的问题。

签名逻辑需要放在服务端,切勿将私钥泄露在代码中!


private Handler mHandler=new Handler()
{
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SDK_PAY_FLAG: {
PayResult payResult = new PayResult((String) msg.obj);
/**
* 同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc.open.alipay.com/doc2/
* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&
* docType=1) 建议商户依赖异步通知
*/
String resultInfo = payResult.getResult();// 同步返回需要验证的信息

String resultStatus = payResult.getResultStatus();
// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
if (TextUtils.equals(resultStatus, "9000")) {
Toast.makeText(OrderDetaileActivity.this, "支付成功",
Toast.LENGTH_SHORT).show();
orderstatus="1";

} else {
// 判断resultStatus 为非"9000"则代表可能支付失败
// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(OrderDetaileActivity.this, "支付结果确认中",
Toast.LENGTH_SHORT).show();
} else {
// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
Toast.makeText(OrderDetaileActivity.this,
"支付失败" + resultStatus, Toast.LENGTH_SHORT)
.show();
orderstatus="2";
}
}
getalipaystatus(orderstatus);
break;
}
}
};
};
/**
* 支付宝支付异步任务
*
* @author Simon
*/
private class AliPayThread extends Thread {
@Override
public void run() {
String result = AlipayAPI.pay(OrderDetaileActivity.this,paykey);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
}


一般微信开发,都是有很多坑,讲讲我遇到的. 

1,WXPayEntryActivity里你可以打log查看是否被吊起,没吊起的话看看你的路径,必须是–包名.wxapi.WXPayEntryActivity, 看看manifest里的属性配置,住activity的intentfilter配置有没有问题 
2,在微信没登录时能弹出威信的登录界面,登录后返回-1, 说明你能拉起微信了,但是参数有错误,看看prepay_id 基本格式是这个样子的 WX1217752501201407033233368018 你的应该也差不多,中间掺杂这英文. 
3.微信开放平台的签名应该是小写.之前有文章说是大写,不行. 
4.签名有问题了.一定是打包的时候不对,不能使用debug模式来调试支付功能.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息