安陆市城乡建设局网站,怎么做提高网站排名,湖北省建设厅网站怎么打不开,论坛的网站开发项目一、准备工作 〉1、下载开发包 https://b.alipay.com/order/productDetail.htm?productId2014110308141993tabId4#ps-tabinfo-hash 压缩包下的“支付宝钱包支付接口开发包”中即有Andoid使用支付宝的JAR和Demo 〉2、创建支付宝应用 在支付宝开放平台申请创建应用 https:/…一、准备工作 〉1、下载开发包 https://b.alipay.com/order/productDetail.htm?productId2014110308141993tabId4#ps-tabinfo-hash 压缩包下的“支付宝钱包支付接口开发包”中即有Andoid使用支付宝的JAR和Demo 〉2、创建支付宝应用 在支付宝开放平台申请创建应用 https://open.alipay.com/index.htm 支付宝平台的应用创建仅限于公司实名认证用户个人帐号是不能创建应用的应用申请我没试过暂且不做说明 〉3、AndroidManifest.xml 修改 (权限、界面、服务等申明) activity
android:namecom.alipay.sdk.app.H5PayActivity
android:configChangesorientation|keyboardHidden|navigation
android:exportedfalse
android:screenOrientationbehind
/activity
activity
android:namecom.alipay.sdk.auth.AuthActivity
android:configChangesorientation|keyboardHidden|navigation
android:exportedfalse
android:screenOrientationbehind
/activity uses-permission android:nameandroid.permission.INTERNET /uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE /uses-permission android:nameandroid.permission.READ_PHONE_STATE /uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE /uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION / 4、获取开发所需要的参数数据 //商户PIDpublic static final String PARTNER ;//商户收款账号public static final String SELLER ;//商户私钥pkcs8格式public static final String RSA_PRIVATE ;//支付宝公钥public static final String RSA_PUBLIC ; 商户PID和商户收款账号 都是在支付宝申请上都有 商户私钥和支付宝公钥都是需要通过支付宝开发包中的openssl文件夹下的bin目录下的OpenSSL程序生成 命令如下 RSA密钥生成命令
生成RSA私钥
opensslgenrsa -out rsa_private_key.pem 1024
生成RSA公钥
opensslrsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
将RSA私钥转换成PKCS8格式
opensslpkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -outform PEM outform 生成私钥图 将RSA私钥转换成PKCS8格式 生成RSA公钥 开发者的私钥 1、必须保证只有一行文字即没有回车、换行、空格等 2、去掉“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”只保存这两条文字之中的部分 ◆开发者的公钥 1、必须保证只有一行文字即没有回车、换行、空格等 2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”只保存这两条文字之中的部分 3、保存到一个临时的记事本中。 参数设置完成 〉5、加载Jar文件 将开发包中的alipay-sdk-common文件夹下面的jar文件复制到项目的libs目录下并加载 〉6、添加混淆规则 -libraryjars libs/alipaysdk.jar
-libraryjars libs/alipaysecsdk.jar
-libraryjars libs/alipayutdid.jar
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
-keep class com.alipay.mobilesecuritysdk.*
-keep class com.ut.* 二、开发 1、创建订单信息 /*** create the order info. 创建订单信息* */public String getOrderInfo(String subject, String body, String price) {// 签约合作者身份IDString orderInfo partner \ PARTNER \;// 签约卖家支付宝账号orderInfo seller_id \ SELLER \;// 商户网站唯一订单号orderInfo out_trade_no \ getOutTradeNo() \;// 商品名称orderInfo subject \ subject \;// 商品详情orderInfo body \ body \;// 商品金额orderInfo total_fee \ price \;// 服务器异步通知页面路径orderInfo notify_url \ http://notify.msp.hk/notify.htm \;// 服务接口名称 固定值orderInfo service\mobile.securitypay.pay\;// 支付类型 固定值orderInfo payment_type\1\;// 参数编码 固定值orderInfo _input_charset\utf-8\;// 设置未付款交易的超时时间// 默认30分钟一旦超时该笔交易就会自动被关闭。// 取值范围1m15d。// m-分钟h-小时d-天1c-当天无论交易何时创建都在0点关闭。// 该参数数值不接受小数点如1.5h可转换为90m。orderInfo it_b_pay\30m\;// extern_token为经过快登授权获取到的alipay_open_id,带上此参数用户将使用授权的账户进行支付// orderInfo extern_token \ extern_token \;// 支付宝处理完请求后当前页面跳转到商户指定页面的路径可空orderInfo return_url\m.alipay.com\;// 调用银行卡支付需配置此参数参与签名 固定值 需要签约《无线银行卡快捷支付》才能使用// orderInfo paymethod\expressGateway\;return orderInfo;} 2、调用SDK支付 /*** call alipay sdk pay. 调用SDK支付* */public void pay(View v) {// 订单String orderInfo getOrderInfo(测试的商品, 该测试商品的详细描述, 0.01);// 对订单做RSA 签名String sign sign(orderInfo);try {// 仅需对sign 做URL编码sign URLEncoder.encode(sign, UTF-8);} catch (UnsupportedEncodingException e) {e.printStackTrace();}// 完整的符合支付宝参数规范的订单信息final String payInfo orderInfo sign\ sign \ getSignType();Runnable payRunnable new Runnable() {Overridepublic void run() {// 构造PayTask 对象PayTask alipay new PayTask(PayDemoActivity.this);// 调用支付接口获取支付结果String result alipay.pay(payInfo);Message msg new Message();msg.what SDK_PAY_FLAG;msg.obj result;mHandler.sendMessage(msg);}};// 必须异步调用Thread payThread new Thread(payRunnable);payThread.start();} 3、支付结果获取和处理 private Handler mHandler new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case SDK_PAY_FLAG: {PayResult payResult new PayResult((String) msg.obj);// 支付宝返回此次支付结果及加签建议对支付宝签名信息拿签约时支付宝提供的公钥做验签String resultInfo payResult.getResult();String resultStatus payResult.getResultStatus();// 判断resultStatus 为“9000”则代表支付成功具体状态码代表含义可参考接口文档if (TextUtils.equals(resultStatus, 9000)) {Toast.makeText(PayDemoActivity.this, 支付成功,Toast.LENGTH_SHORT).show();} else {// 判断resultStatus 为非“9000”则代表可能支付失败// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认最终交易是否成功以服务端异步通知为准小概率状态if (TextUtils.equals(resultStatus, 8000)) {Toast.makeText(PayDemoActivity.this, 支付结果确认中,Toast.LENGTH_SHORT).show();} else {// 其他值就可以判断为支付失败包括用户主动取消支付或者系统返回的错误Toast.makeText(PayDemoActivity.this, 支付失败,Toast.LENGTH_SHORT).show();}}break;}case SDK_CHECK_FLAG: {Toast.makeText(PayDemoActivity.this, 检查结果为 msg.obj,Toast.LENGTH_SHORT).show();break;}default:break;}};}; 4、其它功能代码 /*** check whether the device has authentication alipay account.* 查询终端设备是否存在支付宝认证账户* */public void check(View v) {Runnable checkRunnable new Runnable() {Overridepublic void run() {// 构造PayTask 对象PayTask payTask new PayTask(PayDemoActivity.this);// 调用查询接口获取查询结果boolean isExist payTask.checkAccountIfExist();Message msg new Message();msg.what SDK_CHECK_FLAG;msg.obj isExist;mHandler.sendMessage(msg);}};Thread checkThread new Thread(checkRunnable);checkThread.start();} /*** get the sdk version. 获取SDK版本号* */public void getSDKVersion() {PayTask payTask new PayTask(this);String version payTask.getVersion();Toast.makeText(this, version, Toast.LENGTH_SHORT).show();} 具体可参照支付宝Demo 及《接入与使用规则》 转载于:https://www.cnblogs.com/Mark-Liu/p/4465471.html