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

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

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 和 APP_KEY 的作用:用来确定集成了我们支付的应用和开发

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

3、- Libraries,然后点击 Add External JARs. 选择指向 jar 的路径,点击 OK,即导入成功(ADT17 及以上不需要手动导入)。二、基本功能集成2.1 支付流程图见单独流程图文件集成了蜜蜂支付的第三方 A p p蜜蜂支付 S D K 蜜蜂服务器支付渠道服务器( 微信 , 支付宝 )发起支付请求发送支付必填信息 申请支付返回支付通道获取支付二维码展示给用户根据支付结果执行操作 通知支付结果 返回支付结果将支付结果推送给第三方 a p p1 2 3456789 , 与第 7 步同时执行2.2 Manifest 配置 2.2.1 必要权限的添加2.2.2 KEY 值的填

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

5、e String porder;private String pextra;Intent intent = new Intent();intent.setClass(MainActivity.this, BeePayActivity.class);intent.putExtra(HttpConstants.PID,pid); /商品id,最大长度为40个字符,必填intent.putExtra(HttpConstants.PNAME,pname); /商品名称,最大长度为60个字符,必填intent.putExtra(HttpConstants.PPRICE,price); /商品价格,必填i

6、ntent.putExtra(HttpConstants.PDESC,pdesc); /商品描述,最大长度为60个字符,必填intent.putExtra(HttpConstants.PCHANNEL,pchannel); /渠道号,必填intent.putExtra(HttpConstants.PORDER,porder);/order为订单号数字,可选intent.putExtra(HttpConstants.PEXTRA,pextra);/extra为备用字段,可选startActivityForResult(intent, 0);2.4 获取返回值 Overrideprotected

7、void onActivityResult(int requestCode, int resultCode, Intent data) super.onActivityResult(requestCode, resultCode, data);if(resultCode=RESULT_OK)Toast.makeText(this, “您的商品已经购买成功 .“, 1).show(); if(resultCode=BeePayActivity.PAY_RESULT_UNKOWN)Toast.makeText(this, “未知的状态码 .“, 1).show(); if(resultCode=B

8、eePayActivity.PAY_RESULT_CLOSE)Toast.makeText(this, “订单已经关闭 .“, 1).show(); if(resultCode=BeePayActivity.PAY_RESULT_CANCEL)Toast.makeText(this, “订单已经创建,但是用户关闭了支付界面,你需要自己去服务器核对订单是否支付.“, 1).show(); resultCode 的值说明RESULT_OK:成功购买,客户端受到服务器传来的轮询结果BeePayActivity.PAY_RESULT_UNKOWN: 未知的结果,需 app 自己取核对结果BeePayA

9、ctivity.PAY_RESULT_CLOSE: 订单关闭了BeePayActivity.PAY_RESULT_CANCEL:订单处于轮询状态,但是用户关闭了支付界面,无法收到轮询消息,需自己去查询服务器核对支付结果2.5 回调接口 要求接入方提供回调地址,SDK 服务端即时推送支付状态至接入方,接入方根据 SDK 服务端的支付状态以及 SDK 客户端的支付状态进行二次确认判断,可在该应用的配置页面填写回调接口 。2.5.1 回调接口参数说明mtime 支付时间start 支付状态Total_fee 支付金额Out_trade_no 订单号User_no 商户订单号Pay_user 支付标识

10、Pay_type 支付方式extra 备用字段pid 商品 ID2.5.2 支付状态查询接口为了防止漏单情况(接入方回调接口调用失败),支付提供支付状态查询接口!接口链接:http:/dev.beemarket.tv /openApi/queryOrder.action 请求参数列表:名称 类型 备注orderNo/porder string SDK 订单号或用户订单号,二选一appKey string 应用秘钥sign string 签名数据orderNo 是 SDK 支付平台这边的订单号; porder 是商户订单号;两者二选一为参数传递给接口;sign 是上面三个参数参与计算的 md5

11、值,请参考以下 demo:sign 计算方法及生成订单查询 url:String appKey=“07000f3366695a65“;/商户的 appKeyString beeKey=“MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkcQG90QOXUKon/VmhM/o31SmyzGb4xm3z5Vf94itGZNRNJ6f6MDbnpBeA2GJYAaNtcCxnn5ltb2Mz23KCil+mSm0WbMhNeGvxSlhOonqA+WGbpKmI1AaXWgsMpZpAFV5VAZY86ledsazK7z80s6mqIlbw8M8DDQC8Za9/hnD

12、lmwIDAQAB“;/商户的 beeKeyString orderNo=“s20170828134546729002“;/商户需要查询 SDK 支付平台订单号/String porder=”xxxx”;/商户订单号Map dataMap=new HashMap();dataMap.put(“appKey“,appKey);/dataMap.put(“porder”,porder);dataMap.put(“orderNo“,orderNo);String sign= SdkSignUtil.generateSign(dataMap,beeKey);String url=“http:/dev.

13、beemarket.tv/openApi/queryOrder.action?“+SdkSignUtil.createUrlQueryString(dataMap)+“log.info(“查询订单 URL:“+url);SdkSignUtil 签名工具类package com.chen;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import java.io.UnsupportedEncodingException;import .URLEncoder;import java

14、.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Map;public class SdkSignUtil private static final Logger log = LogManager.getLogger(SdkSignUtil.class);/* 生成签名验证信息* param dataMap* para

15、m beeKey* return*/public static String generateSign(Map dataMap,String beeKey) throws UnsupportedEncodingException String queryString=createUrlQueryString(dataMap);queryString+=“log.info(“SDK 签名前字符串:“+queryString);return md5(queryString);public static String createUrlQueryString(Map dataMap) throws

16、UnsupportedEncodingException List keys = new ArrayList(dataMap.keySet();Collections.sort(keys);StringBuilder queryString = new StringBuilder();for (int i = 0; i keys.size(); i+) String key = keys.get(i);Object value = dataMap.get(key);if (key.equals(“sign“) continue;queryString.append(key + “=“ + UR

17、LEncoder.encode(String.valueOf(value),“utf-8“) + “return queryString.substring(0, queryString.length() - 1);public static String md5(String plainText) try MessageDigest md = MessageDigest.getInstance(“MD5“);md.update(plainText.getBytes();byte b = md.digest();int i;StringBuffer buf = new StringBuffer

18、(“);for (int offset = 0; offset b.length; offset+) i = boffset;if (i 0)i += 256;if (i 16)buf.append(“0“);buf.append(Integer.toHexString(i);return buf.toString(); catch (NoSuchAlgorithmException e) e.printStackTrace();return “;2.6 特殊情况说明若以上步骤中,用户将蜜蜂支付 SDK 关闭后再进行支付,则蜜蜂 SDK 是无法返回支付结果到接入方的 APP,需要接入方自行和 APP 服务器进行支付确认,否则可能会造成无法获得支付结果。3、支付流程注册蜜蜂开发者账号创建应用获得并配置 b e e K e y 和 a p p K e y填写回调接口和支付应用接入支付 s d k打开支付页面S d k 验证 a p p K e y 和b e e K e y失败S D K 参数传递给服务器通过蜜蜂服务器验证 a p p K e y和 b e e K e y返回支付方式通过失败用户扫码支付回调接口通知支付成功成功未支付订单失败

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

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。