资讯专栏INFORMATION COLUMN

实战:使用聚易付移动支付服务(MixpayAndroidSDK)快速集成移动支付功能

pcChao / 1218人阅读

摘要:一聚易付移动支付服务简介聚易付移动支付服务的目标就是使开发者很轻松地在自己的中集成支付功能,从而节约时间和精力用在本身的业务当中。支付两种加密方式,和。中定义了关于支付结果的各种状态支付成功,继续程序逻辑支付成功至此,支付功能集成完毕。

一、聚易付移动支付服务(MixpayAndroidSDK)简介

聚易付移动支付服务(MixpayAndroidSDK)的目标就是使开发者很轻松地在自己的APP中集成支付功能,从而节约时间和精力用在本身的业务当中。

只需15分钟,就可以让你的APP具有支付宝支付、银行卡支付、手机充值卡支付和游戏点卡支付。解决了之前开发者在集成支付时遇到的各种问题,比如:

与支付平台签约时间过长

支付平台文档坑太多,导到开发过程很不顺畅

支付平台技术支持不足,联调困难

每一个支付通道都要折腾一翻

MixpayAndroidSDK致力于帮助开发者解决以上问题。

以下通过一个实际项目来说明如何使用MixpayAndroidSDK。

笔者的开发环境:

Macbook Pro 10.9.4

Android Studio v0.8.2

Gradle 1.10

JDK 1.7

二、注册、添加APP 2.1 注册

注册地址:https://m.mixpay.cn/register

注册成功之后会收到Mixpay发出的一封确认邮件,点击其中的确认链接即完成注册过程。

2.2 添加APP

登录到商户后台,通过菜单导航到 应用->新建应用 页面

https://m.mixpay.cn/application/add

在表单中填写应用的相关信息,保存即可。如下图所示:

其中的"通知地址"是指,Mixpay在完成一笔支付之后,通过这个地址通知给您,您在接收到进行相应的处理,并返回一个字符串"success"以表示接收成功,整个支付过程也就完成了。

APP保存之后,Mixpay会位APP分配一个唯一标识,即APP_KEY,可以在 APP详情页面中看到:

2.3 添加密钥

操作地址:https://m.mixpay.cn/key/add
密钥用来对订单信息进行加密。Mixpay支付两种加密方式,RSA和MD5。
使用RSA,按页面上给出的提示操作即可。
使用MD5,直接保存即可。在密钥详细信息中会看到secretKey。

在这里选择MD5加密方式:

key信息:

2.4 将密钥绑定至APP

操作地址:https://m.mixpay.cn/key
在key的右边点击"加载到应用",在打开的页面中选择刚才新建的APP即可。

三、APP代码集成 3.1 添加MixpayAndroidSDK的依赖

可以通过gradle、maven、jar包三种方式添加依赖,开发者可以根据自身情况任选。这里选择Gradle,在build.gradle中添加以下配置:

apply plugin: "maven"
repositories {
    maven {
        url "https://maven.mixpay.cn"
    }
}
...
dependencies {
    compile ("cn.mixpay:android-sdk:1.0.+"){
        exclude group: "com.google.android", module: "android"
    }
}
3.2 初始化订单

引入MixpayAdroidSDK后,即可通过cn.mixpay.Order来表示自己的订单:

import cn.mixpay.sdk.*;
...

public static final String MD5_SECRET_KEY = "568bd43af00128ee4d1bce2679*****";
private static final String APP_KEY = "60186724345*****";
Order myOrder = null;

//订单信息
String orderId = "order_id_001";
String userId = "user_id_001";
int amount = 1;
String orderTitle = "瑜伽垫十个";
String orderDesc = "国际健美协会10:00下单";
String productId = "product_id_001";
//初始化订单界面,此处略去代码
//签名
String sign = cn.mixpay.server.MD5SignatureTool.signOrderInfo(amount, APP_KEY, "", orderId, "", orderDesc, orderTitle, "", productId, "", userId
        , MD5_SECRET_KEY);

myOrder = new Order(orderId, userId, amount, orderTitle, orderDesc, productId, sign);

其中的参数依次表示:

订单编码、用户编码、金额(单位是分)、订单标题、订单描述、商品编码、订单签名

3.3 支付

初始化一个cn.mixpay.MixpayAPI对象,这个对象里提供了具体的支付方法:

public void pay(View view) {
    MixpayAPI api = new MixpayAPI(this, APP_KEY);
    api.startPay(this, myOrder);
}

其中this表示当前的Activity,APP_KEY是在步骤2.2中得到的应用唯一标识,myOrder就是刚刚生成的订单。

pay方法绑定给页面上的支付按钮,在点击按钮时,MixpayAndroidSDK会做以下工作:

检测当前环境中是否安装了Mixpay支付插件

没有的话会提示用户安装

若有更新的Mixpay支付插件,提示用户升级

打开支付界面引导用户选择支付方式并完成支付

订单界面:

支付界面:

3.4 支付结果处理

通过onActivityResult获得支付结果。MixpayAPI中定义了关于支付结果的各种状态:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == MixpayAPI.REQUEST_CODE_START_PAY) {
            Long mixpayOrderId = null;
            try {
                mixpayOrderId = data.getLongExtra(MixpayAPI.GET_MIXPAY_ORDER_ID, 0);
            }catch (Exception e) {
                //mixpayOrderId = new Long(0);
                Log.e(TAG, "no order is returned");
            }
            switch (resultCode) {
                case MixpayAPI.ORDER_STATUS_PAY_SUCCESS:
                    //TODO:支付成功,继续程序逻辑
                    Toast.makeText(this, "支付成功"), Toast.LENGTH_LONG).show();
                    break;
                case MixpayAPI.ORDER_STATUS_UNPAY:
                    ...
                    break;
                case MixpayAPI.ORDER_STATUS_PAYING:
                    ...
                    break;
                case MixpayAPI.ORDER_STATUS_CANCELED:
                    ...
                    break;
                case MixpayAPI.ORDER_STATUS_PAY_FAILURE:
                    ...
                    break;
                case MixpayAPI.ORDER_STATUS_UNKNOWN:
                    ...
                    break;
            }

        }

    }

至此,支付功能集成完毕。

四、更多内容 4.1 关于订单签名

Mixpay提供的帮助文档中详细说明了如何对订单信息进行签名,同时也提供了javaPHPRubyPythonNodeJS五种语言的示例,可以直接拿来用。

其中对于java还提供了服务器端的sdk,提供了方便的订单签名方法。具体请参考这里:https://www.mixpay.cn/docs/v1/server/java/

在这个示例中,我直接在APP项目里引入这个服务器端sdk。

4.2 相关链接

Mixpay Android SDK 使用帮助

Mixpay Server SDK For JAVA

Mixpay on Github

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64106.html

相关文章

  • 揭秘支付宝中的深度学习引擎:xNN

    摘要:本文介绍支付宝中的深度学习引擎。因而无论在运行速度和内存占用等性能指标还是在兼容性上,支付宝的移动端都必须做到极致,才能较大幅度地降低使用门槛。五大目标支付宝是针对国民环境定制开发的移动端解决方案,项目制定了如下技术目标。 本文介绍支付宝App中的深度学习引擎——xNN。xNN通过模型和计算框架两个方面的优化,解决了深度学习在移动端落地的一系列问题。xNN的模型压缩工具 (xqueeze) ...

    wayneli 评论0 收藏0
  • 如何用 Enhancer 快速开发移动应用

    摘要:旧页面如何运行到移动端首先确保选用组件都支持移动端。如何部署并访问移动应用部署方式与应用部署方式完全一致。如何跟其他社交应用集成平台最终发布得到的是一个,也即一个页面使用了移动端的浏览器预览。 点击观看视频演示 如果您还未具备 Enhancer 开发经验,建议您先学习完《快速上手》,在了解平台基本操作之后,再来尝试移动应用开发,这样会事半功倍。 如果您已具备 Enhancer 开发经验...

    liuhh 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<