蜜蜂市场支付集成帮助文档.docx

上传人:创****公 文档编号:1864172 上传时间:2019-10-29 格式:DOCX 页数:13 大小:471.40KB
返回 下载 相关 举报
蜜蜂市场支付集成帮助文档.docx_第1页
第1页 / 共13页
蜜蜂市场支付集成帮助文档.docx_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《蜜蜂市场支付集成帮助文档.docx》由会员分享,可在线阅读,更多相关《蜜蜂市场支付集成帮助文档.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、蜜蜂市场支付集成帮助文档蜜蜂市场支付集成帮助文档编写人 :毕伟平 版本:1.3 正式版 时间:2017-08-29一、集成准备一、集成准备1.1 注册账号,获取注册账号,获取 KEY 信息信息 访问蜜蜂市场开发者平台(http:/dev.beemarket.tv/),注册开发者帐号后,进入管理中心。进入管理中心后,选择左侧支付配置选项,点击右侧的【添加 SDK 应用】按钮,会弹出创 建 SDK 应用的对话框,填写应用信息保存后,系统会生成对应的 APP_KEY 和 BEE_KEY。通过点击支付配置页面【配置】按钮,可以查看 APP_KEY 和 BEE_KEY,和填写回调接口。BEE_KEY 和

2、 APP_KEY 的作用:用来确定集成了我们支付的应用和开发者(用户)信息,为资 金对账提供依据。1.2 下载支付下载支付 sdk 请登录开发者平台,或从管理中心选择左侧的【SDK 下载】按钮,选择下载最新版 SDK 集 成到应用中。1.3 配置配置 回调接口回调接口 配置方法:进入管理中心后,选择【支付配置】- 选择应用 -【配置】,在弹出框中回调接口处填写回调接口。 回调接口:第三方提供的一个接口,我们蜜蜂支付服务器在支付完成后会将支付相关的信 息发送到这个接口,以便告知第三方应用支付成功与否。1.4 导入导入 SDK 将下载包中的 libs 文件夹合并到本地工程 libs 子目录下;在

3、Eclipse 中右键工程根目录,选 择 Properties - Java Build Path - Libraries,然后点击 Add External JARs. 选择指向 jar 的路 径,点击 OK,即导入成功(ADT17 及以上不需要手动导入)。二、基本功能集成二、基本功能集成2.1 支付流程图支付流程图见单独流程图文件集成了蜜蜂支付的第 三方App蜜蜂支付SDK蜜蜂服务器支付渠道服务器 (微信,支付宝)发起支付请求发送支付必填信息申请支付返回支付通道获取支付二维码 展示给用户根据支付结果执行操作通知支付结果返回支付结果将支付结果推送给第三方app123456789,与第7步同时

4、执行2.2 Manifest 配置配置 2.2.12.2.1 必要权限的添加必要权限的添加2.2.2 KEY 值的填写值的填写 将 Manifest中的【你的 Bee_KEY】替换为您的应用 BEE_KEY,APP_KEY 也进行同样操作;标签在 application 下,其他部分不需改动。配置文件如下所示。 BEE_KEY、APP_KEY 即添加支付配置时,系统给改应用生成的 BEE_KEY 和 APP_KEY。2.32.3 调用页面调用页面 拉起支付 Activity注:所有参数均为注:所有参数均为 StringString 类型类型 private String pid; privat

5、e String pname; private String price; private String pdesc; private String pchannel; private String porder; private String pextra;Intent intent = new Intent(); intent.setClass(MainActivity.this, BeePayActivity.class);intent.putExtra(HttpConstants.PID,pid); /商品id,最大长度为40个字符,必填 intent.putExtra(HttpCon

6、stants.PNAME,pname); /商品名称,最大长度为60个 字符,必填 intent.putExtra(HttpConstants.PPRICE,price); /商品价格,必填 intent.putExtra(HttpConstants.PDESC,pdesc); /商品描述,最大长度为60个 字符,必填 intent.putExtra(HttpConstants.PCHANNEL,pchannel); /渠道号,必填 intent.putExtra(HttpConstants.PORDER,porder);/order为订单号数字,可选 intent.putExtra(Http

7、Constants.PEXTRA,pextra);/extra为备用字段,可选 startActivityForResult(intent, 0);2.4 获取返回值获取返回值 Override protected void onActivityResult(int requestCode, int resultCode, Intent data) super.onActivityResult(requestCode, resultCode, data);if(resultCode=RESULT_OK) Toast.makeText(this, “您的商品已经购买成功.“, 1).show()

8、; if(resultCode=BeePayActivity.PAY_RESULT_UNKOWN) Toast.makeText(this, “未知的状态码.“, 1).show(); if(resultCode=BeePayActivity.PAY_RESULT_CLOSE) Toast.makeText(this, “订单已经关闭.“, 1).show(); if(resultCode=BeePayActivity.PAY_RESULT_CANCEL) Toast.makeText(this, “订单已经创建,但是用户关闭了支付界面, 你需要自己去服务器核对订单是否支付.“, 1).sho

9、w(); resultCode 的值说明 RESULT_OK:成功购买,客户端受到服务器传来的轮询结果 BeePayActivity.PAY_RESULT_UNKOWN:未知的结果,需 app 自己取核对结果 BeePayActivity.PAY_RESULT_CLOSE:订单关闭了BeePayActivity.PAY_RESULT_CANCEL:订单处于轮询状态,但是用户关闭了支付界 面,无法收到轮询消息,需自己去查询服务器核对支付结果2.5 回调接口回调接口 要求接入方提供回调地址,SDK 服务端即时推送支付状态至接入方,接入方根据 SDK 服务 端的支付状态以及 SDK 客户端的支付状态

10、进行二次确认判断,可在该应用的配置页面填写 回调接口 。 2.5.1 回调接口参数说明回调接口参数说明mtime支付时间 start支付状态 Total_fee支付金额 Out_trade_no订单号 User_no商户订单号 Pay_user支付标识 Pay_type支付方式 extra备用字段 pid商品 ID2.5.2 支付状态查询接口支付状态查询接口 为了防止漏单情况(接入方回调接口调用失败),支付提供支付状态查询接口! 接口链接:http:/dev.beemarket.tv /openApi/queryOrder.action 请求参数列表:名称类型备注orderNo/porders

11、tringSDK 订单号或用户订单号,二选一appKeystring应用秘钥signstring签名数据orderNo 是 SDK 支付平台这边的订单号;porder 是商户订单号;两者二选一为参数传递给 接口;sign 是上面三个参数参与计算的 md5 值,请参考以下 demo:sign 计算方法及生成订单查询 url: String appKey=“07000f3366695a65“;/商户的 appKey String beeKey=“MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkcQG90QOXUKon/VmhM/o31Smy zGb4xm3z5Vf9

12、4itGZNRNJ6f6MDbnpBeA2GJYAaNtcCxnn5ltb2Mz23KCil+mSm0WbMhNeGvxSlhO onqA+WGbpKmI1AaXWgsMpZpAFV5VAZY86ledsazK7z80s6mqIlbw8M8DDQC8Za9/hnDlmwIDAQAB“;/商户的 beeKey String orderNo=“s20170828134546729002“;/商户需要查询 SDK 支付平台订单号 /String porder=”xxxx”;/商户订单号 Map dataMap=new HashMap(); dataMap.put(“appKey“,appKey);

13、/dataMap.put(“porder”,porder); dataMap.put(“orderNo“,orderNo); String sign= SdkSignUtil.generateSign(dataMap,beeKey); String url=“http:/dev.beemarket.tv/openApi/queryOrder.action?“+SdkSignUtil.createUrlQueryString(d ataMap)+“log.info(“查询订单 URL:“+url);SdkSignUtil 签名工具类package com.chen;import org.apac

14、he.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;import java.io.UnsupportedEncodingException; import .URLEncoder; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Collections; import java.util.List; imp

15、ort java.util.Map;public class SdkSignUtil private static final Logger log = LogManager.getLogger(SdkSignUtil.class);/* 生成签名验证信息* param dataMap* param beeKey* return*/public static String generateSign(Map dataMap,String beeKey) throws UnsupportedEncodingException String queryString=createUrlQueryStr

16、ing(dataMap);queryString+=“log.info(“SDK 签名前字符串:“+queryString);return md5(queryString);public static String createUrlQueryString(Map dataMap) throws UnsupportedEncodingException List keys = new ArrayList(dataMap.keySet();Collections.sort(keys);StringBuilder queryString = new StringBuilder();for (int

17、 i = 0; i “+request.getRequestURL();log.info(“params-“+ JSONObject.toJSONString(request.getParameterMap();if (!checkSign(request,appKey,beeKey)log.error(“签名验证不通过!“);out.println(“code“:199“);log.info(“回调处理失败:“code“:199“);else out.println(“code“:200“);log.info(“回调处理成功:“code“:200“);/* 验证签名* param reque

18、st* return*/private boolean checkSign(HttpServletRequest request,String appKey,String beeKey) Enumeration keys=request.getParameterNames();Map dataMap=new HashMap();dataMap.put(“appKey“,appKey);while (keys.hasMoreElements()String key= (String) keys.nextElement();dataMap.put(key,request.getParameter(key);String sign=null;try sign=SdkSignUtil.generateSign(dataMap,beeKey); catch (UnsupportedEncodingException e) log.error(“生成签名字符无法进行 utf-8 编码“,e);return false;if (sign.equalsIgnoreCase(String) dataMap.get(“sign“)return true;log.info(“签名不一致,“+sign+“-“+dataMap.get(“sign“);return false;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 教育教学

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁