此项目为海豚Eclipse版本Demo(AndroidStudio版本戳这里),clone后需用项目中com.xiao.ht.kum.jks签名文件签名后的apk才能正常支付,下面将帮助您如何集成海豚到项目中去:
####第一步:
复制到sdk文件(.jar)到项目的libs目录下,Demo中路径为HaiTunPayDemoForEclipse/libs/haitunsdk-x.x.x.jar (戳这里)
####第二步: 在项目res/values/styles.xml样式文件中添加如下配置:demo配置
<style name="HaiTun_PaymentActTheme" parent="android:Theme.DeviceDefault.Light.NoActionBar">
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
</style>####第三步:
AndroidManifest中添加如下配置:demo配置
<activity
android:name="com.longyou.haitunsdk.HaiTunPayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:theme="@style/HaiTun_PaymentActTheme"/>
<!-- ************微信支付配置start************ -->
<!-- 微信支付回调页 -->
<activity
android:name="com.xiao.ht.kum.wxapi.WXPayEntryActivity"
android:exported="true"/>
<!-- 商户在海豚平台注册后获得的key -->
<meta-data android:name="HAITUN_WECHAT_KEY" android:value="07b9ca8e20293023a2a16525a1cc313e"/>
<!-- 商户在海豚平台注册后获得的merid -->
<meta-data android:name="HAITUN_WECHAT_MERID" android:value="10001"/>
<!-- ************微信支付配置end************ -->
<!-- 动态配置创建订单地址(备用配置) -->
<!--<meta-data android:name="HAITUN_CREATE_URL" android:value="http://p.ylsdk.com"/>-->所需权限配置:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>####第四步:
将Demo中HaiTunPayDemoForEclipse/src/com/xiao/ht/kum/目录下的wxapi文件夹(demo目录位置戳这里)复制到您项目下src/com/xiao/ht/kum/目录下
(重要说明:上述路径中com/xiao/ht/kum为应用包名,如后期更换包名的话,一定要记得修改此路径,否则wxapi/WXPayEntryActivity.java将无法收到支付回调)
####第五步: 在自定义的Application的onCreate中进行SDK初始化 demo代码
// 如果在AndroidManifest文件中配置了HAITUN_WECHAT_KEY及HAITUN_WECHAT_MERID,
// 则直接调用无参init函数初始化即可,如果未在xm中配置,则调用上面的initWithWechat函数进行初始化
HaiTunPay.getInstance().init(this);
// 配置是否显示控制台日志,开启后便于开发者查看问题
HaiTunPay.setDebug(true);到这里SDK配置就已经完成了
###如何调起支付
- 构建
PaymentBean对象用于调起支付的必要参数
PaymentBean paymentBean = new PaymentBean("商户自己生成的唯一订单ID", price/**支付金额,单位:元*/, "订单描述,不能为空", "支付服务端回调地址");
//paymentBean.setSjt_UserName("");// 备用参数,可用于设置渠道等其他
//paymentBean.setSjt_Paytype("");// 备用参数- 调用以下代码进行调起支付 demo代码
HaiTunPay.getInstance().openWeChatPay(this, paymentBean);- 支付回调函数位于WXPayEntryActivity.java中,商户可在此回调函数中进行业务逻辑处理
@Override
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
// resp.errCode == -1 原因:支付错误,可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等
// resp.errCode == -2 原因 用户取消,无需处理。发生场景:用户不支付了,点击取消,返回APP
if (resp.errCode == 0) // 支付成功
{
Toast.makeText(this, "支付成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "取消支付 : " + resp.errCode, Toast.LENGTH_SHORT)
.show();
}
finish();
}
}###混淆配置 demo配置
-dontwarn com.longyou.haitunsdk.**
-keep class com.longyou.haitunsdk.** { *; }
-dontwarn com.switfpass.pay.**
-keep class com.switfpass.pay.** { *; }
-dontwarn com.tencent.mm.**
-keep class com.tencent.mm.** { *; }
-keep class com.Main { *; }###重要说明 x 3
- 商户包名必须为
com.xiao.ht.kum - apk签名文件必须使用demo中的
com.xiao.ht.kum.jks,签名信息如下:
keyAlias 'haitunpay'
storePassword 'haitunpay123'
keyPassword 'haitunpay123'如果包名与签名不符,则会导致支付不成功,切记切记
###如何更换包名(假设新包名为com.xx.yy)
- 更改
AndroidManifest.xml清单文件中根节点package属性为新的包名,如:原包名为package="com.xiao.ht.kum""更换为package="com.xx.yy"demo位置 - 更改原
com/xiao/ht/kum/目录下的wxapi文件夹路径为新的包名路径com/xx/yy/demo位置 - 更改
AndroidManifest.xml清单文件中WXPayEntryActivity的android:name属性为新的路径,如:com.xx.yy.wxapi.WXPayEntryActivity,路径错误,则无法接收支付回调 demo位置 - 更换打包所用的签名文件,请联系海豚客服索取