使用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 相关文章推荐
JavaScript在IE中“意外地调用了方法或属性访问”
Nov 19 Javascript
ExtJS Window 最小化的一种方法
Nov 18 Javascript
js 数组的for循环到底应该怎么写?
May 31 Javascript
Js切换功能的简单方法
Nov 23 Javascript
JavaScript自定义等待wait函数实例分析
Mar 23 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
Vue.js学习之计算属性
Jan 22 Javascript
微信小程序功能之全屏滚动效果的实现代码
Nov 22 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
May 13 Javascript
小程序选项卡以及swiper套用(跨页面)
Jun 19 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
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
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
PDO::rollBack讲解
2019/01/29 PHP
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
python解析html开发库pyquery使用方法
2014/02/07 Python
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Linux下多个Python版本安装教程
2018/08/15 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
J2EE相关知识面试题
2013/08/26 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
节约用水演讲稿
2014/05/21 职场文书
维稳承诺书
2015/01/20 职场文书
2015年档案管理工作总结
2015/04/08 职场文书