怎么在网站上集成第三方支付接口啊

怎么在网站上集成第三方支付接口啊,第1张

●可以申请支付宝 易宝 等支付平台接口,需要你的账号资料核实等一系列企业手续等等。

●申请成功之后进行对接即可。

●如果网站特殊、不会对接、或者没有所需相关资料等,想快速对接各大支付平台和银行可以向支付通道 寻求合作代申请

大部分的网站主在给网站选择支付接口时,重点考虑的是以下几个问题:
•支付成功率怎样!
•帐目是否清晰!
•支付成本是否够低!
•系统是否安全!
深层次的需求:1、支付记录能否删除,确保用户隐私。 2、能否进行委托分帐结算,相当于分批次结算到不同的帐户。3、能否降低企业成本接入一家就可以支持大部分的第三方平台。
虽然目前互联网上在线支付接口种类很多,不过常见在线支付接口就这几种:
1、支付宝支付接口集成;支付宝支付接口集成是指支付宝支付平台接口程序与你的商务网站无缝整合,从而让你的网站立即拥有在线收款的功能。根据你的网站脚本和结构加以整合,经编程到调试成功。
缺点:审核超慢,费率高,要求高。支付时必须要有支付宝帐户才可,用户必须开通网银。
2、财付通支付接口集成;财付通支付接口集成是指财付通支付平台接口程序与你的商务网站无缝整合,从而让你的网站立即拥有在线收款的功能。财付通构建全新的综合支付平台,业务覆盖B2B、B2C和C2C各领域,提供卓越的网上支付及清算服务。针对个人用户,财付通提供了包括在线充值、提现、支付、交易管理等丰富功能;针对企业用户,财付通提供了安全可靠的支付清算服务和极富特色的QQ营销资源支持。客户在你的网站上支付后,钱款自动计入你网站上该客户对应
的账户上,实时到账,方便快捷。
缺点:有起结算量,同时合同手续麻烦,支持的银行较少,支付必须客户QQ要开通财付通才可。
3、聚宝云计费支付接口集成;聚宝云计费是属于整合型支付接口,主要优势是整合现有第三方支付的优势资源,以最大限度的确保安全的前提下降低企业的各项成本帮助企业获取各大的利润空间,还同时能够提供更加个性化的服务比如智能的推荐客户经常使用的银行、网站主可以自由的删除用户隐私数据确保用户的隐私安全。
目前聚宝云计费提供:
1、支付记录能否删除,确保用户隐私
2、可以进行委托分帐结算,相当于分批次结算到不同的帐户。
3、可以降低企业开发成本与维护成本接入聚宝云计费就可以支持大部分的第三方平台与306家银行。

1下载官方架包和说明文档
其实官方已经提供了安装指南,
里面有有个pdf,详细说明了说用指南,写的比较详细,可以重点参考。
下载下来,我们主要是用到Android(20120104)目录下的alipay_pluginjar和AppDemo/assets下的alipay_plugin223_0309apk,这两个文件是我们不能修改的支付宝api和安装包。
2 商户签约
现在的安全机制,都是这样,客户端需要先和服务端请求验证后才能进行进一步 *** 作,oauth也是如此。
打开登陆支付宝,点击签约入口,选择"应用类产品",填写并等待审核,获取商户ID和账户ID。
签约的时候还要向需要提供实名认证和上传应用,所以我建议先把应用做好了,最后再集成支付宝。
我大概等了1-2天审核,审核是失败的,回复是应用类型啥的应该是"虚拟货币",我改成那个马上自动就审核通过了。
3密钥配置
解压openssl-098k_WIN32(RSA密钥生成工具)zip,打开cmd,命令行进入openssl-098k_WIN32(RSA密钥生成工具)\bin目录下,
(1)执行
openssl genrsa -out rsa_private_keypem 1024
生成rsa_private_keypem文件。
(2)再执行
openssl rsa -in rsa_private_keypem -pubout -out rsa_public_keypem
生成rsa_public_keypem 文件。
(3)在执行
openssl pkcs8 -topk8 -inform PEM -in rsa_private_keypem -outform PEM -nocrypt
将RSA私钥转换成 PKCS8 格式,去掉begin和end那两行,把里面的内容拷贝出来,保存到某个txt中,如rsa_private_pkcs8_keytxt中(我好像没用到这个)。
打 开rsa_public_keypem,即商户的公钥,复制到一个新的TXT中,删除文件头”-----BEGIN PUBLIC KEY-----“与文件尾”-----END PUBLIC KEY-----“还有空格、换行,变成一行字符串并保存该 TXT 文件,然后在网站的“我的商家服务”切换卡下的右边点击“密钥管理”,然后有个"上传商户公钥(RSA)"项,选择上传刚才的TXT文件
好了,服务器配置OK,因为这一段之前没有截图,现在弄好了又不好截图,如果有不明白的地方请大家参考官方文档。
4引用jar和包含安装包
(1)新建android工程;
(2)copy上面说的alipay_pluginjar到工程的libs目录下,并在java build path中通过Add External JARs找到并引用该jar;
(3)copy上面说的alipay_plugin223_0309apk安装包到assets目录下,后面配置路径用到。
\
如果libs和assets目录没有,手动建立者两个目录。
5调用代码整理
这里我们要严重的参考文档中AppDemo,我们建一个包 comtianxialibbaseworldalipay,把AppDemo的comalipayandroidappDemo4包下的 源码全部copy到刚才我们自己的包下,还有res目录下的资源文件也合并到我们工程res下。
其中AlixDemojava,ProductListAdapterjava,Productsjava是示例类,我们借鉴完后可以删除。
PartnerConfigjava是配置类,配置商户的一些配置参数。
其他的类是严重参考类,直接留下使用。
PartnerConfigjava代码如下:
public class PartnerConfig { //合作商户ID。用签约支付宝账号登录msalipaycom后,在账户信息页面获取。 public static final String PARTNER = "xxx"; //账户ID。用签约支付宝账号登录msalipaycom后,在账户信息页面获取。 public static final String SELLER = "xxx"; //商户(RSA)私钥 ,即rsa_private_keypem中去掉首行,最后一行,空格和换行最后拼成一行的字符串 public static final String RSA_PRIVATE = "xxx"; //支付宝(RSA)公钥 用签约支付宝账号登录msalipaycom后,在密钥管理页面获取。 public static final String RSA_ALIPAY_PUBLIC = "xxx"; //下面的配置告诉应用去assets目录下找安装包 public static final String ALIPAY_PLUGIN_NAME ="alipay_plugin223_0309apk";}
AlixDemo中代码是最终的调用代码在onItemClick(AdapterView<> arg0, View arg1, int arg2, long arg3) {}中,下面我们提取其中的核心代码。
6提取核心调用代码
在AlixDemojava同目录下新建AlixPayjava,来提取AlixDemojava的核心代码:
package comtianxialibbaseworldalipay;import javanetURLEncoder;import javatextSimpleDateFormat;import javautilDate;import comtianxialibbaseworldR;import androidappActivity;import androidappProgressDialog;import androidcontentDialogInterface;import androidosHandler;import androidosMessage;import androidviewKeyEvent;import androidwidgetToast;public class AlixPay { static String TAG = "AlixPay"; private Activity mActivity; public AlixPay(Activity activity) { mActivity = activity; } private ProgressDialog mProgress = null; // the handler use to receive the pay result private Handler mHandler = new Handler() { public void handleMessage(Message msg) { try { String strRet = (String) msgobj; switch (msgwhat) { case AlixIdRQF_PAY: { closeProgress(); BaseHelperlog(TAG, strRet); try { String memo = "memo="; int imemoStart = strRetindexOf("memo="); imemoStart += memolength(); int imemoEnd = strRetindexOf(";result="); memo = strRetsubstring(imemoStart, imemoEnd); ResultChecker resultChecker = new ResultChecker(strRet); int retVal = resultCheckercheckSign(); if (retVal == ResultCheckerRESULT_CHECK_SIGN_FAILED) { BaseHelpershowDialog( mActivity, "提示", mActivitygetResources()getString( Rstringcheck_sign_failed), androidRdrawableic_dialog_alert); } else { BaseHelpershowDialog(mActivity, "提示", memo, Rdrawableinfoicon); } } catch (Exception e) { eprintStackTrace(); BaseHelpershowDialog(mActivity, "提示", strRet, Rdrawableinfoicon); } } break; } superhandleMessage(msg); } catch (Exception e) { eprintStackTrace(); } } }; // close the progress bar void closeProgress() { try { if (mProgress != null) { mProgressdismiss(); mProgress = null; } } catch (Exception e) { eprintStackTrace(); } } public void pay() { MobileSecurePayHelper mspHelper = new MobileSecurePayHelper(mActivity); boolean isMobile_spExist = mspHelperdetectMobile_sp(); if (!isMobile_spExist) return; if (!checkInfo()) { BaseHelpershowDialog(mActivity, "提示", "缺少partner或者seller,", Rdrawableinfoicon); return; } try { // prepare the order info String orderInfo = getOrderInfo(); String signType = getSignType(); String strsign = sign(signType, orderInfo); strsign = URLEncoderencode(strsign); String info = orderInfo + "&sign=" + "\"" + strsign + "\"" + "&" + getSignType(); // start the pay MobileSecurePayer msp = new MobileSecurePayer(); boolean bRet = msppay(info, mHandler, AlixIdRQF_PAY, mActivity); if (bRet) { // show the progress bar to indicate that we have started paying closeProgress(); mProgress = BaseHelpershowProgress(mActivity, null, "正在支付", false, true); } else ; } catch (Exception ex) { ToastmakeText(mActivity, Rstringremote_call_failed, ToastLENGTH_SHORT)show(); } } private boolean checkInfo() { String partner = PartnerConfigPARTNER; String seller = PartnerConfigSELLER; if (partner == null || partnerlength() <= 0 || seller == null || sellerlength() <= 0) return false; return true; } // get the selected order info for pay String getOrderInfo() { String strOrderInfo = "partner=" + "\"" + PartnerConfigPARTNER + "\""; strOrderInfo += "&"; strOrderInfo += "seller=" + "\"" + PartnerConfigSELLER + "\""; strOrderInfo += "&"; strOrderInfo += "out_trade_no=" + "\"" + getOutTradeNo() + "\""; strOrderInfo += "&"; //这笔交易价钱 strOrderInfo += "subject=" + "\"" + mActivitygetString(Rstringdonate_subject) + "\""; strOrderInfo += "&"; //这笔交易内容 strOrderInfo += "body=" + "\"" + mActivitygetString(Rstringdonate_body) + "\""; strOrderInfo += "&"; //这笔交易价钱 strOrderInfo += "total_fee=" + "\"" + "1000" + "\""; strOrderInfo += "&"; strOrderInfo += "notify_url=" + "\"" + ">

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12819044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存