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

 更新时间:2016年10月01日 10:10:29   作者:PBER  
这篇文章主要介绍了使用PBFunc在Powerbuilder中支付宝当面付款功能的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

在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 +='&timestamp=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 += "&timestamp="+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中支付宝当面付款功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复的。

您可能感兴趣的文章:

相关文章

  • JS异常处理的一个想法(sofish)

    JS异常处理的一个想法(sofish)

    由于网络、浏览器问题、缓存等原因执行js的时候会抛出异常接下来分享一个想法,基本上涉及到两步:收集和使用,感兴趣的你可以参考下哈,希望对你有所帮助
    2013-03-03
  • JavaScript最完整的深浅拷贝实现方式详解

    JavaScript最完整的深浅拷贝实现方式详解

    这篇文章主要为大家详细介绍了JavaScript最完整的深浅拷贝实现方式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • JS解析XML文件和XML字符串详解

    JS解析XML文件和XML字符串详解

    这篇文章主要介绍了JS解析XML文件和XML字符串详解,推荐给大家,有需要的小伙伴可以参考下。
    2015-04-04
  • JavaScript中常见的几种继承方式

    JavaScript中常见的几种继承方式

    这篇文章主要介绍了JavaScript中常见的几种继承方式,继承可以访问父类原型上的方法或属性,实现了方法复用,但是创建子类实例时,不能传父类的参数,子类实例共享了父类构造函数的属性值
    2022-06-06
  • UniApp使用vue.config.js进行配置的详细教程

    UniApp使用vue.config.js进行配置的详细教程

    这篇文章主要给大家介绍了关于UniApp使用vue.config.js进行配置的详细教程,uniapp是一套基于Vue语法的框架,同样也支持Vue.config.js配置,一般常用的莫过于路径的名称,需要的朋友可以参考下
    2023-10-10
  • 基于JS实现父组件的请求服务过程解析

    基于JS实现父组件的请求服务过程解析

    这篇文章主要介绍了基于JS实现父组件的请求服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • js实现电梯导航效果的示例代码

    js实现电梯导航效果的示例代码

    这篇文章主要介绍了JavaScript实现电梯导航效果的相关知识,文中通过示例代码介绍的很详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-12-12
  • js中的深浅拷贝问题简析

    js中的深浅拷贝问题简析

    这篇文章主要给大家介绍了关于js中的深浅拷贝问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • js使用xml数据载体实现城市省份二级联动效果

    js使用xml数据载体实现城市省份二级联动效果

    这篇文章主要为大家详细介绍了js使用xml数据载体实现城市省份二级联动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • JS实现将对象转化为数组的方法分析

    JS实现将对象转化为数组的方法分析

    这篇文章主要介绍了JS实现将对象转化为数组的方法,结合实例形式分析了javascript操作及转换json数组相关实现技巧,需要的朋友可以参考下
    2019-01-01

最新评论