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

android做支付宝移动支付时遇到跳转失败问题

2016-02-29 14:05 288 查看
最近在做android端调用支付宝支付的模块。从官网下载了支付宝的相关DEMO,按照文档修改了下面三个字段填上正确的参数。

// 商户PID
public static final String PARTNER = "";
// 商户收款账号
public static final String SELLER = "";
// 商户私钥,pkcs8格式

public static final String RSA_PRIVATE ="";

另外在公司支付宝帐号端配置了商户公钥, 公钥和私钥的获取方式官网都有。然后运行程序,点击支付按钮,但是这时候就出问题了,一直报一个空指针的错误,下面这行代码报错,但是我们明明没有改过别的地方啊

/**
* 仅需对sign 做URL编码
*/
sign = URLEncoder.encode(sign, "UTF-8");

,然后就是调试了下程序,发现定位到下面的代码

KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);

这就很奇怪了,后来经过百度看别人的帖子才发现原来这里是有问题的,如下(原因下面的代码里面注释写了)

//在Android4.1.0之前的版本,使用下面的语句,DEMO自带
//KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
//在Android4.1.0之后的版本,使用下面的语句,自己填写
KeyFactory keyf = KeyFactory.getInstance(ALGORITHM, "BC");

所以我们只要把原来的那行代码注释了,改成下面的就可以了

KeyFactory keyf = KeyFactory.getInstance(ALGORITHM, "BC");

要是还报错,就仔细检查下商户私钥的串,确保字符一个不差。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: