cocos2dx安卓第三方登录支付sdk接入

一般来说,只要要接入一个登录支付sdk,按技术文档的要求接入就可以了。但是我们用的是cocos2dx,也就是要和java交互。所以我们需要清楚两样技术 ,jni和thread。

jni

jni是java与c/c++交互的桥梁,所以我们很有必要先了解jni这个技术。其实里面也是非常简单的。

例如你想要在c/c++这边new一个java类对象的话,要做的事情就是先获取到这个类,再用这个类创建你想要的对象,想要调用这个类中的方法就用这个类对象去调用。需要注意的就是两个不同语言中的相同的部分,就只有jni中定义的几个基本数据类型。所以你想要通信整个对象这是实现不了的。就连字串也是不可以的。不过jni里面有对字串操作的函数简化了字串的操作。

java 要调用c/c++的话就只能调用c/c++实现的函数了,没有提供可以在java中生成一个c++对象的能力。


thread

对于线程大家都知道,操作ui要在主线程中进行。但是问题就出来了,cocos2dx的glview也是一条线程,而且是一条子线程。为什么这又可以行得通呢。这里我们先回忆下我们在new一个runnable的时候用到了外层的变量,这时,eclipse就会要求这个外层的变量要声明为final的。为什么要这样呢,因为不同线程中读取同一个内存地址是可行的,但是不可以写操作。所以定义为final就可以不用加锁了。回到一开始的问题为什么两个不同的线程都可以操作ui。没错,就是因为两条线程是独立的,它们没有同时写操作同一块内存。这就可以说明了他们各自是操作着两个相互独立的渲染上下文。所以我们以前会经常听到,“一般不会在子线程操作ui。”而没有听到“只可以在主线程操作ui”。好了讲明白这些有什么用呢,明显就是因为cocos2dx和我们要接入的sdk它们是运行在不同的两个线程当中啦。而且它们两条线程都有自己的渲染上下文。所以这里你就要清楚的了解anrodi.os中提供的Handler了的。



Sdk的一般的操作流程。

登录流程:

支付流程:


一般的登录支付sdk都是这样的一个流程,但是这不是绝对的,不过因为我们要做到统一所以就算不是这个流程也是会适配到这个流程中去。

验证过程

这个过程无非都是md5的校验而已,里面可能会涉及一些urlencode的问题。因为各个后台实现的语言都不一样,就不多说了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值