使用PBFunc在Powerbuilder中支付宝当面付款功能


Posted in Javascript onOctober 01, 2016

在PB实现支付宝当面付的功能,需要先在支付宝进行商户签约,并设置相关的公钥信息(具体参考支付宝文档)。

然后使用对应的私钥文件对参数进RSAWithSha1前面计算。具体代码如下:

string ls_pubFileName,ls_priFileName
n_pbfunc_cryp lnv_cryp
ls_priFileName ="D:\pbfunclib_pri.pem"//私钥文件
string ls_str
string ls_appId,ls_secret,ls_biz_content
ls_appId ="3434343"//改成你的appid
ls_biz_content='{"out_trade_no": "2015020011","scene": "bar_code","auth_code": "'+sle_1.Text+'","subject": "当面付条码支付","total_amount": "0.01"}'
ls_str ="app_id="+ls_appId
ls_str +='&biz_content='+ls_biz_content
ls_str +='&charset=utf-8'
ls_str +='&method=alipay.trade.pay'
ls_str +='&sign_type=RSA'
ls_str +='×tamp=2016-05-08 11:27:15'
ls_str +='&version=1.0'
string ls_sigStr
blob utf8R
utf8R =lnv_cryp.of_str2utf8(ls_str)
if lnv_cryp.of_sha1withRsa(ls_priFileName,utf8R,lnv_cryp.HASH_RESULT_DEFAULT,ls_sigStr) then
  MessageBox("提示","签名成功:"+ls_sigStr)
Else
  MessageBox("提示","签名失败")
end if
/*验证签名可以不需要调用*/
ls_pubFileName ="D:\pbfunclib_pub.pem"//在D盘生成公钥文件pbfunclib_pub.pem
IF Not lnv_cryp.of_RSAVerifyFileSHA1(ls_pubFileName,utf8R,ls_sigStr,lnv_cryp.HASH_RESULT_DEFAULT) Then
  MessageBox("提示","验证签名失败")
else
  messagebox("","验证签名成功")
End IF
//ls_str +=''
n_pbfunc_http lnv_http
lnv_http.of_clear()//清空参数
string ls_data
ls_data = "app_id="+wf_alipay_urlencode(ls_appId)
ls_data += "&biz_content="+wf_alipay_urlencode(ls_biz_content)
ls_data += "&charset="+wf_alipay_urlencode("utf-8")
ls_data += "&method="+wf_alipay_urlencode("alipay.trade.pay")
ls_data += "&sign_type="+wf_alipay_urlencode("RSA")
ls_data += "&sign="+wf_alipay_urlencode(ls_sigStr)
ls_data += "×tamp="+wf_alipay_urlencode("2016-05-08 11:27:15")
ls_data += "&version="+wf_alipay_urlencode("1.0")
lnv_http.of_set_URL("https://openapi.alipay.com/gateway.do?"+ls_data)
Blob lblb_data
string ls_error
IF lnv_http.of_post(lblb_data,ls_error) Then
  string gbkData
  gbkData = lnv_cryp.of_utf8ToGbk(lblb_data)//由于返回来的是utf-8编码,直接显示会乱码
  MessageBox("提示",gbkData+" "+string(lblb_data))
Else
  MessageBox("提示","执行失败")
End IF

其中wf_alipay_urlencode函数代码如下:

//ls_str为参数
n_pbfunc_encode lnv_encode
string ls_content,ls_reserved//指明不需要编码的字符
ls_reserved =""//都需要编码
string ls_sigStr
blob utf8R
utf8R =lnv_encode.of_str2utf8(ls_str)
lnv_encode.of_URIEncode2(utf8R,ls_content)
return ls_content

以上所述是小编给大家介绍的使用PBFunc在Powerbuilder中支付宝当面付款功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复的。

Javascript 相关文章推荐
js下获取div中的数据的原理分析
Apr 07 Javascript
14个有用的Jquery技巧分享
Jan 08 Javascript
jquery读取xml文件实现省市县三级联动的方法
May 29 Javascript
jQuery实现动画效果circle实例
Aug 06 Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
jQuery遍历节点方法汇总(推荐)
May 13 jQuery
微信小程序模板和模块化用法实例分析
Nov 28 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
教你使用vue-cli快速构建的小说阅读器
May 13 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
Oct 16 Javascript
通过实例解析js可枚举属性与不可枚举属性
Dec 02 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 #Javascript
You might like
一个捕获函数输出的函数
2007/02/14 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
JavaScript静态的动态
2006/09/18 Javascript
图片自动缩小 点击放大
2008/07/07 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
Python collections模块实例讲解
2014/04/07 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
python检索特定内容的文本文件实例
2018/06/05 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python下载库的步骤方法
2019/10/12 Python
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
节约粮食标语
2014/06/18 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
市场营销工作计划书
2014/09/15 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis