调起支付接口
CashierRequest字段说明(需要封装,唤起收银台需传)
字段名 | 变量 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
appId |
appid | 是 | String | ||
mchId |
商户ID | 是 | String | ||
prepayId |
预收单ID | 是 | String | ||
nonceStr |
随机字符串 | 是 | String | ||
timestamp |
时间戳 | 是 | String | 10位时间戳 | |
signType |
签名方法 | 是 | String | ||
sign |
验签值 | 是 | String | ||
scheme |
区分不同支付结果页面回调 | 是 | String | AndroidMainfest.xml配置的支付结果回调页面Data (例子:allinone://open/payResult) | |
package | 需要接收支付回调页的APP 包名 | 是 | String | 例如:接收支付结果页的包名为(com.app.package) | |
redPacket |
是否是发红包 | 是 | String | "true"发红包 "false"支付 |
/**
* 预收单支付需要传递参数,即唤起收银台需要传的参数
*/
private CashierRequest getSignParms() {
CashierRequest request = new CashierRequest();
try {
if (mRespone != null) {
//AppId
request.setAppId(mRespone.getAppId());
//MchId
request.setMchId(mRespone.getMchId());
//随机串
request.setNonceStr(mRespone.getNonceStr());
//预收单ID
request.setPrepayId(mRespone.getPrepayId());
//加密算法
request.setSignType(mRespone.getSignType());
//时间戳 十位
String timeStr = String.valueOf(Util.getSecondTimestamp(new Date()));
request.setTimestamp(timeStr);
//请求参数加签,加签方式同预收单接口请求加签,此签名由服务端返回
request.setSign(getSign(request));
/** scheme规则: scheme://host/path的值.
* 注意必须要和AndroidMainfest.xml文件中配置的一样,否则成功跳转不到支付结果页面
*/
//当前程序包名
request.setmPackage("demo.shengpay.com.testaar.test");
request.setScheme("allinone://open/payResult");
//todo LX使用 setIsRedpacket("true") //LX发红包,不显示支付结果页
}
} catch (Exception e) {
e.printStackTrace();
}
return request;
}
PreOrderRespone字段说明(商户预收单数据返回)
字段名 | 变量 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
returnCode | 返回码 | 否 | String | ||
returnMsg | 返回信息 | 否 | String | ||
resultCode | 结果码 | 否 | String | ||
errorCode | 错误码 | 否 | String | ||
errorCodeDes | 错误码描述 | 否 | String | ||
appId | appId | 是 | String | ||
mchId | 商户id | 是 | String | ||
prepayId | 预收单id | 是 | String | ||
tradeType | 交易类型 | 是 | String | APP | |
nonceStr | 随机字符串 | 是 | String | ||
signType | 签名方法 | 是 | String | RSA | |
sign | 验签 | 是 | String | 封装方法参考:唤起收银台参数封装代码示例 |
唤起收银台参数封装代码示例
/**
* mRespone 商户预收单返回参数。定义为PreOrderRespone
* request 预收单支付需要参数,即唤起收银台需要参数。定义为CashierRequest对象
*/
WalletApi.getInstance().init(this, params);
PayTool.getInstance().startPay(this, mRespone, request);