下载 TTCPay SDK
将sdk放入libs目录下,在build.gradle中添加依赖,sdk的名称请根据相应的版本号填写。
android {
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
implementation(name: 'ttc_pay_xxx', ext: 'aar')
}
在Application中初始化,USER_ID为Dapp的user_id,APP_ID、TTCPay_PUBLIC_KEY和TTCPay_SECRET_KEY的值在申请时确定;
@Override
public void onCreate() {
super.onCreate();
TTCPay.init(applicationContext, "USER_ID", "APP_ID", "TTCPay_PUBLIC_KEY", "TTCPay_SECRET_KEY")
}
查询当时TTC与各种法币的汇率,第二个参数为法币类型,已经在Currency.kt文件中定义;获取成功后,回调中返回1TTC等于多少该法币。
TTCPay.getExchangeRate(this, Currency.dollar, object : ExchangeCallback {
override fun done(ttcPrice: String) {
//Utils.toast(activity, ttcPrice)
}
override fun error(errorBean: ErrorBean) {
//Utils.toast(activity, errorBean.getErrorMsg())
}
})
在调用支付接口前,Dapp需要得到签名(建议服务器签名,不要放在客户端),赋值给payInfo。sig签名规则详见最后; 第二个参数为Dapp需要传入的参数,该类的字段都需要赋值;支付的时候,首先请求TTC服务器生成订单,生成订单后,返回TTC的订单号ttcOrderId,该字段用于后续查询订单的信息;
TTCPay.pay(activity, payInfo, object : PayCallback {
override fun createTTCOrderOver(ttcOrderId: String) {
//Utils.toast(activity, ttcOrderId)
}
override fun error(errorBean: ErrorBean) {
//Utils.toast(activity, errorBean.getErrorMsg())
}
override fun payFinish(ttcOrderId: String, txHash: String, orderState: Int) {
}
})
根据TTC的订单号,查询该订单的详细信息
TTCPay.getOrderDetail(activity, ttcOrderId, object : GetOrderDetailCallback {
override fun done(orderInfo: OrderInfo) {
//display(orderInfo)
}
override fun error(errorBean: ErrorBean) {
// Utils.toast(activity, errorBean.getErrorMsg())
}
})
##签名规则 将PayInfo.kt中所有的字段赋予相应的值,其中partnerAddress、payType和sellerDefinedPage使用默认值,请勿修改。将所有的字段按照key排序,然后转化成key=value,中间用&连接,用sha1withRsa签名(注意是签名不是加密)。