本SDK是根据BeeCloud Rest API开发的Java SDK,适用于JRE 1.6及以上平台。可以作为调用BeeCloud Rest API的示例或者直接用于生产。
1.从github下载带依赖的jar文件,然后导入到自己的工程依赖包中。
2.若是工程采用maven进行依赖配置,可在自己工程的pom.xml文件里加入以下配置
<dependency>
<groupId>cn.beecloud</groupId>
<artifactId>beecloud-java-sdk</artifactId>
<version>2.0.0</version>
</dependency>工程名以及版本号需要保持更新。(更新可参考本项目的pom.xml,文件最顶端)
三个步骤,2分钟轻松搞定:
BeeCloud.registerApp(appid, appsecret);
具体使用请参考本目录下的demo项目
调用以下接口发起支付并将得到BCPayResult对象,BCPayResult对象包含两种状态,正确状态和错误状态,正确状态的BCPayResult的type类型字符串为OK, 对应值为0。错误状态调用getErrMsg()方法返回错误信息。调用getErrDetail()方法返回具体错误信息,开发者可任意显示,打印,或者进行日志。
正确状态调用getCodeUrl()方法返回二维码字符串,返回code url的格式为:weixin://wxpay/bizpayurl?sr=XXXXX。 请商户调用第三方库将返回的code url生成二维码图片。 该模式链接较短,生成的二维码打印到结账小票上的识别率较高。
bcPayResult = BCPay.startBCPay(PAY_CHANNEL.WX_NATIVE, 1, billNo, "买水", null, null, null , null, null);
if (bcPayResult.getType().ordinal() == 0) {
System.out.println(bcPayResult.getCodeUrl());
} else {
//handle the error message as you wish!
out.println(bcPayResult.getErrMsg());
out.println(bcPayResult.getErrDetail());
}正确状态调用getWxJSAPIMap()方法返回jsapi map对象。
bcPayResult = BCPay.startBCPay(PAY_CHANNEL.WX_JSAPI, 1, billNo, "买水", null, null, "openid000000001", null, null);
if (bcPayResult.getType().ordinal() == 0) {
System.out.println(bcPayResult.getWxJSAPIMap());
} else {
//handle the error message as you wish!
out.println(bcPayResult.getErrMsg());
out.println(bcPayResult.getErrDetail());
}正确状态调用getHtml()方法,如将html输出至页面,即可开始银联网页支付。
bcPayResult = BCPay.startBCPay(PAY_CHANNEL.UN_WEB, 1, billNo, "买水", null, returnUrl, null, null, null);
if (bcPayResult.getType().ordinal() == 0) {
out.println(bcPayResult.getHtml());
} else {
//handle the error message as you wish!
out.println(bcPayResult.getErrMsg());
out.println(bcPayResult.getErrDetail());
}正确状态调用getHtml()方法或者getUrl()方法,getHtml()方法返回html,如将html输出至页面,即可开始支付宝网页支付。getUrl()方法返回支付宝跳转url,推荐使用html。
bcPayResult = BCPay.startBCPay(PAY_CHANNEL.ALI_WEB, 1, billNo, "农夫山泉", null, "http://beecloud.cn", null, null, null);
if (bcPayResult.getType().ordinal() == 0) {
out.println(bcPayResult.getHtml());
out.println(bcPayResult.getUrl());
} else {
//handle the error message as you wish!
out.println(bcPayResult.getErrMsg());
out.println(bcPayResult.getErrDetail());
}正确状态调用getHtml()方法或者getUrl()方法,getHtml()方法返回html,如将html输出至页面,即可开始扫描支付。getUrl()方法返回支付宝内嵌二维码地址。需使用<iframe>加载此url
bcPayResult = BCPay.startBCPay(PAY_CHANNEL.ALI_QRCODE, 1, billNo, "农夫山泉", null, "http://beecloud.cn", null, null, null);
if (bcPayResult.getType().ordinal() == 0) {
//使用html示例
out.println(bcPayResult.getHtml());
//使用url示例
out.println("<html><iframe width='420' height='330' name='url' frameborder='0' src='" + bcPayResult.getUrl() + "'></iframe</html>");
} else {
//handle the error message as you wish!
out.println(bcPayResult.getErrMsg());
out.println(bcPayResult.getErrDetail());
}正确状态调用getHtml()方法或者getUrl()方法,getHtml()方法返回html,如将html输出至页面,即可开始支付。getUrl()方法返回支付宝跳转url,推荐使用html。
bcPayResult = BCPay.startBCPay(PAY_CHANNEL.ALI_WAP, 1, billNo, "买水", null, null, null, null, null);
if (bcPayResult.getType().ordinal() == 0) {
out.println(bcPayResult.getHtml());
}
else {
//handle the error message as you wish!
out.println(bcPayResult.getErrMsg());
out.println(bcPayResult.getErrDetail());
}代码中的各个参数含义如下:
| key | 说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| channel | 渠道类型, 根据不同场景选择不同的支付方式,包含: WX_NATIVE 微信公众号二维码支付 WX_JSAPI 微信公众号支付 ALI_WEB 支付宝网页支付 ALI_QRCODE 支付宝内嵌二维码支付 ALI_WAP 支付宝移动网页支付 支付宝内嵌二维码支付 UN_WEB 银联网页支付, (必填) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| totalFee | 订单总金额, 只能为整数,单位为分,例如 1,(必填) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| billNo | 商户订单号, 32个字符内,数字和/或字母组合,确保在商户系统中唯一, 例如(201506101035040000001),(必填) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title | 订单标题, 32个字节内,最长支持16个汉字,(必填) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| optional | 附加数据, 用户自定义的参数,将会在webhook通知中原样返回,该字段主要用于商户携带订单的自定义数据,(选填) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| returnUrl | 同步返回页面 , 支付渠道处理完请求后,当前页面自动跳转到商户网站里指定页面的http路径。当 channel 参数为 ALI_WEB 或 ALI_QRCODE 或 UN_WEB时为必填,(选填) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| openId | 微信公众号支付(WX_JSAPI)必填,(选填) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| showUrl | 商品展示地址,需以 代码中的各个参数含义如下:
调用以下接口发起退款并将得到BCPayResult对象,BCPayResult对象包含两种状态,正确状态和错误状态,正确状态的BCPayResult的type类型字符串为OK, 对应值为0。错误状态调用getErrMsg()方法返回错误信息。调用getErrDetail()方法返回具体错误信息,开发者可任意显示,打印,或者进行日志。。 正确状态调用getSucessMsg()方法获知微信退款调用成功。 BCPayResult result = BCPay.startBCRefund(PAY_CHANNEL.WX, "201507170000", billNo, 2, null);;
if (bcPayResult.getType().ordinal() == 0) {
//返回"退款成功!"
out.println(bcPayResult.getSucessMsg());
} else {
//handle the error message as you wish!
out.println(bcPayResult.getResult());
out.println(bcPayResult.getErrDetail());
}正确状态调用getUrl()方法返回url并跳转输入邮箱地址和密码完成退款。 BCPayResult result = BCPay.startBCRefund(PAY_CHANNEL.ALI, "201507170000", billNo, 1, null);;
if (bcPayResult.getType().ordinal() == 0) {
response.redirect(bcPayResult.getUrl());
} else {
//handle the error message as you wish!
out.println(bcPayResult.getResult());
out.println(bcPayResult.getErrDetail());
}正确状态调用getSucessMsg()方法获知银联退款的返回结果。 BCPayResult result = BCPay.startBCRefund(PAY_CHANNEL.UN, "201507170000", billNo, 1, null);;
if (bcPayResult.getType().ordinal() == 0) {
response.redirect(bcPayResult.getSucessMsg());
} else {
//handle the error message as you wish!
out.println(bcPayResult.getResult());
out.println(bcPayResult.getErrDetail());
}代码中的各个参数含义如下:
调用以下接口发起订单查询并将得到BCQueryResult对象,BCQueryResult对象包含两种状态,正确状态和错误状态,正确状态的BCPayResult的type类型字符串为OK, 对应值为0。错误状态调用getErrMsg()方法返回错误信息。调用getErrDetail()方法返回具体错误信息,开发者可任意显示,打印,或者进行日志。调用参数中,channel参数包含以下取值: WX、WX_NATIVE、WX_JSAPI、ALI、ALI_APP、ALI_WEB、ALI_QRCODE、ALI_WAP、UN、UN_APP、UN_WEB。其中WX、ALI、UN是其他子渠道的父渠道,返回的是各种子渠道返回结果的并集。 正确状态调用bcQueryResult.getBcOrders()方法返回订单(BCOrderBean)的list集合。调用者可任意遍历,显示这个订单的list对象。 bcQueryResult = BCPay.startQueryBill(channel, null, null, null, null, null);
if (bcQueryResult.getType().ordinal() == 0) {
//handle the order list as you wish.
pageContext.setAttribute("bills", bcQueryResult.getBcOrders());
} else {
out..getHtml());
}
else {
//handle the error message as you wish!
out.println(bcPayResult.getErrMsg());
out.println(bcPayResult.getErrDetail());
}代码中的各个参数含义如下:
|